Disini, nginx bertugas sebagai reserve proxy, karena nginx sangat bagus dalam menangani static file, lalu apache + php7.0-fpm digunakan untuk memproses php nya.
Kita akan menggunakan repo dari dotdeb.org karena di sana sudah disediakan php7 nya. jadi kita tidak perlu mengcompile sendiri.
Tambahkan repo dotdeb, lalu update
echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.list
echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list.d/dotdeb.list
wget -qO - http://www.dotdeb.org/dotdeb.gpg | apt-key add -
apt-get update
Install apache2 dan php7.0-fpm
apt-get install apache2 php7.0-cli php7.0-curl php7.0-dev php7.0-zip php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-mbstring php7.0-opcache -y
Ubah settingan php.ini untuk cgi.fix_pathinfo=1
menjadi cgi.fix_pathinfo=0
nano /etc/php/7.0/fpm/php.ini
[...]
cgi.fix_pathinfo=0
[...]
Aktifkan php7.0-fpm pada apache
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm
Ubah listen post untuk http pada apache
nano /etc/apache2/ports.conf
dari default 80 menjadi 8080
Listen 8080
Ubah juga pada default virtualhost apache dan set supaya listen pada ip 127.0.0.1
nano /etc/apache2/sites-enabled/000-default.conf
ubah menjadi
VirtualHost 127.0.0.1:8080
Restart apache
service apache2 restart
Install Nginx
apt-get install nginx -y
Edit default virtualhost nginx
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
nano /etc/nginx/sites-available/default
isi dengan
server {
listen 80 default_server;
root /var/www/html;
index index.php index.html index.htm;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log error;
server_name _;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
expires max;
log_not_found off;
access_log off;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
restart nginx
service nginx restart