php-fpm 是增強版的 php-cgi,利用 FastCGI 技術讓效能大幅提升,它是一個常駐程式,不同於 php-cgi 使用的 CGI 技術要一直開啟進程關閉進程,開開關關的消耗資源
老樣子先更新套件
sudo apt update && sudo apt upgrade
安裝 PHP-FPM
sudo apt install -y php-fpm
檢查看看有沒有安裝成功
php -v
查看運行狀態,應該會跟 nginx 一樣裝好自動啟動
sudo systemctl status php8.2-fpm
這樣就是安裝成功啦
其實 default 中間就有範例
Nginx 和 PHP 溝通有兩種方式,unix 只能在同一台虛擬機中,tcp 會監聽來自外部的請求,論安全性的話 unix 會好一點,比較推薦使用這個
在 server 區塊的最下方新增這些設定,只要遇到 .php 檔案就交給 php-fpm 處理
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
還要把 index 加上 index.php,這樣用目錄開啟網站時也會去找 php 檔案,也就是會顯示 php 輸出的內容
設定完記得重新載入設定
sudo systemctl reload nginx
在網站根目錄新增一個 index.php 檔案
在檔案中寫一些程式
<?php
echo "2023ironman - by miku3920";
現在再打開網站就會出現剛剛寫的東西啦
有修改東西而且不會炸掉,就 git commit 紀錄一下
PHP-FPM 跟 Nginx 一樣,可以使用一系列的指令
查看 PHP-FPM 狀態
systemctl status php8.2-fpm
啟動 PHP-FPM (預設是啟動)
sudo systemctl start php8.2-fpm
停止 PHP-FPM
sudo systemctl stop php8.2-fpm
重新啟動 PHP-FPM
sudo systemctl restart php8.2-fpm
重新載入設定檔
sudo systemctl reload php8.2-fpm
開啟開機自啟動 (預設是啟動)
sudo systemctl enable php8.2-fpm
關閉開機自啟動
sudo systemctl disable php8.2-fpm