Tutorial Özeti:
• Nginx Kurulumu (Brotli, ngx_pagespeed ve Naxsi WAF ile)
• MySQL Kurulumu ve Güvenliği
• PHP-FPM Kurulumu (PHP-FPM 7.3 Son versiyon)
• Nginx için PHP-FPM konfigrasyonu
• Nginx Sites PHP-FPM Ayarı
Nginx kurulum
Nginx kurulumu için Ngnix-EE den yardım alıyoruz bu sayede brotli, ngx_pagespeed ve Naxsi gibi bir çok eklentiyi de içerecek şekilde kurulumu tamamlıyoruz. (Eğer kurulum hata verirse aynı komutla tekrar deneyin)
https://virtubox.github.io/nginx-ee/
Kurulumu full olarak başlatmak için tek yapanız gereken aşaıdaki komutu çalıştırmak.bash <(wget -O - vtb.cx/nginx-ee || curl -sL vtb.cx/nginx-ee) --full
Mysql Kurulum
apt-get install mysql-server -y
systemctl enable mysql.service
systemctl start mysql.service
Mysql Güvenliği:
Mysql güvenliğini sağlamak için mysql_secure_installation scriptini çalıştırıyoruz.
mysql_secure_installation
(y)es ile mysql parolasını değiştiriyoruz ve sonra bütün hepsine yes diyoruz.
PHP-FPM Kurulum
PHP 7.3-FPM versiyonunun kurulumunu gerçekleştireceğiz;
software-properties-common package i yüklüyoruz.
apt-get install software-properties-common
ondrej’in PPA sını sources e ekliyoruz ve update yapıyoruz
add-apt-repository -y ppa:ondrej/php
apt-get update
Eklentileri ile birlikte PHP-FPM’i kuruyoruz:
apt install php7.3-fpm php7.3-common php7.3-zip php7.3-curl php7.3-xml php7.3-xmlrpc php7.3-json php7.3-mysql php7.3-pdo php7.3-gd php7.3-imagick php7.3-ldap php7.3-imap php7.3-mbstring php7.3-intl php7.3-cli php7.3-recode php7.3-tidy php7.3-bcmath php7.3-opcache
Kurulum tamamlandıktan sonra php -v
komutu ile php versiyonunu kontrol edebiliriz. apt policy php7.3-cli
ile de kurulu versiyonun kontrolü sağlanabilir.
Nginx için PHP-FPM konfigrasyonu
php.ini dosyasını düzenliyoruznano /etc/php/7.3/fpm/php.ini
Ayarlar aşağıdaki şekilde olmalı eğer ne yaptığınızı biliyorsanız kendinize göre modifiye edebilirsiniz.
max_execution_time = 180
max_input_time = 360
max_input_vars = 5000
memory_limit = 256M
cgi.fix_pathinfo = 0
file_uploads = On
upload_max_filesize = 100M
allow_url_fopen = On
Nginx i ve PHP-FPM i yeniden başlatıyoruz.
systemctl restart nginx.service
systemctl restart php7.3-fpm
Nginx Sites PHP-FPM Ayarı
.php ile biten istekleri PHP-FPM ile işlemek için her bir sitede;
location ~* .php$ {….} ayarlamak gerekmekte ayarlar aşağıdaki gibi gözükmeli.
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/html;
index index.html;
location ~* \.php$ {
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Ayarlar yapıldıktan sonra nginx -s reload
ile nginx’i reload ediyoruz.
Şuan PHP destekli bir LEMP sunucunun kurulumunu gerçekleştirdik. Bir PHP dosyası hazırlayarak bunu test edebilirsiniz.
Pagespeed Eklentisini etkinleştirmek için aşağıdaki yönergeleri takip edebilirsiniz:
https://github.com/VirtuBox/nginx-ee/wiki/PageSpeed
Webp Desteği için aşağıdaki yönergeleri takip edebilirsiniz
https://github.com/VirtuBox/nginx-ee/wiki/Webp-Support
Nginx-ee nin paylaştığı ayarın wordpress için olduğunu göreceksiniz normal bir sitenin herhangi bir dizininde çalışması için aşağıdaki yazıda paylaşılan ayarı uygulayabilir ayrıca webp ye dönüştürme kodunu kullanabilirsiniz
https://itchy.nl/webp-support-for-nginx