如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

书接上文,把apache和php的关系变成了fastcgi的关系(http://newsn.com.cn/say/apache-fastcgi-php.html)后。php-fpm不自动启动,似乎是个严重的问题。本篇文章就说这事。

寻找php-fpm的路径

我们通过find命令就可以得到php-fpm的默认路径是:/usr/sbin/php-fpm。下面的两个命令,任选一个即可。

find / -name php-fpm
whereis php-fpm

mac系统,php-fpm如何加入开机启动项 - 030
mac系统,php-fpm如何加入开机启动项(图13-1)

mac系统,php-fpm如何加入开机启动项 - php-fpm-02
mac系统,php-fpm如何加入开机启动项(图13-2)

修改php-fpm.conf配置文件

1: 测试命令
配置文件的修改,需要使用php-fpm -t来测试配置文件的效果。所以请多多使用下面的命令。

php-fpm -t

mac系统,php-fpm如何加入开机启动项 - 032
mac系统,php-fpm如何加入开机启动项(图13-3)

2: 初始化配置文件
我们通过下面的命令,找到php-fpm.conf.default文件,然后复制一份php-fpm.conf出来。

ls -al /private/etc/ | grep php
sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf

mac系统,php-fpm如何加入开机启动项 - 033
mac系统,php-fpm如何加入开机启动项(图13-4)

3:log文件路径
如果有log文件路径的错误信息,我们需要做如下配置:
在配置文件/private/etc/php-fpm.conf中,我们找到error_log的配置内容。我们需要创建这个文件,并赋予写权限。在这里,请注意,如果提示没有权限的话,很可能是由于mac的rootless问题所引起的。http://newsn.com.cn/tag/rootless/

sudo mkdir -p /usr/var/log/
sudo touch /usr/var/log/php-fpm.log
sudo chmod -R 777 /usr/var/log/php-fpm.log

mac系统,php-fpm如何加入开机启动项 - 035
mac系统,php-fpm如何加入开机启动项(图13-5)

mac系统,php-fpm如何加入开机启动项 - 036
mac系统,php-fpm如何加入开机启动项(图13-6)

4:设置伺服器模式

修改php-fpm的配置文件的项目『daemonize』。路径是/private/etc/php-fpm.conf。

daemonize = yes

mac系统,php-fpm如何加入开机启动项 - 037
mac系统,php-fpm如何加入开机启动项(图13-7)

5:错误信息“No pool defined. at least one pool section must be specified in config file”处理。

mac系统,php-fpm如何加入开机启动项 - 039
mac系统,php-fpm如何加入开机启动项(图13-8)

mac系统,php-fpm如何加入开机启动项 - 041
mac系统,php-fpm如何加入开机启动项(图13-9)

sudo cp /private/etc/php-fpm.d/www.conf.default /private/etc/php-fpm.d/www.conf

6:最后,就是加入启动项了,mac下面加入启动项,挺麻烦的。不如win下面直接了当。
在~/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里面的路径是上个命令拿到的。

mac系统,php-fpm如何加入开机启动项 - 044
mac系统,php-fpm如何加入开机启动项(图13-10)

sudo chown root:wheel ~/Library/LaunchAgents/org.php.php-fpm.plist
sudo chmod +x ~/Library/LaunchAgents/org.php.php-fpm.plist
launchctl load -w ~/Library/LaunchAgents/org.php.php-fpm.plist

敲个这个命令,重启完工。话说这个launchctl有点crontab的感觉。

php-fpm.d文件中,默认的用户名和组是nobody。有教程说要修改它为root和wheel。请谨慎更改。除非您能保证您的mac关闭了rootless,否则会导致fpm不能启动。

mac系统,php-fpm如何加入开机启动项 - nobody
mac系统,php-fpm如何加入开机启动项(图13-11)

当重启不生效的死活,可以用这个调试命令,来看看是否真正加载启动:

launchctl list | grep php

关于上述启动文件的目录,/Library/LaunchAgents,还有个关联位置:/Library/LaunchDaemons/。当没有生效的时候,可以查看一下这个plist文件,不如换个位置试试。mac系统中,有几个类似的位置,功效是不同的。在本例中,建议大家使用~/Library/LaunchAgents/

mac系统,php-fpm如何加入开机启动项 - 047_ok
mac系统,php-fpm如何加入开机启动项(图13-12)

mac系统,php-fpm如何加入开机启动项 - 049
mac系统,php-fpm如何加入开机启动项(图13-13)

LaunchDaemons和LaunchAgents功能区别对比:
LaunchDaemons是用户未登陆前就启动的服务(守护进程)。
LaunchAgents是用户登陆后启动的服务(守护进程)。

结论

更多苏南大叔带来的php-fpm的相关文章,请点击这里查看:http://newsn.com.cn/tag/fpm/

 【源码】代码片段及相关软件点此获取

 【php】秘籍文章入口,仅传授于有缘之人   php    fpm

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!