2013-04-28 14 views
18

0bmakale kullanarak Ubuntu 32-bit 12.10 üzerinde çalışan benim PHP 5.4.6 üzerinde pcntl yükledim.pcntl Ubuntu 'güvenlik nedenleriyle' çalışmaz '

Sorunsuz bir şekilde geçmedi çünkü derledikten sonra, make test'u çalıştırırken aşağıdaki hataları aldım.

Uyarı: pcntl_fork() /var/www/mydev/dev/mailServiceTest.php güvenlik nedenleriyle devre dışı bırakılmıştır ben diyen bir çocuk sürecini çatal çalışıyorum her zaman bir uyarı alıyorum on line 8

Web üzerinde bir çözüm aradık ama maalesef bu sorunu başka bir yerde bulamadık.

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. 
[email protected]:/php/php-5.4.6/ext/pcntl$ version 

aşağıdaki komutu yazarak

, bu ben bu uzantıyı yüklemeden önce PHP yorumlayıcı işlevini tanımadı rağmen PHP gerçekten de zaten, yüklü olduğunu görünüyor:

[email protected]:/php/php-5.4.6/ext/pcntl$ php -m | grep pcntl 
PHP Warning: Module 'pcntl' already loaded in Unknown on line 0 
pcntl 

Ben nasıl Bu özelliği düzgün çalışacak şekilde yapılandırın?

+1

Eh, 'disable_functions' config ....' dan çıkarın (php -d disable_functions = pcntl_fork -r 'pcntl_fork()' ya bakın; 'ya da php -d disable_functions = substr -r' substr (1); '' bu konuda ''. Bir web sunucusunda işe yaramanın kötü bir fikir olduğuna dikkat edin. – Wrikken

+0

Teşekkür ederim, ama ben CLI sapi üzerinde bu komut dosyası kullanıyorum, bu yüzden iyi olmalı –

cevap

37

sudo gedit

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

veya \ ve

sudo gedit /etc/php5/apache2/php.ini bulmak:

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 

Ekle Bu dışarı: Ben de bu prob vardı

;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 
+7

Hm, neden _cli_ script loading/etc/php5/_apache2_ /php.ini? – Wrikken

+1

GUI'yi kullanmanız ve root erişimine gereksiniminiz varsa * bunun yerine gksudo'yu kullanın: http://askubuntu.com/a/11766/63492 –

+0

Merhaba Aditya, belirtilen yanıt, ev dizininizdeki dosyaları düzenleme hakkında konuşuyor Bir süper kullanıcı olarak, buradaki durum bu değil, php.ini dosyası zaten web sunucunuzun kullanıcısına (apache için www-data), veya kötünün kendisi tarafından daha kötüye, ama asla sizin kullanıcılarınıza ait değildir. –

0

lem. Ubuntu, bazı örnek PHP yapılandırma dosyaları ile birlikte /usr/share/php5: php.ini-production Apache web sunucusu PHP yapılandırması (/etc/php5/apache2/php.ini) şablonudur ve pcntl_fork ve diğer işlevleri devre dışı bırakır. php.ini-production.cli, test yaparken de dahil olmak üzere komut satırından (/etc/php5/cli/php.ini) PHP'nin çalışması için bir şablondur ve herhangi bir işlevi devre dışı bırakmaz. Ama bir şekilde benim /etc/php5/cli/php.ini, bu işlevleri devre dışı bırakan Apache yapılandırmasının bir kopyasıydı. Bunun nasıl olduğundan emin değilim. LAMP yığınımı Ubuntu 12.04 ile yükledim. Ubuntu 13.10'un kurulmasını öneren, Ekim 2013'ten bu yana benim /etc/php5/cli/php.ini dosyam; Belki bu sürüm yanlış dosyayı kopyaladı. Ubuntu yükseltmeleri, /usr/share/php5'daki örnek dosyaları güncelleştirir, ancak dosyaları yalnızca /etc/ içinde bırakır.

ben varsayılan komut satırı ayarları dosyayı kopyalamak için
$ sudo cp -pi /usr/share/php5/php.ini-production.cli /etc/php5/cli/php.ini 

kullanılan düzeltmek için. Açıkçası, komut satırı PHP5 ayarlarında değişiklik yaptıysanız, bunların üzerine yazılacaktır; UNIX becerilerinizi farklılaştırmak ve birleştirmek için kullanın.