SHOW:
|
|
- or go back to the newest paste.
1 | # Update the OS | |
2 | sudo apt-get update && sudo apt-get upgrade -y | |
3 | ||
4 | ### Install some tools which we need for the platform or for monitoring | |
5 | sudo apt-get install build-essential -y && \ | |
6 | sudo apt-get install nginx -y && \ | |
7 | sudo apt-get install mysql-client -y && \ | |
8 | sudo apt-get install mytop -y && \ | |
9 | sudo apt-get install git -y && \ | |
10 | sudo apt-get install lynx -y && \ | |
11 | sudo apt-get install autoconf -y && \ | |
12 | sudo apt-get install htop -y && \ | |
13 | sudo apt-get install sysstat -y && \ | |
14 | sudo apt-get install iptraf -y | |
15 | ||
16 | ||
17 | ### Create NginX Config files | |
18 | ||
19 | sudo echo '## Drop Config | |
20 | # Dont record errors regarding missing favicons and robot.txt | |
21 | location = /robots.txt { | |
22 | access_log off; | |
23 | log_not_found off; | |
24 | try_files /robots.txt =204; | |
25 | } | |
26 | location = /favicon.ico { | |
27 | access_log off; | |
28 | log_not_found off; | |
29 | try_files /favicon.ico =204; | |
30 | } | |
31 | # Refuse to server linux hidden files includes .htaccess etc | |
32 | location ~ /\. { access_log off; log_not_found off; deny all; } | |
33 | # Dont serve and swap files createed by VIM etc | |
34 | location ~ ~$ { access_log off; log_not_found off; deny all; } | |
35 | ' > /etc/nginx/drop.conf | |
36 | ||
37 | ### Get PHP 5.4.11 | |
38 | sudo wget http://www.php.net/get/php-5.4.11.tar.bz2/from/uk1.php.net/mirror && sudo tar -xjf mirror && sudo rm mirror && cd php-5.4.11 | |
39 | ||
40 | ## Get PHP Dependancies | |
41 | sudo apt-get install \ | |
42 | libxml2 \ | |
43 | libxml2-dev \ | |
44 | libcurl4-openssl-dev \ | |
45 | libmcrypt-dev \ | |
46 | libmcrypt4 \ | |
47 | libxml-libxslt-perl \ | |
48 | libxslt1-dbg \ | |
49 | libxslt1-dev -y | |
50 | ||
51 | ||
52 | ### Compile PHP | |
53 | ||
54 | sudo ./configure \ | |
55 | --prefix=/usr/local/php \ | |
56 | --enable-fpm \ | |
57 | --with-fpm-user=www-data \ | |
58 | --with-fpm-group=www-data \ | |
59 | --with-config-file-path=/usr/local/php/php.ini \ | |
60 | --with-config-file-scan-dir=/usr/local/php/conf.d \ | |
61 | --enable-debug \ | |
62 | --with-openssl \ | |
63 | --with-kerberos \ | |
64 | --with-zlib \ | |
65 | --with-curl \ | |
66 | --with-curlwrappers \ | |
67 | --enable-exif \ | |
68 | --with-jpeg-dir=/usr \ | |
69 | --with-png-dir=/usr \ | |
70 | --with-vpx-dir=/usr \ | |
71 | --with-freetype-dir=/usr \ | |
72 | --enable-exif \ | |
73 | --with-mhash \ | |
74 | --enable-mbstring \ | |
75 | --with-mcrypt \ | |
76 | --with-mysql \ | |
77 | --with-mysqli \ | |
78 | --with-pdo-mysql \ | |
79 | --enable-shmop \ | |
80 | --enable-soap \ | |
81 | --enable-sockets \ | |
82 | --with-xsl \ | |
83 | --enable-zip \ | |
84 | --with-pear | |
85 | ||
86 | sudo make && sudo make test | |
87 | sudo make install && sudo cp /home/ubuntu/php-5.4.11/php.ini-production /usr/local/php/php.ini | |
88 | sudo | |
89 | PATH=/usr/local/php/bin:$PATH && pear upgrade-all | |
90 | ||
91 | - | # Update the system path |
91 | + | |
92 | - | echo ' |
92 | + | |
93 | ||
94 | ### Install APC Cache using PECL | |
95 | pecl install apc | |
96 | # Create the PHP.ini conf settings for APC in a separate file for ease of administration | |
97 | sudo mkdir /usr/local/php/conf.d && sudo echo '[PHP] | |
98 | extension=apc.so | |
99 | apc.enabled=1 | |
100 | apc.shm_segments=1 | |
101 | apc.shm_size=128M | |
102 | apc.ttl=7200 | |
103 | apc.user_ttl=7200 | |
104 | apc.num_files_hint=1024 | |
105 | apc.enable_cli=0 | |
106 | apc.cache_by_default=1 | |
107 | apc.filters | |
108 | apc.mmap_file_mask=/tmp/apc.XXXXXX | |
109 | apc.file_update_protection=2' > /usr/local/php/conf.d/apc.conf | |
110 | ||
111 | # Set a default timezone | |
112 | sudo echo '[PHP] | |
113 | date.timezone = Europe/London' > /usr/local/php/conf.d/date.conf | |
114 | ||
115 | # PHP CLI Config Settings | |
116 | sudo echo '[PHP] | |
117 | log_errors = on | |
118 | error_log = /var/log/php.log | |
119 | ' > /usr/local/php/conf.d/error.ini | |
120 | ||
121 | # Restart PHP and NginX | |
122 | sudo service php-fpm restart && sudo service nginx restart | |
123 | ||
124 | # Create a fresh path to place the test files | |
125 | sudo mkdir /www && sudo chown www-data:www-data /www | |
126 | ||
127 | ##### Then create a new NginX config within /etc/nginx/sites-enabled using the settings | |
128 | ||
129 | server { | |
130 | listen 80; | |
131 | listen [::]:80 default ipv6only=on; | |
132 | ||
133 | server_name example.com; | |
134 | root /www/; | |
135 | index index.php index.html index.htm; | |
136 | ||
137 | # Logs - Enable on REAL deployment | |
138 | access_log /var/log/nginx/example.access.log; | |
139 | error_log /var/log/nginx/example.error.log; | |
140 | ||
141 | location / { | |
142 | # First attempt to serve request as file, then | |
143 | # as directory, then fall back to index.html | |
144 | try_files $uri $uri/ index.php; | |
145 | # Uncomment to enable naxsi on this location | |
146 | # include /etc/nginx/naxsi.rules | |
147 | } | |
148 | ||
149 | # This block will catch static file requests, such as images, css, js | |
150 | # The ?: prefix is a 'non-capturing' mark, meaning we do not require | |
151 | # the pattern to be captured into $1 which should help improve performance | |
152 | location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { | |
153 | # Some basic cache-control for static files to be sent to the browser | |
154 | expires max; | |
155 | add_header Pragma public; | |
156 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; | |
157 | } | |
158 | ||
159 | # Common configurations | |
160 | include drop.conf; | |
161 | ||
162 | location ~ \.php$ { | |
163 | try_files $uri =404; | |
164 | fastcgi_pass 127.0.0.1:9000; | |
165 | fastcgi_buffers 256 4k; | |
166 | fastcgi_index index.php; | |
167 | include fastcgi_params; | |
168 | } | |
169 | } |