mac系統,php-fpm加入開機啟動項

微wx笑發表於2018-04-24
版權宣告:本文為 testcs_dn(微wx笑) 原創文章,非商用自由轉載-保持署名-註明出處,謝謝。 https://blog.csdn.net/testcs_dn/article/details/80060551

尋找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.plist
sudo chmod +x ~/Library/LaunchAgents/org.php.php-fpm.plist
sudo launchctl load -w ~/Library/LaunchAgents/org.php.php-fpm.plist

執行完以上命令,可以用這個除錯命令,來看看是否載入了啟動項:

launchctl list | grep php

輸出:

-	0	php-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 php
3116	70	php-fpm
$ sudo launchctl list | grep php
Password:
3120	2	org.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是使用者登陸後啟動的服務(守護程式)。


相關文章