php pcntl_alarm,php - 由于安全原因,pcntl无法在Ubuntu上运行 - Ubuntu问答

问题描述

我已使用this文章在运行于Ubuntu 32位12.10的PHP 5.4.6上安装了pcntl。

它一点也不顺利,因为在编译后,运行make test时出现以下错误。每当我尝试派生一个子进程时,我都会收到一条警告:

Warning: pcntl_fork() has been disabled for security reasons in /var/www/mydev/dev/mailServiceTest.php on line 8

我在网上搜索了一个解决方案,但不幸的是,我在其他任何地方都没有提到此问题。

Build complete.

Don't forget to run 'make test'.

PHP Warning: Module 'pcntl' already loaded in Unknown on line 0

PHP Warning: Module 'pcntl' already loaded in Unknown on line 0

=====================================================================

PHP : /usr/bin/php

Warning: Module 'pcntl' already loaded in Unknown on line 0

PHP_SAPI : cli

PHP_VERSION : 5.4.6-1ubuntu1.2

ZEND_VERSION: 2.4.0

PHP_OS : Linux - Linux oleg-Lenovo-G580 3.5.0-26-generic #42-Ubuntu SMP Fri Mar 8 23:20:06 UTC 2013 i686

INI actual : /php/php-5.4.6/ext/pcntl/tmp-php.ini

More .INIs :

CWD : /php/php-5.4.6/ext/pcntl

Extra dirs :

VALGRIND : Not used

=====================================================================

TIME START 2013-04-28 12:11:03

=====================================================================

FAIL Test pcntl wait functionality [tests/001.phpt]

FAIL pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt]

FAIL pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt]

FAIL Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt]

FAIL pcntl_alarm() [tests/pcntl_alarm.phpt]

FAIL pcntl_exec() [tests/pcntl_exec.phpt]

FAIL pcntl_exec() 2 [tests/pcntl_exec_2.phpt]

FAIL pcntl_exec() 3 [tests/pcntl_exec_3.phpt]

FAIL Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt]

FAIL Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt]

FAIL Test pcntl_get_last_error() [tests/pcntl_get_last_error.phpt]

FAIL pcntl_signal() [tests/pcntl_signal.phpt]

FAIL pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt]

FAIL pcntl_wait() [tests/pcntl_wait.phpt]

FAIL Closures as a signal handler [tests/signal_closure_handler.phpt]

=====================================================================

TIME END 2013-04-28 12:11:07

=====================================================================

TEST RESULT SUMMARY

---------------------------------------------------------------------

Exts skipped : 0

Exts tested : 44

---------------------------------------------------------------------

Number of tests : 15 15

Tests skipped : 0 ( 0.0%) --------

Tests warned : 0 ( 0.0%) ( 0.0%)

Tests failed : 15 (100.0%) (100.0%)

Expected fail : 0 ( 0.0%) ( 0.0%)

Tests passed : 0 ( 0.0%) ( 0.0%)

---------------------------------------------------------------------

Time taken : 4 seconds

=====================================================================

=====================================================================

FAILED TEST SUMMARY

---------------------------------------------------------------------

Test pcntl wait functionality [tests/001.phpt]

pcntl: pcntl_sigprocmask(), pcntl_sigwaitinfo(), pcntl_sigtimedwait() [tests/002.phpt]

pcntl: SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK [tests/003.phpt]

Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt]

pcntl_alarm() [tests/pcntl_alarm.phpt]

pcntl_exec() [tests/pcntl_exec.phpt]

pcntl_exec() 2 [tests/pcntl_exec_2.phpt]

pcntl_exec() 3 [tests/pcntl_exec_3.phpt]

Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt]

Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt]

Test pcntl_get_last_error() [tests/pcntl_get_last_error.phpt]

pcntl_signal() [tests/pcntl_signal.phpt]

pcnt_signal_dispatch() [tests/pcntl_signal_dispatch.phpt]

pcntl_wait() [tests/pcntl_wait.phpt]

Closures as a signal handler [tests/signal_closure_handler.phpt]

=====================================================================

You may have found a problem in PHP.

This report can be automatically sent to the PHP QA team at

http://qa.php.net/reports and http://news.php.net/php.qa.reports

This gives us a better understanding of PHP's behavior.

If you don't want to send the report immediately you can choose

option "s" to save it. You can then email it to [email protected] later.

Do you want to send this report now? [Yns]: y

Please enter your email address.

(Your address will be mangled so that it will not go out on any

mailinglist in plain text): [email protected]

Posting to http://qa.php.net/buildtest-process.php

Thank you for helping to make PHP better.

oleg@oleg-Lenovo-G580:/php/php-5.4.6/ext/pcntl$ version

键入以下命令时,似乎PHP确实已经安装,尽管PHP解释器在我安装此扩展之前根本无法识别该功能:

oleg@oleg-Lenovo-G580:/php/php-5.4.6/ext/pcntl$ php -m | grep pcntl

PHP Warning: Module 'pcntl' already loaded in Unknown on line 0

pcntl

如何配置此功能使其正常工作?

最佳方案

须藤gedit

sudo gedit /etc/php5/cli/php.ini

或\和

sudo gedit /etc/php5/apache2/php.ini找到:

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl

发表评论:

;disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl

参考资料

你可能感兴趣的:(php,pcntl_alarm)