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 | } |