2012-12-31 14 views
10

Ich brauche Hilfe auf wie: Aktivieren Sie PCNTL in Ubuntu PHP.Aktivieren Sie PCNTL in Ubuntu PHP - Test schlägt fehl

$ 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 

Alles ging gut, bis ich versuchte, phpize zu laufen! Und dann bekomme ich den Fehler '-bash: phpize: Befehl nicht gefunden' ?? Irgendwelche Ideen?

UPDATE lief:

$ sudo apt-get update 

und dann lief:

$ sudo apt-get install php5-dev 

Mit Hilfe von Nick ich den Vorgang beenden verwaltet. Aber 'make test' scheitert ???

$ 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: Ich tippte 'echo „extension = pcntl.so> /etc/php5/conf.d/pcntl.ini' anstelle von 'echo "extension = pcntl.so">/etc/php5/conf.d/pcntl.ini 'das erste Mal, dass ich das ausgeführt habe. Ist das BAD?

--------------------------- ------ Machen Sie TEst Fehlermeldungen --------------------------------------

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] 

irgendwelche Ideen!?! Carl

+1

Laufen Sie in Sudo? Versuchen Sie/usr/bin/phpize – Impulss

+2

Warum ist das, was Sie an der Eingabeaufforderung eingegeben haben, sagt 'phpize', aber bash kommt mit' phpsize' zurück? –

+0

Guter Punkt @NickODell War ein Schreibfehler. Ich habe es mit phpize versucht, um sicherzugehen. Impuls Versucht das! -bash:/usr/bin/phpize: Keine solche Datei oder kein Verzeichnis. Sollte ich diesen Befehl aus dem Ordner/ext/pcntl/ausführen, was ich gerade mache? Danke –

Antwort

1

Ich brauchte den Server neu zu starten! Und jetzt funktioniert es! Doh .. Danke für jeden Input.

+1

Ein Apache Neustart sollte genug sein –

4

Auf meinem dev machine mit ubuntu 12.10 (und auch früheren Versionen) pcntl ist/war bereits aktiviert.

$ php -m | grep pcntl 
pcntl 

ich denke, das ist das Problem:

PHP Warning: Modul 'pcntl' bereits in Unknown geladen on line 0

So installieren Sie es einfach nicht wieder.

+0

Wie kommt es, dass die Funktionen in PHP dann immer noch nicht verfügbar sind? Irgendwelche Ideen? –

+0

Ich weiß nicht, welche Funktionen Sie verwenden möchten, also haben Sie vielleicht einen Tippfehler, oder Sie schauen sich die Wrog-Erweiterung an? Oder Sie haben eine veraltete PHP-Version (gut, 12.10 kommt mit 5.4, also sollte das nicht das Problem sein)? – KingCrunch

8

Hier ist, was ich in Ubuntu 12.04 gefunden habe:

  • Überprüfen Sie Ihre php.ini für die pnctl Funktionen deaktiviert werden.

    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 meldet die Funktion bereits geladen ist, aber es wird ohne setzen die pcntl.ini Datei in /etc/php5/conf.d nicht wirklich funktionieren.

Leider bewirkt dies, dass ‚Modul bereits geladen‘ Fehler startet jedes Mal, PHP-Session Cleanup cron in /etc/cron.d, aber PCNTL wird ohne diese beiden Stücke an Ort und Stelle nicht funktionieren, und so weit Ich habe keine gute Lösung gefunden, um den "bereits geladenen" Fehler zu deaktivieren. Es ist unordentlich und hässlich, und spawt meine Root-Mail, und wenn ich eine Lösung finden kann, werde ich es posten. Ich bin bisher nur in 12.04 auf dieses Problem gestoßen.

UPDATE

ich gehackt mein/usr/lib/php5/maxlifetime Skriptdatei Spamming mit pnctl Fehler (PHP Warning: in Unknown Module 'pcntl' geladen on line 0 bereits) zu stoppen. Hier sind meine Änderungen - ich habe sie speziell in der Zeile "E_DEPRECATED" hinzugefügt, um die Nachrichten zu beruhigen.

Zeile 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

Diese sind für Apache php.ini deaktiviert, da diese Funktionen nicht über Apache funktionieren. Sie arbeiten nur am CLI. Unter Ubuntu /etc/php5/apache/php.ini sollten diese deaktiviert bleiben, aber nicht in /etc/php5/cli/php.ini –

+0

@EddieJaoude, Ihr Kommentar sollte eine Antwort sein – WattsInABox

+1

Auch wenn diese Funktionen nicht deaktiviert sind pcntl wird nicht funktionieren, wenn Sie das Modul nicht aktivieren mit: 'sudo php5enmod pcntl' –

7

Es gibt einige Schritte, wie folgt aus: (mein OS debian7.2 xfce x86 ist).

1: i installieren pcntl wie diese

#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: wenn Neustart nginx oder apache2 ist, die PHP eine Warnung.

"PHP Warning: Modul 'pcntl' bereits in Unknown on line 0 geladen"

3: so i

„rm -rf/etc/php5/mods-available /pcntl.ini und /etc/php5/conf.d/pcntl.ini: php.ini "Datei“

4 die bearbeiten".

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

machen die

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

den Server neu starten und die Warnung gone.good Glück.

+0

das hat bei mir funktioniert, vielen Dank! –

0

In Ubuntu 15.04 ist die pcntl in der php CLI installiert, aber standardmäßig deaktiviert. Aktivieren, bearbeiten /etc/php5/cli/php.ini und kommentieren Sie die Zeile:

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, 

Wenn Sie diese aktivieren, damit in apache2 möchten, bearbeiten Sie die Datei /etc/php5/apache2/php.ini und mache die gleiche Veränderung.

Es kann ratsam sein, nur die Funktionen zu entfernen, die Sie verwenden müssen, um so viele Sicherheitseinschränkungen wie möglich zu erhalten.

Verwandte Themen