PHP Setting For Nginx
操作環境
作業系統:Ubuntu 18.04
php version:7.2
安裝 PHP (PHP-fpm:FastCGI流程管理器)
安裝PHP,因為還要讓PHP能夠連mysql所以也需要安裝php-mysql
sudo apt-get install php-fpm php-mysql
安裝完成後輸入以下指令修改一下PHP設定:
sudo vim /etc/php/7.2/fpm/php.ini
找到其中一行:
;cgi.fix_pathinfo=1
將其改成
cgi.fix_pathinfo=0
設定完後儲存並輸入指令重新啟動PHP
sudo systemctl restart php7.2-fpm
然後要設定讓nginx能夠執行PHP腳本,輸入以下指令修改nginx設定:
sudo vim /etc/nginx/sites-available/default
server { #紅色表示修改部分 listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { #指定由php來處理php script include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; #註1 } location ~ /\.ht { deny all; } }
註1:
根據您安裝的Nginx和PHP版本,配置Nginx將連接到的PHP套接字的位置
$> ls /var/run/php/
total 4
lrwxrwxrwx 1 root root 30 Apr 27 23:28 php-fpm.sock -> /etc/alternatives/php-fpm.sock
-rw-r--r-- 1 root root 5 Apr 27 23:28 php7.2-fpm.pid
srw-rw---- 1 www-data www-data 0 Apr 27 23:28 php7.2-fpm.sock
確保 fastcgi_pass
套接字路徑的值正確。例如,如果您安裝了PHP版本7.2,則套接字應為: /var/run/php/php7.2-fpm.sock
修改完後儲存 並輸入以下指令檢查設定檔格式是否沒有錯誤
sudo nginx -t
如果顯示以下的文字就表示設定檔格式沒有錯誤
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
檢查沒有錯誤就輸入指令重新載入nginx設定
sudo systemctl reload nginx
接下來測試php是否能正常執行,輸入指令產生info.php檔案
sudo vim /var/www/html/info.php
而檔案輸入
<?php
phpinfo();
儲存後輸入http://your_ip_address/info.php
接著把剛剛產生的php腳本刪除