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

mac nginx不支援php怎麼辦

藏色散人
藏色散人原創
2021-09-18 09:08:342197瀏覽

mac nginx不支援php是因為沒有設定PHP,其解決方法:1、使用homebrew安裝nginx;2、給nginx設定管理員權限;3、執行指令“brew tap josegonzalez/homebrew-php”安裝PHP即可。

mac nginx不支援php怎麼辦

本文操作環境:macOS10.15系統、PHP5.6版,MacBook Air 2019電腦

#mac nginx不支援php怎麼辦?

Mac安裝Nginx、設定PHP

之前都是使用Apache和PHP協同工作的

因為PHP是自學的,很多不理解的(TP都沒怎麼看,也沒用)

最近想用nginx和php一起寫點東西

因為自己在電腦已經安裝完成了,期間遇到了一些問題,趁著現在還有一點印象現在記錄下來,如果以後使用nginx和php開發的時候可以參考一下

1、在Linux上的時候使用yum安裝軟體,在Mac上的話看到一個homebrew

2、然後我們使用homebrew安裝nginx

一條指令安裝完成:

brew install nginx

然後我們設定一下權限

1》給nginx 設定管理員權限:如果不設定管理員權限,80埠是不能監聽的

#这里的目录根据你实际安装的目录来填写,默认是这个目录,不同的只是nginx的版本号而已
sudo chown root:wheel /usr/local/Cellar/nginx/1.10.1/bin/nginx    
sudo chmod u+s /usr/local/Cellar/nginx/1.10.1/bin/nginx

2》加入launchctl啟動控制

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

3》執行nginx

sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
nginx -t   #测试配置是否有语法错误

3、安裝PHP

因為brew 預設沒有php的包,所以我們先執行下面的指令

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

php有很多版本我們可以用brew search php 查看

我的電腦上的就是php5.6,但是我又用brew安裝了一下,不會影響mac自帶的,因為他會安裝到/usr/local/Cellar的下面

brew install php56

安裝完成之後,為了讓系統能使用我剛剛安裝的版本,需要配置

sudo vim ~/.bash_profile

#在这个文件最后添加下列语句:
export PATH="$(brew --prefix php56)/bin:$PATH"

#保存文件后,source下这个文件,使刚刚添加的环境变量生效
source ~/.bash_profile

完成之後,在終端機中可以使用php -v查看版本,就是我剛剛安裝的版本了

加入launchctl啟動控制

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

php設定檔的路徑如下

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/5.6/php-fpm.conf

我當時這樣完成之後就去直接使用php測試了

但是nginx服務是正常的,但php就是不顯示

原因就是太心急,nginx對於php的設定還沒做

nginx設定檔路徑如下

/usr/local/etc/nginx/nginx.conf


打開之後找到下面這塊

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

解除註釋,重啟nginx之後還是不行,找了一下原因,是因為【/scripts$fastcgi_script_name;】這一句應該是【$document_root$fastcgi_script_name;】

#然後再重啟了

記得當我啟動php-fpm的時候遇到了一些小問題,問題的內容都在終端機中顯示了

例如:【/private/etc/php-fpm.conf】這個文件不存,其實在同目錄下有一個後綴為【.default】的文件,我們把這個拷貝一下改為php-fpm.conf就可以了

後邊在執行的話,可能會出現error_log路徑不對,預設的是在【/usr/var】下面出Log,但是路徑找不到,有兩個解決方法。

1》提示沒有的資料夾,我們就建立

2》更改剛才的我們拷貝的那個php-fpm.conf文件,找到類似下面的地方

[global]
; Pid file
; Note: the default prefix is /usr/var
; Default Value: none
pid = /usr/local/var/php-fpm/run/php-fpm.pid

; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/var
; Default Value: log/php-fpm.log
error_log = /usr/local/var/php-fpm/log/php-fpm.log

pid和error_log之前都是註解的狀態,我們將它改為自己方便的位置就可以啦

到現在沒有什麼其他特別問題的話,nginx和php就可以正常的工作了。

我們可以透過修改nginx.conf和hosts文件,設定自己的存取網域

推薦學習:《PHP影片教學

以上是mac nginx不支援php怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn