Different behavior of PHP’s include/require on Windows and CentOS -


ये मेरे PHP अनुप्रयोगों का कोड हैं myApp.php और mypartsA / main.php

myApp.php

  & lt;? Php echo ("##### मेरा ऐप अब शुरू हो रहा है !!! !!! & lt; / br & gt;" ); require_once ( '/ भागों / mypartsA / main.php'); ? & Gt;   

mypartsA / main.php

  & lt;? Php इको ("#### माईपरस ए आवश्यक है & lt; / br & gt;"); ? & Gt;   

और myApp.php और mypartsA / main.php निम्न संरचना में हैं।

  दस्तावेज़_आरॉट | + --- परीक्षा | | | + --- myApp.php | + --- भागों | + --- मेपार्ट्सए | + --- मुख्य.एफ़पी   

मैंने इस आवेदन को Windows + अपाचे पर एक वर्ष के लिए कोई समस्या नहीं के साथ उपयोग किया है, लेकिन हाल ही में मैं इसे CentOS + अपाचे के लिए माइग्रेट करने के लिए फिर से घातक हूं त्रुटि include_path

  PHP चेतावनी: require_once (/parts/mypartsA/main.php) [& lt; a href = 'function.require-once' & gt; Function.require-once & lt; / a & gt;]: स्ट्रीम को खोलने में विफल: लाइन / PHP / PHP / PHP / 99 / HTML / test / myApp.php पर कोई ऐसी फाइल या निर्देशिका नहीं है। घातक त्रुटि: require_once () [& lt; a href = 'Function.require' & gt; function.require & lt; / a & gt;]: आवश्यक खोलने की आवश्यकता है (/parts/mypartsA/main.php??a= (include_path = '।: / Php / include: / usr / share / pear: / Usr / share / pear / pear: / var / www / html ') में /var/www/html/test/myAPP.php पर लाइन 12   

PHP.net के अनुसार अगर एक पथ को परिभाषित किया गया है कि शामिल_पथ को नजरअंदाज कर दिया जाएगा।

मुझे लगता है कि मेरे मामले में PHP भागों निर्देशिका से C: \ या / नहीं से include_path

  need_once (/ बराबर टीएस / mypartsA / main.php);   

इसलिए myAPP.php का परिणाम गंभीर हो सकता है, चाहे Windows पर या CentOS पर हो।

लेकिन मेरा आवेदन एक के लिए काम कर रहा है विंडोज पर कोई त्रुटि के साथ साल नहीं पीएचपी भागों निर्देशिका को ठीक से पा सकते हैं।

क्या वही विंडोज पर इन कोडों का प्रयास कर सकते हैं ..

  ##### myApp अब प्रारंभ कर रहा है !!! #### मायपरेट्सए आवश्यक है   

या त्रुटि मिलती है?

अब, मुझे यह जानना चाहिए कि यही कोड का परिणाम Windows पर चलने और चलने के बीच अलग है CentOS।

मुझे PHP.ini में क्या पता चलना पड़ता है?

मुझे पता है कि मैं इस कोड को $ _SERVER ['DOCUMENT_ROOT'] के साथ पूर्ण पथ जोड़ने के लिए बदलता हूं।

  need_once ($ _ सर्वर ['DOCUMENT_ROOT'] ./ भागों / मायपरेट्स / मुख्य। Php);   

यह अच्छी तरह से काम करेगा लेकिन कोडिंग की समान शैली वाले कई अनुप्रयोग हैं और मैं उन सभी को बदलना नहीं चाहता।

ये अतिरिक्त जानकारी हैं।

include_path मान phpinfo () शो Windows पर

 । सी: \ PHP \ C: \ PHP \ pear; C: \ Apache2.2.22 \ htdocs   

शामिल_पाथ मान phpinfo () CentOS पर दिखाता है

 ।: / Php / में शामिल हैं: / usr / share / pear: / usr / share / pear / pear: / var / www / html    

  $ पथ = realpath (dirname (__ फ़ाइल__))। "/../../parts/mypartsA/main.php"; require_once ($ पथ);   

इस पथ के साथ प्रयास करें

  $ path = "../parts/mypartsA/main.php";   

दूसरा रास्ता दस्तावेज़ रूट के साथ कार्य करना चाहिए।

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -