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

來源:互聯網
上載者:User

尋找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是使用者登陸後啟動的服務(守護進程)。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.