2012-12-31 14 views
10

विफल रहता है मुझे कैसे मदद करें: उबंटू PHP में पीसीएनटीएल सक्षम करें।उबंटू PHP में पीसीएनटीएल सक्षम करें - परीक्षण

$ 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 चलाने की कोशिश नहीं की! और फिर मुझे त्रुटि मिलती है '-बैश: phpize: आदेश नहीं मिला' ?? कोई विचार?

अद्यतन भागा:

$ sudo apt-get update 

और फिर भाग गया:

$ sudo apt-get install php5-dev 

मैं प्रक्रिया खत्म करने में कामयाब रहे निक की मदद से। लेकिन 'परीक्षण करें' विफल रहता है ???

$ phpize 
$ ./configure 
$ make 

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

$ make test - FAILED! 

मदद: मैं आपके द्वारा लिखे गए 'गूंज "विस्तार = 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

क्या आप सुडो में चल रहे हैं? कोशिश करें/usr/bin/phpize – Impulss

+2

यह क्यों है कि आपने जो चीज टाइप की है वह 'phpize' कहती है लेकिन बैश' phpsize' के साथ वापस आती है? –

+0

अच्छा बिंदु @NickODell एक वर्तनी गलती थी। मैं इसे सुनिश्चित करने के लिए phpize के साथ पुनः प्रयास किया। Impulss कोशिश की कि! -बैश:/usr/bin/phpize: ऐसी कोई फ़ाइल या निर्देशिका नहीं। क्या मुझे यह आदेश/ext/pcntl/फ़ोल्डर से चलाया जाना चाहिए जो मैं कर रहा हूं? धन्यवाद –

उत्तर

1

मुझे सर्वर को पुनरारंभ करने की आवश्यकता है! और अब यह काम करता है! दोह .. हरबोडिस इनपुट के लिए धन्यवाद।

+1

एक अपाचे रीस्टार्ट पर्याप्त होना चाहिए –

4

पर मेरी देव मशीन Uubuntu 12.10 (और पहले संस्करण भी) pcntl है/पहले से ही सक्षम था।

$ php -m | grep pcntl 
pcntl 

मैं इस समस्या thats लगता है:

पीएचपी चेतावनी: मॉड्यूल '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 में हर बार पीएचपी सत्र सफाई क्रॉन की शुरूआत की है, लेकिन PCNTL जगह में इन टुकड़ों के दोनों के बिना कार्य नहीं होगा, और अब तक मुझे 'पहले से लोड' त्रुटि को अक्षम करने के लिए एक अच्छा समाधान नहीं मिला है। इसकी गन्दा, और बदसूरत, और मेरा रूट मेल स्पैम करता है, और जब मुझे कोई समाधान मिल सकता है, तो मैं इसे पोस्ट करूंगा। मैंने अभी तक 12.04 में इस समस्या में भाग लिया है।

अद्यतन

मैं pnctl त्रुटियों के साथ स्पैमिंग को रोकने के लिए मेरी/usr/lib/PHP5/maxlifetime स्क्रिप्ट फ़ाइल को हैक कर लिया (पीएचपी चेतावनी: मॉड्यूल 'pcntl' पहले से ही लाइन 0 पर अज्ञात में लोड)। यहां मेरे संपादन हैं - मैंने संदेशों को शांत करने के लिए विशेष रूप से '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 php.ini के लिए अक्षम हैं क्योंकि ये फ़ंक्शन अपाचे के माध्यम से काम नहीं करते हैं। वे केवल सीएलआई पर काम करते हैं। उबंटू /etc/php5/apache/php.ini पर, इन्हें अक्षम रहना चाहिए, लेकिन /etc/php5/cli/php.ini –

+0

@EddieJaoude में नहीं, आपकी टिप्पणी एक उत्तर – WattsInABox

+1

हो सकता है भले ही उन कार्यों को अक्षम नहीं किया गया है pcntl जब तक आप मॉड्यूल को सक्षम नहीं करते हैं तब तक काम नहीं करेंगे: 'sudo php5enmod pcntl' –

7

इस तरह कुछ कदम नहीं है: (मेरी ओएस debian7.2 XFCE 86) है।

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 एक चेतावनी मिलती है।

"पीएचपी चेतावनी: मॉड्यूल 'pcntl' लाइन 0 पर अज्ञात में पहले से ही भरी हुई"

3: तो मैं

"rm- आरएफ/etc/PHP5 mods /-उपलब्ध /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

उबंटू 15.04 में, पीसीएनएलएल PHP सीएलआई में स्थापित है, लेकिन डिफ़ॉल्ट रूप से अक्षम है। , सक्षम /etc/php5/cli/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, 

आप apache2 में इन सक्षम चाहते हैं, तो फ़ाइल को संपादित करें और /etc/php5/apache2/php.ini एक ही बदलाव करें।

जितना संभव हो उतना सुरक्षा प्रतिबंधों को संरक्षित करने के लिए, केवल उन कार्यों को हटाने के लिए सलाह दी जा सकती है जिन्हें आप उपयोग करने के लिए आवश्यक हैं।

संबंधित मुद्दे