Mac安裝Nginx、配置PHP(一)

之前都是使用Apache和PHP協同工作的

因爲PHP是自學的,很多不理解的(TP都沒怎麼看,也沒用)

最近想使用nginx和php一起寫點東西

因爲自己在電腦已經安裝完成了,期間遇到了一些問題,趁着現在還有一點印象現在記錄下來,如果以後使用nginx和php開發的時候可以參照一下

1、在Linux上的時候使用yum安裝軟件,在Mac上的話看到一個homebrew,前邊有個帖子已經寫了怎麼安裝了(參照:         macOS 不可或缺的套件管理器-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文件,配置自己的訪問域名


當時參照了一個帖子:

連接《http://www.jianshu.com/p/255889464b2f》













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章