1. 程式人生 > >Mac 平臺搭建PHP開發環境:Nginx、PHP、MySQL.md

Mac 平臺搭建PHP開發環境:Nginx、PHP、MySQL.md

之前懶得配置mac的開發環境,都是用的一個叫MAMP的整合包,簡單的專案就用那個,複雜的就全部用hg甩到ubuntu的虛擬機器裡去執行,時間一長,就覺得很麻煩,所以只能自己動手配置下mac的開發環境了。

那我就不廢話了,直接開始安裝步驟了吧!我怕再囉嗦,你們的板磚就飛過來了v

注意:不要去刪除系統自帶的Apache 和php 我開始就刪除了系統自帶的Apache,導致後面php一直無法安裝成功,重灌了Apache後才弄好,所以建議不要輕易刪除系統自帶的Apache和php,高手另說。

homebrew

homebrew是mac系統下特別好用的一個軟體包工具,而且它的安裝也是極為簡單。

網上有很多人直接給出了homebrew的安裝命令,但是大部分的地址已經失效。在homebrew網站上 http://brew.sh/ ,正中間就是homebrew的安裝命令,直接複製到你的終端裡執行就可以了。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

homebrew安裝完成了,我們再用brew來安裝Nginx,有了brew後,安裝就變得很簡單了,不需要自己去make之類的。

安裝nginx

brew install nginx

就這一句命令,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

到這裡,nginx基本上是完工了

執行nginx :

sudo nginx #開啟 nginx
nginx -s reload|reopen|stop|quit  #重新載入配置|重啟|停止|退出 nginx
nginx -t   #測試配置是否有語法錯誤

安裝MySql

brew install mysql

也是一句命令搞定,等執行完後,mysql也安裝完畢,接下來就是對mysql的一些配置

1.先cd到mysql的目錄中:

cd /usr/local/opt/mysql/

2.加入launchctl啟動控制

mkdir -p ~/Library/LaunchAgents/
cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
#取消啟動
#launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

3.執行安全設定指令碼,設定root賬號密碼,如果不執行這一步,是無法用mysql -u root -p這個命令登入mysql的,網上很多教程就是沒有這個說明,所以這裡特別強調下:

./bin/mysql_secure_installation

執行上面的命令後,會進入mysql的配置,具體步驟就不寫了,每一個選項都有說明是幹什麼的,等這個命令執行完畢後,你就可以用 mysql -u root -p 來登入mysql 了。

安裝php

php 的安裝相對nginx和mysql來說,要複雜點,因為brew 預設沒有php的包

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

執行完上面命令後,這個時候才可以安裝php,不過php有很多的版本,你可以用:brew search php 來檢視具體的版本。

我電腦上是安裝的php 5.6版本的:

brew install php56 --with-imap --with-tidy --with-debug --with-mysql --with-fpm

1.安裝成功後,就是對php的配置了,因為mac預設是自帶php的,所以我們要把我們安裝的php加到環境變數裡,而不是繼續使用mac自帶的php

sudo vim ~/.bash_profile

#在這個檔案最後新增下列語句:
export PATH="$(brew --prefix php56)/bin:$PATH"

#儲存檔案後,source下這個檔案,使剛剛新增的環境變數生效
source ~/.bash_profile

這個時候,你在命令列裡執行 php -v 看到的不再是系統自帶的php了,而是我們剛剛安裝的php

2.加入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

配置檔案路徑

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

配置Nginx 支援 php

執行 sudo vim /usr/local/etc/nginx/nginx.conf 修改nginx 的配置檔案

把配置檔案中 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 下的 location ~ .php$ {} 註釋取消掉,並修改成下面樣子:

location ~ \.php$ {
    fastcgi_intercept_errors on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/Cellar/nginx/1.10.1/html$fastcgi_script_name;
    include        /usr/local/etc/nginx/fastcgi_params;
}

儲存檔案後,一定要去重啟nginx ,否則是不會載入配置檔案的。

如果重啟後,訪問php檔案顯示404 File Not Found. 你就需要檢查下你 fastcgi_param SCRIPT_FILENAME 後面跟的目錄是否是正確的。

到這裡,環境搭建就完成了。

順便提下nginx 配置虛擬域名:
1.在nginx中,監聽80埠,server_name 後面輸入你要繫結的域名就好
2.sudo vim /etc/hosts ,在檔案最後加入一行:

127.0.0.1    nginx中配置的域名

3.沒有了...哪有那麼麻煩是吧!


問題列表:

1.nginx重啟後丟失pid,出現如下錯誤:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
shell #出現這個你只需要執行下面命令就好了: nginx -c 後面跟的是你nginx配置檔案的目錄,有可能和我的不一樣 nginx -c /usr/local/etc/nginx/nginx.conf

2.訪問html檔案正常,但是訪問php檔案直接下載檔案
有可能是你忘記重啟nginx,導致nginx還沒有載入php檔案的解析配置,所以無法解析。如果重啟後還是不能成功訪問的話,需要確認nginx配置檔案是否有誤。

如果還是沒有安裝成功,可以直接聯絡我。



作者:彭小智
連結:https://www.jianshu.com/p/255889464b2f
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。