首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu PHP中启用PCNTL -测试失败

在Ubuntu PHP中启用PCNTL -测试失败
EN

Stack Overflow用户
提问于 2012-12-31 08:20:56
回答 5查看 30.1K关注 0票数 12

我需要关于如何在Ubuntu PHP中启用PCNTL的帮助。

代码语言:javascript
复制
$ mkdir /tmp/phpsource
$ cd /tmp/phpsource


$ wget http://museum.php.net/php5/php-5.3.2.tar.gz
$ tar xvf php-5.3.2.tar.gz
$ cd php-5.3.2/ext/pcntl


$ phpize   -bash: phpize: command not found

在我尝试运行phpize之前,一切都很顺利!然后我得到错误'-bash: phpize: command not found‘??有什么想法吗?

更新范围:

代码语言:javascript
复制
$ sudo apt-get update

然后运行:

代码语言:javascript
复制
$ sudo apt-get install php5-dev

在尼克的帮助下,我设法完成了这个程序。但是“进行测试”失败了?

代码语言:javascript
复制
$ phpize
$ ./configure
$ make

$ cp modules/pcntl.so /usr/lib/php5/20090626/
$ echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini

$ make test - FAILED!

帮助:我第一次运行这个程序时输入了'echo "extension=pcntl.so > /etc/php5/conf.d/pcntl.ini‘,而不是'echo "extension=pcntl.so“> /etc/php5/conf.d/pcntl.ini’,这是不是很糟糕?

- TEst错误消息

代码语言:javascript
复制
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0
PHP Warning: Module 'pcntl' already loaded in Unknown on line 0

Warning: Module 'pcntl' already loaded in Unknown on line 0
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1850 in Unknown on line 0
PHP Deprecated: Comments starting with '#' are deprecated in /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini on line 1852 in Unknown on line 0
PHP Warning: Module 'pcntl' already loaded in Unknown on line 0

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

=====================================================================
PHP : /usr/bin/php
PHP_SAPI : cli
PHP_VERSION : 5.3.2-1ubuntu4.18
ZEND_VERSION: 2.3.0
PHP_OS : Linux - Linux lvps217-8-253-63.vps.webfusion.co.uk 2.6.32-042stab068.8 #1 SMP Fri Dec 7 17:06:14 MSK 2012 x86_64
INI actual : /tmp/phpsource/php-5.3.2/ext/pcntl/tmp-php.ini
More .INIs :
CWD : /tmp/phpsource/php-5.3.2/ext/pcntl
Extra dirs :
VALGRIND : Not used
=====================================================================
TIME START 2013-01-02 23:05:56
=====================================================================
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 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-01-02 23:05:59

=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 0
Exts tested : 44
---------------------------------------------------------------------

Number of tests : 14 14
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 14 (100.0%) (100.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 0 ( 0.0%) ( 0.0%)
---------------------------------------------------------------------
Time taken : 3 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]
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]

有什么想法吗!?!卡尔

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-07 04:09:02

这是我在Ubuntu 12.04中发现的:

  • 检查您的PHP.ini是否禁用了pnctl功能。

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_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,,报告函数已经加载,但如果不将文件放入/etc/php5/conf.d,它将不会实际工作。

遗憾的是,每当/etc/cron.d中的PHP会话清理cron启动时,这都会导致“模块已加载”错误,但如果没有这两个部分,PCNTL将无法工作,而且到目前为止,我还没有找到一个很好的解决方案来禁用“已加载”错误。它凌乱,丑陋,垃圾邮件我的根邮件,当我能找到一个解决方案,我会张贴它。到目前为止,我只在12.04中遇到过这个问题。

更新

我破解了我的/usr/lib/php5/maxlifetime脚本文件,以停止带有pnctl错误的垃圾邮件(PHP警告:模块'pcntl‘已加载到第0行的未知位置)。以下是我的编辑--我特意在'E_DEPRECATED‘行添加了一些内容,以使消息安静下来。

第8行:

代码语言:javascript
复制
    cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='E_ALL & ~E_DEPRECATED'" -r 'print ini_get("session.gc_maxlifetime");' 2> /dev/null)
票数 10
EN

Stack Overflow用户

发布于 2013-10-18 12:46:23

步骤如下:(我的操作系统是Debian7.2xfce x86)。

1:我这样安装pcntl

代码语言:javascript
复制
#mkdir php
#cd php 
#apt-get source php5 
#cd php5-5.4.4/ext/pcntl
#phpize
#./configure
#make
#echo "extension=pcntl.so" > /etc/php5/mods-available/pcntl.ini
#ln -s /etc/php5/mods-available/pcntl.ini /etc/php5/conf.d/pcntl.ini

2:当重启nginx或apache2时,php会收到一条警告。

"PHP警告:模块‘pcntl’已加载到第0行的未知位置“

3:所以我

"rm -rf /etc/php5/mods--rf/pcntl.ini和/etc/php5/conf.d/pcntl.ini“

4:编辑php.ini文件。

a.apache2,它和nginx一样位于"/etc/php5/apache2/php.ini“b.cgi中,它位于"/etc/php5/cgi/php.ini”

使

代码语言:javascript
复制
"disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited..."
comments, add  " ; "  in front of "disable_functions".

重新启动服务器,并显示警告gone.good luck。

票数 7
EN

Stack Overflow用户

发布于 2013-01-03 07:21:07

在我的带有ubuntu 12.10 (以及更早的版本)的dev机器上,pcntl已经被启用。

代码语言:javascript
复制
$ php -m | grep pcntl
pcntl

我想这就是问题所在:

PHP警告:模块'pcntl‘已加载到第0行的未知位置

所以不要再安装它了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14096130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档