分享背景
由於一直在虛擬機器的狀態下開發PHP,嘗試一下mac本地搭建環境.mac本身是自帶Apache+php的,在低版本的mac系統中,mac中的php版本是5.6的版本.
本文分享的是在mac的10.13版本.前提是本地安裝了brew包管理工具,如果還沒安裝的可以參考官網文件安裝,傳送門.
安裝步驟
1.停止本地的Apache服務
sudo apachectl stop
2.安裝NGINX
brew install nginx
3.啟動NGINX
// 檢視幫助命令
nginx -v
// 重啟命令
nginx -s reload
// 每次我們配置了虛擬主機之後,都要使用下面的命令進行重啟
sudo nginx -s reload
如果出現如下錯誤資訊
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解決思路是(前提是使用的brew包管理工具安裝的,如果是其他的安裝方式根據情況而定)
mkdir /usr/local/Cellar/nginx/1.15.12/logs
4.訪問NGINX,開啟瀏覽器,輸入如下網址,正確的情況就可以看到如下的截圖.
127.0.0.1:8080
5.NGINX專案目錄介紹,通過上面的步驟,就表示NGINX已經完成了.這裡有幾個檔案,我們需要關注一下.
1.nginx配置目錄
/usr/local/etc/nginx
2.nginx的專案根目錄
/usr/local/var/www
6.配置php(由於mac的高版本中已經內建了PHP7.1的版本,該文章也是基於這個基礎上操作的.後續完善該文章,實現一個多版本的切換.)
1.去掉nginx.conf中如下程式碼中的註釋(在去掉之前最好備份一份 shell cp nginx.conf nginx.conf.bak)
)
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
該段程式碼的主要意思就是讓nginx能夠解析到php,不然你去訪問php的檔案,nginx會預設下載該php檔案.在Apache中是以模組的方式載入的php,就是去掉
LoadModule php_module libexec/apache2/libphp7.so
2.修改1中的部分配置
原配置中的值為
/scripts$fastcgi_script_name
需要修改為
$document_root$fastcgi_script_name
該程式碼主要的意思就是讓nginx能夠識別到nginx配置檔案中的root項.不然會報not find file錯誤資訊.
重啟nginx服務,php nginx -s reload
3.配置php-fpm檔案
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
修改我們新複製的php-fpm.conf檔案中的如下配置專案.修改為下面的示例
pid=/var/run/php-fpm.pid
error_log=/var/log/php-fpm.log
4.啟動php-fpm服務
sudo php-fpm
啟動服務的時候可能會遇到下面的問題,反正我是遇到了(下面的路徑根據你圖片指示的路徑來定,可能有的環境路徑不一致).解決辦法是
cp /data/server/php7/etc/php-fpm.d/www.conf.default /data/server/php7/etc/php-fpm.d/www.conf
然後在啟動一次,即可.
5.編寫測試檔案,我們找到/usr/local/var/www目錄,建立一個test.php的檔案.寫入如下程式碼.
phpinfo();
6.測試效果
開啟瀏覽器,訪問http://localhost/test.php ,即可看到如下效果
7.如何實現PHP版本升級
在上面的示例中,我們安裝的PHP版本為7.1的版本.但在一些情況下面,我們可能需要更高的版本.下面升級的示例則是使用brew包管理工具進行升級.
檢視brew可安裝的PHP包
brew search php
其中帶√的是當前安裝的版本,接下里我們就可以安裝新版本
brew install php72
啟動服務
sudo brew services start php72
這樣我們就不需要再次去執行shell sudo php-fpm
,否則會發生埠衝突.這種情況下,系統預設的PHP版本還是7.1,同時我們也便於實現PHP多版本管理.
新PHP版本安裝位置
/usr/local/Cellar/php@7.2
啟動新版本PHP服務(啟動php7.2版本之前,需要關掉之前PHP的服務,可以選擇重啟電腦來關閉)
// 重啟服務
brew services restart php@7.2
啟動服務
brew services start php@7.2
已守護程式模式啟動
php-fpm
新版本PHP配置檔案
使用 find / -name php.ini命令發現,有如下兩個配置檔案,我們這裡以第一個為主,以後的配置可以直接在第一個配置檔案進行修改
/usr/local/etc/php/7.2/php.ini
/usr/local/Cellar/php@7.2/7.2.20/.bottle/etc/php/7.2/php.ini
新版本PHP擴充套件檔案
這裡我們需要提及到常用的兩個檔案,一個是phpize,一個是php-config,這兩個檔案都需要我們在安裝php擴充套件時需要用到,他們的目錄均在如下目錄
/usr/local/Cellar/php@7.2/7.2.20/bin
本作品採用《CC 協議》,轉載必須註明作者和本文連結