CentOS 設定 nginx 之 PHP FPM

因為用了 CentOS Software Collections 的 PHP 7 與 PHP FPM,所以 PHP 與 PHP FPM 相關的設定檔位置會都在 /etc/opt/rh/rh-php72 下面。

像是 Webmin 的 PHP 模組就要指定 php.ini 檔位置於 /etc/opt/rh/rh-php72/php.ini,Webmin 才有辦法正確的讀取到 php.ini 檔。

在開始得先確定 PHP FPM 服務是啟動的,並且確定連線方式。看一下 /etc/opt/rh/rh-php72/php-fpm.d/www.conf,確定連線方式:

listen = 127.0.0.1:9000

打開 nginx 主設定檔,/etc/nginx/nginx.conf,找到 server 區塊,做兩件事:

  1. 指定 index.php 作為索引頁之一。
  2. 指定 .php 檔案都傳給 127.0.0.1:9000 做處理。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
index index.php index.html index.htm

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

於是就變成上面那樣。

建立 /usr/share/nginx/html/phpinfo.php:

<?php phpinfo(); ?>

然後用瀏覽器開看看,應該可以看到那著名的 PHP info 頁。

這篇也是參考 CentOS 7 安裝 Nginx、MySQL/MariaDB、PHP7,架設 LEMP 網頁伺服器筆記

Comments