【问题标题】:pcntl_fork not working when being used with apache but does work from CLIpcntl_fork 在与 apache 一起使用时不工作,但在 CLI 中工作
【发布时间】:2022-11-10 02:31:01
【问题描述】:

我有一个小型任务关键型 Web 应用程序,需要相当快地响应所有请求。我需要运行一些可能需要几秒钟的其他代码。我试图使用pcntl_fork。如果我有简单的脚本

<?PHP
$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
        echo "We are the parent!!";
     pcntl_wait($status); //Protect against Zombie children
} else {
     // we are the child
        sleep (5);
        echo "Child here!!";
}

?>

它似乎工作正常。我明白了

[dovid@k1 php.d]# php  /var/www/html/test.php 
We are the parent!!Child here!![dovid@k1 php.d]# 

PHP显示它已启用

[dovid@k1 php.d]# php -i | grep pcntl
pcntl
pcntl support => enabled
[dovid@k1 php.d]#

然而,当我尝试通过 apache 调用页面时,出现 500 错误,并且在 apache 日志中我得到

[Mon Jun 13 05:20:53.953818 2022] [:error] [pid 30457] [client XX.XX.XX.XX:57500] PHP Fatal error:  Call to undefined function pcntl_fork() in /var/www/html/test.php on line 2

我的 apache 配置中是否缺少某些内容?有没有更好的方法在 PHP 中分叉思想(例如使用 exec 和 &?)。我在 CentOS7 克隆(Sangoma Linux)机器上执行此操作。安装的 PHP 包相当旧

[dovid@k1 php.d]# rpm -qa | grep php
php56w-5.6.40-1.sng7.x86_64
php56w-xml-5.6.40-1.sng7.x86_64
php56w-pear-1.10.1-1.w7.noarch
php56w-intl-5.6.40-1.sng7.x86_64
php-digium_register-4.0-1.sng7.x86_64
php56w-pdo-5.6.40-1.sng7.x86_64
php56w-pecl-redis-2.2.7-1.w7.x86_64
php56w-gd-5.6.40-1.sng7.x86_64
php56w-pecl-ssh2-0.13-1.sng7.x86_64
php56w-pecl-igbinary-1.2.1-2.w7.x86_64
php56w-odbc-5.6.40-1.sng7.x86_64
php56w-process-5.6.40-1.sng7.x86_64
php56w-mbstring-5.6.40-1.sng7.x86_64
php56w-soap-5.6.40-1.sng7.x86_64
php56w-mysqlnd-5.6.40-1.sng7.x86_64
php56w-ldap-5.6.40-1.sng7.x86_64
php56w-common-5.6.40-1.sng7.x86_64
php56w-cli-5.6.40-1.sng7.x86_64
php56w-bcmath-5.6.40-1.sng7.x86_64
[dovid@k1 php.d]# rpm -qa | grep httpd
httpd-tools-2.4.6-93.el7.centos.x86_64
httpd-2.4.6-93.el7.centos.x86_64
[dovid@k` php.d]# 

【问题讨论】:

    标签: linux apache php-5.5 pcntl


    【解决方案1】:

    pcntl 似乎不适用于 apache。看来这可能有效https://github.com/spatie/async

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多