溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mac nginx不解析php的解決方法

發(fā)布時間:2021-07-23 17:25:03 來源:億速云 閱讀:199 作者:chen 欄目:編程語言

本篇內容主要講解“mac nginx不解析php的解決方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mac nginx不解析php的解決方法”吧!

mac nginx不解析php的解決辦法:1、cp正確名字的新文件;2、執(zhí)行命令“php-fpm --fpm-config...”;3、cp一份名為www.conf的文件;4、殺掉Solution進程。

本文操作環(huán)境:macOS10.15系統(tǒng)、PHP7.1版,MacBook Air 2019電腦

mac nginx不解析php怎么辦?

mac在nginx下部署php遇到的坑

受人之托,幫人部署一個網站,然后我想在本地的nginx里先調試一下。一開始,打開頁面顯示403,這個之前見過,nginx的權限問題,改了這個權限之后,發(fā)現(xiàn)訪問php頁面都是直接下載而沒有解析,我想起來電腦可能沒有php環(huán)境,就下了php,然后還是同樣的問題??傊驗閷hp不太熟悉(之前都用xampp這類軟件),所以花了一點時間才搞定。

首先要明白的是,nginx本身不能處理php,它只是一個web服務器,當前端請求php時,nginx需要把界面發(fā)給php解釋器處理,然后把結果返回給前端。一般地,nginx是把請求發(fā)給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文件里改了但是沒有效果,沒辦法我就通過下面的命令執(zhí)行php-fpm(后面都用這個命令執(zhí)行)

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

undefined

繼續(xù)補充

很有意思的一個東西,要上傳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的進程,再重啟即可~

到此,相信大家對“mac nginx不解析php的解決方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI