Install Nginx Reserve Proxy, Apache dan php7.0-fpm Pada Debian 8

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

Selesai

Posted under Webserver