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;】
#然後再重啟了
記得當我啟動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中文網其他相關文章!