0

我已经加载了 phpcgi.plist 但 php-fastcgi 没有运行。

plist文件是:

Michaels-MacBook-Pro:~ michael$ ll com*
-rwxr--r--  1 michael  admin  664  4  7 13:40 com.phpfcgi.plist*

plist XML:

Michaels-MacBook-Pro:~ michael$ cat com.phpfcgi.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>Debug</key>
  <false/>
  <key>EnvironmentVariables</key>
  <dict>
    <key>PHP_FCGI_CHILDREN</key>
    <string>2</string>
    <key>PHP_FCGI_MAX_REQUESTS</key>
    <string>1000</string>
  </dict>
  <key>Label</key>
  <string>com.phpfcgi</string>
  <key>OnDemand</key>
  <false/>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/php-cgi</string>
    <string>-b 127.0.0.1:9000</string>
    <string>-q</string>
  </array>
  <key>RunAtLoad</key>
  <false/>
</dict>
</plist>

链接它:

Michaels-MacBook-Pro:~ michael$ ll Library/LaunchAgents/com.phpfcgi.plist
lrwxr-xr-x  1 michael  admin  47  4  7 13:27 Library/LaunchAgents/com.phpfcgi.plist@ -> /Volumes/MainHD/Users/michael/com.phpfcgi.plist

我加载它:

Michaels-MacBook-Pro:~ michael$ launchctl load -w Library/LaunchAgents/com.phpfcgi.plist
com.phpfcgi: Already loaded

我检查一下:

Michaels-MacBook-Pro:~ michael$ ps -A | grep php
 1110 ttys000    0:00.00 grep php

不工作。

但我可以通过运行启动 php fastcgi。

Michaels-MacBook-Pro:~ michael$ cat start_php-fastcgi
/usr/local/bin/php-cgi -q -b 127.0.0.1:9000 &
4

2 回答 2

1

加载和开始作业是有区别的。您的作业定义不包含运行条件。您指定了RunAtLoad false,告诉launchd(8)在加载作业时不要运行作业。如果您是故意这样做的,您可以使用launchctl start com.phpfcgi.

于 2013-04-07T20:26:24.200 回答
1

“-b”和主机之间应该没有空格(我的系统是osx 10.8)

我找到了一条评论:

感谢您提供此 plist 文件!许多教程在“-b”和主机名和端口之间显示一个空格。我的进程一直以 255 的状态死亡,直到我删除了那个空间。– 马特 2012 年 8 月 26 日在 16:24

OS X:在系统启动时通过 launchd 自动启动 PHP FCGI

它解决了我的问题。

新的 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>EnvironmentVariables</key>
  <dict>
    <key>PHP_FCGI_CHILDREN</key>
    <string>2</string>
    <key>PHP_FCGI_MAX_REQUESTS</key>
    <string>1000</string>
  </dict>
  <key>Label</key>
  <string>com.phpfcgi</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/php54/bin/php-cgi</string>
    <string>-b127.0.0.1:9000</string>
    <string>-q</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
于 2013-04-08T05:52:40.447 回答