尋找php-fpm的路徑
whereis php-fpm
如果找不到,可以嘗試使用:
find / -name php-fpm
一般預設的路徑就是:
/usr/sbin/php-fpm
修改php-fpm.conf設定檔
預設位置是:
/private/etc/php-fpm.conf
如果不存在的話,就看看是不是存在
/private/etc/php-fpm.conf.default
然後 COPY 一份:
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
修改php-fpm的設定檔的項目『daemonize』
daemonize = yes
把前面的分號去掉。
加入啟動項
在~/Library/LaunchAgents目錄,建立 org.php.php-fpm.plist 檔案:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>Label</key> <string>php-fpm</string> <key>Program</key> <string>/usr/sbin/php-fpm</string> <key>KeepAlive</key><true/></dict></plist>
注意:xml檔案中的php-fpm的路徑,是通過上面的命令得到的。
sudo chown root:owner ~/Library/LaunchAgents/org.php.php-fpm.plistsudo chmod +x ~/Library/LaunchAgents/org.php.php-fpm.plistsudo launchctl load -w ~/Library/LaunchAgents/org.php.php-fpm.plist
執行完以上命令,可以用這個調試命令,來看看是否載入了啟動項:
launchctl list | grep php
輸出:
-0php-fpm
中間的數字是狀態代碼,如果是0說明已經成功了,這時服務已經啟動了;
如果不是0,就可能有問題了。
我開始在命令
sudo chown root:owner ~/Library/LaunchAgents/org.php.php-fpm.plist
中沒有指定root,而是另一個我常用的使用者,但是得到的狀態是:78。
還有一點要注意:執行 launchctl 命令加 sudo 與不加結果是完全不同的。
2018-04-27 繼續嘗試
之前的配置還是沒有成功,不知道是不是因為許可權的問題。
1、建立檔案 /Library/LaunchDaemons/org.macports.php-fpm.plist,參考:org.macports.nginx.plist ,刪除了pid的部分。
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd" ><plist version='1.0'><dict><key>Label</key><string>org.macports.php-fpm</string><key>ProgramArguments</key><array> <string>/opt/local/bin/daemondo</string> <string>--label=php-fpm</string> <string>--start-cmd</string> <string>/usr/sbin/php-fpm</string> <string>;</string> <string>--pid=fileauto</string></array><key>KeepAlive</key><true/></dict></plist>
2、修改許可權 使可以直接使用 php-fpm 啟動
sudo chmod 777 /usr/local/var/log/php-fpm.log
sudo chmod 777 /usr/local/var/log/www.access.log
3、直接使用 launchctl load -w org.macports.php-fpm.plist 載入
載入後,執行 ps -ef | grep php 得到
501 2622 1 0 11:05上午 ?? 0:00.01 /opt/local/bin/daemondo --label=nginx --start-cmd /usr/sbin/php-fpm ; --pid=fileauto
launchctl list | grep php
2644 2 org.macports.php-fpm
- 70 php-fpm
2018-04-28
1、服務是啟動了;但是:
launchctl list | grep php
- 70 php-fpm
之前配置的還是沒有啟動成功;
2、修改:sudo vi /Library/LaunchDaemons/org.macports.php-fpm.plist
把檔案中的nginx 改為 php-fpm
2018-05-02
執行 launchctl list | grep php 和 sudo launchctl list | grep php 看到的是不同的結果,
$ launchctl list | grep php311670php-fpm$ sudo launchctl list | grep phpPassword:31202org.macports.php-fpm
查看進程
$ ps -ef | grep php 0 140 1 0 8:49上午 ?? 0:01.59 /usr/sbin/php-fpm 501 155 140 0 8:50上午 ?? 0:00.26 /usr/sbin/php-fpm 501 156 140 0 8:50上午 ?? 0:00.02 /usr/sbin/php-fpm 501 3104 140 0 10:42上午 ?? 0:00.01 /usr/sbin/php-fpm 0 3158 1 0 10:45上午 ?? 0:00.01 /opt/local/bin/daemondo --label=php-fpm --start-cmd /usr/sbin/php-fpm ; --pid=fileauto 501 3163 580 0 10:45上午 ttys000 0:00.00 grep --color php
似乎是兩種都啟動成功了。
================================
關於上述開機檔案的目錄,/Library/LaunchAgents,還有個關聯位置:/Library/LaunchDaemons/。當沒有生效的時候,可以查看一下這個plist檔案,不如換個位置試試。mac系統中,有幾個類似的位置,功效是不同的。在本例中,建議大家使用~/Library/LaunchAgents/。
LaunchDaemons和LaunchAgents功能區別對比:
LaunchDaemons是使用者未登陸前就啟動的服務(守護進程)。
LaunchAgents是使用者登陸後啟動的服務(守護進程)。