I have installed pcntl on my PHP 5.4.6 running on Ubuntu 32-bit 12.10, using this article.
It didn't go smoothly at all because after compiling, when running make test
I got the following errors. I am getting a warning each time that I'm trying to fork a child process which says:
Warning: pcntl_fork() has been disabled for security reasons in /var/www/mydev/dev/mailServiceTest.php on line 8
I've searched all over the web for a solution, but unfortunately I didn't find any mentioning of this problem anywhere else.
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
When typing the following command, it seems that PHP is indeed already installed, although the PHP interpreter didn't recognize the function before I installed this extension at all:
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
How can I configure this feature to work properly?
sudo gedit
sudo gedit /etc/php5/cli/php.ini
or \ and
sudo gedit /etc/php5/apache2/php.ini
find:
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
Comment this out:
;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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With