View difference between Paste ID: WQX4AqEU and CjY8BSY8
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
}