Mac安裝Nginx、配置PHP(一)

之前都是使用Apache和PHP協同工作的
因為PHP是自學的,很多不理解的(TP都沒怎么看,也沒用)
最近想使用nginx和php一起寫點東西
因為自己在電腦已經安裝完成了,期間遇到了一些問題,趁著現在還有一點印象現在記錄下來,如果以后使用nginx和php開發的時候可以參照。

  • 1、在Linux上的時候使用yum安裝軟件,在Mac上的話看到一個homebrew,前邊有個帖子已經寫了怎么安裝了(參照:http://www.lxweimin.com/p/81d70a50914a
  • 2、然后我們使用homebrew安裝nginx
brew install nginx

然后我們配置一下權限

  • 給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  
  • 加入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 
  • 運行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文件,配置自己的訪問域名

參照的帖子:http://www.lxweimin.com/p/255889464b2f

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容