本人個人博客網站與CSDN同步,歡迎訪問:www.dzyong.com(V1.0)、www.dzyong.top(V2.0)
訪問PHP文件時自動下載
這個問題是由nginx引起的,沒有進行php配置或者配置錯誤
nginx中配置php
首先從外到內依次是:http, server, localtion
並且是依次繼承的關係。一個server就是一個服務,可設置獨立的端口,域名,及其他配置,如果設置不同的
端口了,master進程就會監聽這個端口了。同一個server裏面有多個location,這些location不是平行關係,是匹配關係,不能相互繼承。
在同一個server裏面,我們可以把 root和index的設置 放到location之外。
針對每個server來配置 access_log, error_log.
針對初始頁面,由於nginx有提供提示頁面,在50x.html, index.html的location中定義一下root到nginx
原本的頁面。一般會在http中來include各個server。
具體的server配置如下:
server {
listen 80;
server_name localhost;
location / {
root /project/html/blogV2;
index index.html index.htm index.php;
try_files $uri $uri/ /index.html;
}
location ~ \.php$ {
root /project/html/blogV2;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
修改了配置文件後一定要重啓nginx
./niginx -s reload
訪問PHP時報502
自動下載問題解決了,但是訪問php報502
去查找了很多資料,覺得這邊博客寫的很詳細,可以參考一下https://www.cnblogs.com/doseoer/p/5972002.html
我跟着一步步的配置完了,但是還是沒有解決這個問題。
最後找到了原因,還是在./php/etc/php-fpm.config文件中,之前忽略了一點,這裏的listen的值應爲 listen = 127.0.0.1:9000
這與nginx中的 fastcgi_pass 127.0.0.1:9000; 相對應纔可以。
[www]
#listen = /home/www/logs/php-fpm.sock
listen = 127.0.0.1:9000
listen.backlog = -1
修改後需要殺死原來的php進程然後重啓(這裏不需要重啓nginx)
./php/sbin/php-fpm -R
寫一個測試文件
<?php
phpinfo();
?>
訪問出現以下界面大功告成