2013-05-30 6 views
13

मैं pcntl_fork() का उपयोग कर एक कमांड लाइन चलाने XAMPP php प्रक्रिया को फोर्क करने का प्रयास कर रहा हूं। जब मैं नीचे कमांड चलाएँ:pcntl_fork() लौट रहा है, घातक त्रुटि: अपरिभाषित फ़ंक्शन पर कॉल करें pcntl_fork()

$pid = pcntl_fork(); 
if($pid == -1){ 
    file_put_contents('testlog.log',"\r\nFork Test",FILE_APPEND); 
    return 1; //error 
} 
else if($pid){ 
    return 0; //success 
} 
else{ 
    file_put_contents($log, 'Running...', FILE_APPEND); 
} 

मैं:

Fatal error: Call to undefined function pcntl_fork() 

किसी को भी बता सकते हैं कि यह कैसे तय करने के लिए? यदि यह मौजूद है और उसके बाद सक्षम pcntl समारोह की संभावना विकलांग है, जिसमें नए पीएचपी 5.x स्थापित करता है डिफ़ॉल्ट प्रतीत होता हैं

php -i | grep pcntl

:

+0

अपने OS क्या है? सलाह दीजिये कि विंडोज के पास अंतर्निहित '* कांटा()' सिस्कोल नहीं है। –

+0

मैकिंतोश - शेर –

+1

क्या आपने सफलतापूर्वक 'php5-pcntl' स्थापित किया है? –

उत्तर

7

अगर यह स्थापित है, चलाने के देखने के लिए। , जांच करने के लिए चलाएँ:

php -i | grep disable_functions

आप pcntl_ * कार्यों की सूची देखने के हैं, तो आप अपने php.ini फ़ाइल (XAMPP के अंदर) को संपादित करने और लाइन बाहर टिप्पणी करने की आवश्यकता होगी disable_functions=

मैं आपको ओएस एक्स के लिए PHP के this distribution का उपयोग करने की सलाह दूंगा, जिसमें वर्तमान संस्करण हैं और मैं पुष्टि कर सकता हूं कि pcntl एक्सटेंशन है।

+0

"अक्षम_फंक्शन =" पर टिप्पणी करना मेरे लिए कोई नहीं था। # ubuntu1404 # php7.1 – Jacksonkr

23

PHP को अपाचे मॉड्यूल (जैसे एक्सएएमपीपी) के रूप में उपयोग किए जाने पर फ़ंक्शन 'pcntl_fork' का उपयोग करना संभव नहीं है। आप केवल CGI मोड में या कमांड लाइन से pcntl_fork का उपयोग कर सकते हैं।

इस समारोह का उपयोग में परिणाम होगा: 'गंभीर त्रुटि: अपरिभाषित समारोह के लिए कॉल: pcntl_fork()'

स्रोत: http://php.net/manual/en/function.pcntl-fork.php

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