PHP-FPM是PHP FastCGI Process Manager的縮寫,主要用于管理FastCGI進程。它是一個獨立的進程管理器,為PHP提供更出色的性能和穩定性。相對于常規的PHP CGI方式,使用PHP-FPM可以顯著減少服務器負載,提升頁面響應速度。那么,讓我們了解更多關于PHP-FPM如何執行PHP命令的細節。
PHP-FPM通過在控制臺下執行的命令來啟動或停止運行PHP腳本的進程。當你安裝PHP-FPM包時,會默認安裝fpm命令。下面是常用的幾個fpm命令:
sudo service php-fpm start #啟動PHP-FPM
sudo service php-fpm stop #停止PHP-FPM
sudo service php-fpm status #查看PHP-FPM狀態
sudo service php-fpm reload #重新加載PHP-FPM配置文件
此外,PHP-FPM還有一些縮寫命令,比如:
sudo service php5-fpm start #啟動PHP5-FPM
sudo service php7-fpm start #啟動PHP7-FPM
sudo service php-fpm7.0 start #啟動PHP 7.0版本的PHP-FPM
通常情況下,PHP-FPM需要與Nginx或Apache Web服務器配合使用。下面是一個Nginx服務下的PHP-FPM配置示例:
location ~* \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
以上代碼指定了將請求發送到PHP-FPM進程的unix套接字文件/var/run/php5-fpm.sock。購買VPS服務器時,服務器供應商通常會自動處理好PHP-FPM與Nginx或Apache的集成。
PHP-FPM有自己的配置文件,其中包括許多設置和選項。通過修改該文件,可以調整PHP-FPM以及整個PHP服務器的行為。下面是一個PHP-FPM配置文件的示例:
[global]
pid = /run/php/php7.0-fpm.pid
error_log = /var/log/php7.0-fpm.log
include=/etc/php/7.0/fpm/pool.d/*.conf
[www]
user = www-data
group = www-data
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
上述配置文件中,global塊定義一些全局的PHP-FPM選項,比如進程文件和錯誤日志。www塊是一個單獨的子進程池,其中定義了用戶和組以及監聽的地址與端口等信息。這些選項包括pm.dynamic表示子進程池應該以動態方式創建進程;pm.max_children表示進程池中的最大子進程個數;pm.start_servers表示啟動進程池時,應該創建多少個初始進程;pm.min_spare_servers表示進程池中保留的最小空閑進程數;pm.max_spare_servers表示進程池中保留的最大空閑進程數。
總的來說,PHP-FPM是一個十分重要且強大的工具。它提供了PHP腳本的進程管理和運行過程中的優化,簡化了Web服務器的開發和維護,為Web開發人員們提供了更加良好的開發環境。通過上述的介紹,我們相信您已經初步掌握了PHP-FPM的基本的操作。