macos 自帶了 php
如果不想卸載的話
只需要安裝 nginx 和 mysql 就行了
mac下使用 homebrew 安裝軟件還是很方便的
brew install nginx
brew install mysql
安裝好 nginx 和 mysql 之後,下面開始配置域名信息
下面以 zhumingzhen.test 這個本地域名爲例來演示
首先使用 nginx -t 查看 nginx 的配置文件目錄
切換到 nginx 配置文件目錄
打開 nginx.conf 文件
看到最後面一行有個引入 servers 目錄下的所有內容
我一般習慣把所有的配置信息分別以單個文件,保存到 servers 目錄下面
在 servers 目錄下 新建 zhumingzhen.conf 配置文件
注意: 上面使用 ip 加端口的形式連接
也需要修改 php-fpm 的配置 與之相同
如果上面使用 php-fpm.sock 文件形式
也需要修改 php-fpm 的配置 與之相同
nginx
fastcgi_pass unix:/private/etc/php-fpm/php7-fpm.sock;
php-fpm
listen = /private/etc/php-fpm/php7-fpm.sock
修改本地 host 文件, 使訪問 zhumingzhen.test 域名指向本地
編輯 hosts 文件, 在最後一行添加
127.0.0.1 zhumingzhen.test
添加完成保存退出
使用 brew 命令重啓 nginx 服務器
brew services restart nginx
此時我認爲都配置好了 就去訪問 zhumingzhen.test
結果訪問不到提示 502
猜測可能是 php-fpm 沒有啓動成功
於是執行命令 sudo php-fpm -D 啓動 php-fpm
結果報錯
$ sudo php-fpm -D
Password:
No log handling enabled - using stderr logging
Created directory: /var/db/net-snmp
Created directory: /var/db/net-snmp/mib_indexes
[30-May-2019 15:29:47] ERROR: failed to open configuration file ‘/private/etc/php-fpm.conf’: No such file or directory (2)
[30-May-2019 15:29:47] ERROR: failed to load configuration file ‘/private/etc/php-fpm.conf’
[30-May-2019 15:29:47] ERROR: FPM initialization failed
找不到 php-fpm.conf 文件
於是切換到 /private/etc/ 目錄
看到確實沒有 php-fpm.comf 文件.
只有一個 php-fpm.conf.default 文件
我們需要 複製 php-fpm.conf.default 爲 php-fpm.conf
cp php-fpm.conf.default php-fpm.conf
cp: php-fpm.conf: Permission denied
沒有權限 需要使用 sudo 命令
複製成功 重啓 php-fpm
sudo php-fpm -D
這裏還是有報錯
ERROR: No pool defined. at least one pool section must be specified in config file
[30-May-2019 15:31:15] WARNING: Nothing matches the include pattern ‘/private/etc/php-fpm.d/*.conf’ from /private/etc/php-fpm.conf at line 125.
[30-May-2019 15:31:15] ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
[30-May-2019 15:31:15] ERROR: failed to post process the configuration
[30-May-2019 15:31:15] ERROR: FPM initialization failed
此時報錯 php-fpm.d 文件下沒有文件
我們進入 php-fpm.d 看到目錄下只有 www.conf.default
我們需要複製 一份爲 www.conf
修改 www.conf 配置 listen = 127.0.0.1:9000
上面說了這個地方要和 nginx 配置文件中的一致
還有一個報錯是 沒有 /usr/var/log/php-fpm.log 這個日誌文件目錄
修改 php-fpm.conf 配置文件 日誌路徑爲
error_log = /usr/local/var/log/php-fpm.log
重新啓動 sudo php-fpm -D
此時就能看到 php info 頁面了
如果你訪問 php 文件 404
那麼應該是你的 nginx 配置文件中的 root 項目目錄配置問題
參照下我的配置文件
server {
listen 80;
server_name zhumingzhen.test;
charset utf-8;
root /Users/zhumingzhen/Code/zhumingzhen; # 你的項目目錄
location / {
#root /usr/share/nginx/html;
try_files $uri $uri/ /index.php$is_args$args;
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
try_files $uri = 404;
}
}
如有錯誤, 歡迎指正, 不勝感激.
如果你還遇到了其他問題, 也歡迎留言交流.