mac nginx不支援php怎麼辦

2021-09-18 10:00:20

mac nginx不支援php是因為沒有設定PHP,其解決辦法:1、使用homebrew安裝nginx;2、給nginx設定管理員許可權;3、執行命令「brew tap josegonzalez/homebrew-php」安裝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;】

然後再重新啟動nginx就可以存取php了

記得當我啟動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檔案,設定自己的存取域名

推薦學習:《》

以上就是mac nginx不支援php怎麼辦的詳細內容,更多請關注TW511.COM其它相關文章!