PHP-FPM (FastCGI Process Manager), özellikle işlek siteler olmak üzere her büyüklükteki siteler için yararlı olan bazı ek özelliklere sahip alternatif bir PHP FastCGI uygulamasıdır. Kolayca durdurma / başlatma timeout, children, request değerlerini site başına veya toplu olarak ayarlamanızı sağlar.
İşte bu özellik DirecAdmin’de de mevcut. Eğer Custombuild php-fpm modunda derlenmiş ise yani NGINX + PHP-FPM veya APACHE + PHP-FPM ise aşağıdaki şekilde dilediğiniz bir web sitenin kullanıcı php-fpm ayar dosyasına erişerek düzenlemeler yapabilirsiniz.
Bu makalede yer alan DirectAdmin üzerinde PHP-FPM ayarlarını tüm DirectAdmin kurulu VDS paketlerinde gerçekleştirebilirsiniz.
Aşağıdaki işlemleri SSH üzerinden yapacağız. Eğer SSH kullanımını bilmiyor iseniz makalemiz ; http://blog.cliaweb.com/putty-ile-ssha-girmek-ve-komut-yurutmek.html
PHP-FPM ayarlarının yapılacağı kullanıcıya ait php dizinine gidiyoruz ve listeliyoruz. kullanıcı yerine siz ayar yapmak istediğiniz web sitenin kullanıcı adını yazın. Hangi web sitenin hangi kullanıcı adına sahip olduğunu directadmin paneldeki Hesap Listesi (User List) altında görebilirsiniz. Komutu ssh dan sırayla yürütün;
1 2 |
cd /usr/local/directadmin/data/users/kullanıcı/php/ ll |
Aşağıdaki gibi conf ayar dosyaları listeleniyor, burada ayar yapılacak dosyalar kırmızı ile işaretlenenlerdir. Siz örneğin sunucuda php 7.3 kurdu iseniz bu durumda php-fpm73.conf adıyla oluşan dosyayı düzenlemelisiniz ;
Bizim birincil php versiyonumuz 5.6 olduğundan aşağıdaki gibi 5.6 ya ait dosyayı açıyoruz. Elbette önerimiz tüm php sürümlerine ait .conf ile biten dosyaları düzenlemenizdir ;
1 |
nano -w php-fpm56.conf |
Aşağıdaki gibi değerler göreceğiz, burada değiştirilebilecek değerler pm. ile başlayanlardır ;
Bizim önerebileceğimiz bazı temel ayarlar var, aşağıdakilerden birini kendinize göre kullanabilirsiniz. Elbette burada asıl olan sizin kendinize göre bir ayar belirlemenizdir.
Varsayılan ayar ;
1 2 3 |
pm = ondemand pm.max_children = 8 pm.process_idle_timeout = 5 |
2 CPU için önerilen ;
1 2 3 4 5 6 7 8 |
pm = dynamic pm.max_children = 8 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 100 pm.process_idle_timeout = 60s request_terminate_timeout = 60s |
3 CPU ve üstü için önerilen ;
1 2 3 4 5 6 7 8 |
pm = dynamic pm.max_children = 25 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20 pm.max_requests = 500 pm.process_idle_timeout = 60s request_terminate_timeout = 60s |
4 CPU ve üstü için (kısıtlı kaynak verecekseniz önerilmez);
1 2 3 4 5 6 7 8 9 10 11 |
pm = dynamic pm.max_children = 36 pm.start_servers = 12 pm.min_spare_servers = 6 pm.max_spare_servers = 24 pm.max_requests = 1000 pm.process_idle_timeout = 60s request_terminate_timeout = 60s php_admin_value[memory_limit] = 512M |
Xenforo, WordPress, Opencart için önerilen ;
1 2 3 4 5 6 7 8 |
pm = dynamic pm.max_children = 16 pm.start_servers = 6 pm.min_spare_servers = 2 pm.max_spare_servers = 10 pm.max_requests = 100 pm.process_idle_timeout = 60s request_terminate_timeout = 60s |
ilgili düzenlemeyi yaptıktan sonra ctrl + x + y diyerek kaydedin. PhP sürümünüze göre php-fpm i yeniden başlatın ;
1 |
service php-fpm56 restart && service php-fpm72 restart |
İşlemler bu kadar.