服務器已安裝php環境,卻不能讀取php文件


在自己的服務器配置過nginx以后發現訪問我的網址,自動下載了一個文件,就是說沒有php環境,我很納悶,我使用lnmp已經配置過php環境了。可是這里說我沒有php的環境。去論壇問了有大佬說我這是php的環境和目錄不匹配。我也不太懂,畢竟沒怎么接觸過php.

於是到網上查資料發現:即使已經配置過php環境,但是通過nginx訪問到目錄之后,.php 文件沒有被php解釋器解析;所以就需要nginx和php之間進行通信。

具體做法就是在nginx的配置文件中的server中添加代碼,這是我的代碼:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
server {
     default_type 'text/html' ;
     charset utf-8;
     listen 80;
     autoindex off;
     server_name blog.test.com;
     root /home/wwwroot/blog;
     access_log /usr/local/nginx/logs/access.log combined;
     index index.html index.htm index.jsp index.php;
     #error_page 404 /404.html;
     location / {
         add_header Access-Control-Allow-Origin *;
     }
     #主要添加這里:
     location ~ \.php(.*)$  {
             fastcgi_pass   unix:/tmp/php-cgi.sock; #關鍵代碼
             fastcgi_index  index.php;
             fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
             fastcgi_param  SCRIPT_FILENAME $document_root $fastcgi_script_name ;
             fastcgi_param  PATH_INFO  $fastcgi_path_info ;
             fastcgi_param  PATH_TRANSLATED  $document_root $fastcgi_path_info ;
             include        fastcgi_params;
         }
}

這里使用的是其中的一種方式;你也許會看到別的方式配置;想要了解的話,這里介紹的很詳細;

這里需要注意上面是在nginx的配置文件中配置;你需要檢查一下php的配置確保正確;具體做法:

一般來說你安裝的php-fpm.conf在

1
2
cd /usr/local/php/etc
vim php-fpm.conf    #打開php-fpm.conf文件

關於nginx和php-fpm

可以看到配置文件中listen = /tmp/php-cgi.sock,就是對應Location中fastcgi_pass的內容;

按照以上配置nginx,配置不正確可能會出現502錯誤。

配置正確后,又顯示Access Denied;查看了日志之后發現403錯誤;

可以參考博客進行嘗試,我參考:博客后,可以成功運行。

如果出現No input file specified;可以參考博客

在此處我的做法就是在Location的代碼中添加一行代碼:

1
include  fastcgi.conf;

即可成功運行。

注意:配置nginx以及php-fpm文件后需要重啟nginx或php-fpm;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM