首頁 > 後端開發 > PHP問題 > mac nginx不解析php怎麼辦

mac nginx不解析php怎麼辦

藏色散人
發布: 2023-03-11 19:06:02
原創
2696 人瀏覽過

mac nginx不解析php的解決方法:1、cp正確名字的新檔案;2、執行指令「php-fpm --fpm-config...」;3、cp一份名為www .conf的文件;4、殺掉Solution進程。

mac nginx不解析php怎麼辦

本文操作環境: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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板