mac nginx不解析php的解決方法:1、cp正確名字的新檔案;2、執行指令「php-fpm --fpm-config...」;3、cp一份名為www .conf的文件;4、殺掉Solution進程。
本文操作環境:macOS10.15系統、PHP7.1版,MacBook Air 2019電腦
mac nginx不解析php怎麼辦?
mac在nginx下部署php遇到的坑
受人之託,幫人部署一個網站,然後我想在本地的nginx裡先調試一下。一開始,打開頁面顯示403,這個之前見過,nginx的權限問題,改了這個權限之後,發現訪問php頁面都是直接下載而沒有解析,我想起來電腦可能沒有php環境,就下了php,然後還是同樣的問題。總之因為對php不太熟悉(之前都用xampp這類軟體),所以花了一點時間才搞定。
首先要明白的是,nginx本身不能處理php,它只是一個web伺服器,當前端請求php時,nginx需要把介面發給php解釋器處理,然後把結果回傳給前端。一般地,nginx是把請求發給fastcgi管理流程處理。如nginx中設定:
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#这里原来不是$document_root,搞得我很蒙,还好网上查到改好了,不然会报file not found include fastcgi_params; }
所以要啟動一個fastcgi,這裡就用到了php-fpm,它是一個php fastcgi管理器,只用於php語言(舊版php的要單獨下php-fpm,我用的php-fpm已經整合了這個)。
這裡有很多奇怪的問題。
第一次運行php-fpm
#failed: 找不到/private/etc/php-fpm.conf文件,
Solution:但這個目錄下有個php-fpm.conf.default的文件,所以cp了正確名字的新文件
第二次執行php-fpm
Failed: 找不到/usr/var/log/php-fpm.log
Solution:根本沒有這個目錄,到conf檔案裡改了但是沒有效果,沒辦法我就透過下面的指令執行php-fpm(後面都用這個指令執行)
php-fpm --fpm-config /private/etc/php-fpm.conf --prefix /usr/local/var
第三次執行php-fpm
Failed: No pool defined. at least one pool section must be specified in config file
Solution:到/etc/php-fpm.d/ 目錄下有檔案www.conf.default,cp一份名為www.conf的檔案
第四次運行php-fpm
Failed:連接埠被佔用
Solution:殺死這個進程
sudo lsof -i tcp:9000#找到佔用9000埠的進程號
kill -9 port#殺!
第五次運行php-fpm
#成功!
##補充:
在nginx上配的時候又有所一點不同,在mac上php-fpm直接listen了9000端口,但在伺服器上它listen了php7.0 -fpm.sock但socket文件,這種方式可能快一點,所以要在nginx上php的配置那邊將
fastcgi_pass 127.0.0.1:9000;
改成:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
才能成功運行php
推薦學習:《PHP視頻教程》
繼續補充
很有意思的一個東西,要上傳27m的一個視頻, nginx直接報了413 Request Entity Too Large,是我沒設定…
到nginx的設定(set-enabled/default)裡面加上
server { ... client_max_body_size 80m; ... }
重讀設定、重啟伺服器
nginx -s reload service nginx restart
接著還要去修改php.ini,在其中修改兩個設定
upload_max_filesize = 80M post_max_size = 80M
然後關掉php-fpm的進程,再重啟即可~
ps:賀老師真的完全不研究的…mp4傳不上去只是在系統裡沒添加這種類型,這種事都要我自己去找…難受:(
note:在ubuntu下現在比較推薦用apt而不是apt-get…so,是時候改變了!
以上是mac nginx不解析php怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!