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其它相關文章!