寻找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是用户登陆后启动的服务(守护进程)。