2012-12-31 19 views
10

Ubuntu PHPでPCNTLを有効にする方法に関するヘルプが必要です。Ubuntu PHPでPCNTLを有効にする - テストが失敗する

$ 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:コマンドが見つかりません'を取得しますか?何か案は?

$ sudo apt-get update 

をしてから実行しました::

UPDATEが走っ

$ sudo apt-get install php5-dev 

私が手続きを完了するために管理ニックの助けを借りて。しかし、 'make test'は失敗しますか?

$ phpize 
$ ./configure 
$ make 

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

$ make test - FAILED! 

HELP:私はタイプされた 'エコー「の拡張子を= pcntl.so> /etc/php5/conf.d/pcntl.ini' の代わりに "エコーの "拡張子= pcntl.so">の/ etc/PHP5/conf.d/pcntl.ini 'を初めて実行したときにそれが悪いのですか?

--------------------------- ------ TEstエラーメッセージを作成する--------------------------------------

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] 

任意のアイデア!?!私に カール

+1

あなたはsudoで実行していますか?/usr/bin/phpizeを試してください – Impulss

+2

プロンプトで入力したものが 'phpize'と言うのはなぜですか?しかし、bashは' phpsize'で戻ってくるのですか? –

+0

良い点@NickODellスペルミスでした。私はそれをphpizeで再試行して確かめた。インパルスはそれを試しました! -bash:/ usr/bin/phpize:そのようなファイルやディレクトリはありません。私は/ ext/pcntl /フォルダーからこのコマンドを実行する必要がありますか?ありがとう –

答えて

1

サーバーを再起動する必要があります。そして今、それは動作します! Doh .. everybodysの入力に感謝します。

+1

Apacheの再起動が十分であったはずです –

4

devマシンとubuntu 12.10(およびそれ以前のバージョンも)pcntlはすでに有効化されています。

$ php -m | grep pcntl 
pcntl 

私は問題thatsの推測:

PHPの警告:モジュール 'PCNTL' は既にだからもう一度それをインストールしていないライン0

に不明にロードされました。

+0

どのように関数はまだPHPで使用するのが難しいですか?何か案は? –

+0

私はあなたが使用したい機能を持っているかどうかわからないので、タイプミスがありますか、またはwrog拡張機能を見ていますか?または、あなたは古いPHPバージョンを持っています(よく、12.10には5が付属しています。4、これは問題ではありません) – KingCrunch

8

は、ここで私はUbuntuの12.04で見つけたものです:

  • 無効にされているpnctl機能のためのあなたの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_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority 
    
  • のphpinfo関数がすでにロードされている報告が、それは実際に/etc/php5/conf.dにpcntl.iniファイルを入れずに動作しません。

    悲しいこと

、これは/etc/cron.dで毎回PHPセッションのクリーンアップのcronがキックオフが、PCNTLは、これまでの場所でこれらの作品の両方がないと機能し、そしてません「モジュールは既にロード」エラーが発生します私は '既に読み込まれた'エラーを無効にする良い解決策を見つけていない。その厄介で醜い、私のルートメールをスパムし、私が解決策を見つけることができるとき、私はそれを投稿します。私はこれまで12.04でこの問題に遭遇しました。

UPDATE私はpnctlエラーのスパムを停止するために私は/ usr/libに/ PHP5/MAXLIFETIMEスクリプトファイルをハッキング(PHPの警告:既に行0に不明にロードされたモジュールのPCNTL ')。ここに私の編集があります - 私は特にメッセージを静かにするために 'E_DEPRECATED'行に追加しました。

8行目:

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) 
+8

これらはapache経由では機能しないため、これらはapache php.iniでは無効になっています。それらはCLIでのみ動作します。 Ubuntu /etc/php5/apache/php.iniでは、これらは無効になっているはずですが、/etc/php5/cli/php.iniにはありません。 –

+0

@EddieJaoude、あなたのコメントは回答でなければなりません – WattsInABox

+1

これらの機能は無効になっていませんが、pcntl 'sudo php5enmod pcntl' –

7

このようないくつかのステップがあります: は(私のOSはdebian7.2 XFCEのx86です)。

1:私はこの

#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のようにPCNTLをインストールします。再起動nginxのかapache2のとき、PHPは1つの警告が表示されます。

"PHPの警告:既に行0に不明にロードされたモジュールのPCNTL」":私

「RM -rfは/ etc/PHP5 /改造-利用できるので

3 /pcntl.iniと /etc/php5/conf.d/pcntl.ini:php.iniの "ファイル」

4編集します"。

a.apache2, it's in "/etc/php5/apache2/php.ini" 
b.cgi like nginx,it's in "/etc/php5/cgi/php.ini" 

"disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited..." 
comments, add " ; " in front of "disable_functions". 

、サーバーと警告gone.good運を再起動します。

+0

これは私のために働いてくれてありがとう! –

0

Ubuntu 15.04では、pcntlはPHP CLIにインストールされていますが、デフォルトでは無効になっています。 、有効/etc/php5/cli/php.ini編集し、行コメントアウトするには:あなたはこれらのapache2で有効にしたい場合は

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,pcntl_getpriority,pcntl_setpriority, 

を、そのファイルの/etc/php5/apache2/php.iniを編集し、同じ変更を行います。

可能な限り多くのセキュリティ制限を維持するために、使用する必要がある機能だけを削除することをお勧めします。

関連する問題