記一次MAC配置LNMP PHP環境的坑

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
cp 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;
    }
}

如有錯誤, 歡迎指正, 不勝感激.

如果你還遇到了其他問題, 也歡迎留言交流.

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