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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。