iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
DevOps

嘿,稍等一下!別急著開發功能,先來打造 Walking Skeleton 吧!系列 第 16

【Walking Skeleton】Day16 - 安裝 PHP-FPM 並且設定與 Nginx 做溝通

  • 分享至 

  • xImage
  •  

PHP-FPM

php-fpm 是增強版的 php-cgi,利用 FastCGI 技術讓效能大幅提升,它是一個常駐程式,不同於 php-cgi 使用的 CGI 技術要一直開啟進程關閉進程,開開關關的消耗資源


安裝 PHP-FPM

老樣子先更新套件

sudo apt update && sudo apt upgrade

安裝 PHP-FPM

sudo apt install -y php-fpm

檢查看看有沒有安裝成功

php -v

查看運行狀態,應該會跟 nginx 一樣裝好自動啟動

sudo systemctl status php8.2-fpm

這樣就是安裝成功啦


設定 Nginx

其實 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

用一個 PHP 程式來測試看看

在網站根目錄新增一個 index.php 檔案

在檔案中寫一些程式

<?php

echo "2023ironman - by miku3920";

現在再打開網站就會出現剛剛寫的東西啦

有修改東西而且不會炸掉,就 git commit 紀錄一下


其他 PHP-FPM 指令

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

上一篇
【Walking Skeleton】Day15 - 建立 CloudFront CDN 服務,讓網站伺服器躲在後面!
下一篇
【Walking Skeleton】Day17 - 註冊 GitHub 帳號,並且用 SSH 將儲存庫推上雲端
系列文
嘿,稍等一下!別急著開發功能,先來打造 Walking Skeleton 吧!34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言