2012-02-13 13 views
5

के लिए पथ सेट करें, क्या यह केवल एक ही php.ini फ़ाइल होना संभव है, उदाहरण के लिए वेबूट में (या इसके बाहर भी लोगों को जीईटी के माध्यम से इसे एक्सेस करने से रोकने के लिए), और PHP को तेज़ी से और आसानी से बताएं है?php.ini

मुझे पता है कि आप .htaccess में php.ini निर्देश सेट कर सकते हैं, लेकिन क्या यह उपयोग करने के लिए एक विशिष्ट php.ini फ़ाइल को परिभाषित करना संभव है?

उत्तर

9

अपने सर्वर विन्यास को यह जोड़ें ...

<VirtualHost 1.2.3.4:80> 
PHPINIDir /path/to/new/php_ini 
</VirtualHost> 

यकीन है कि सिर्फ निर्देशिका के लिए पथ, नहीं फाइल करने के लिए पूरे पथ शामिल करने के बनाओ।

फिर अपाचे को पुनरारंभ करें।

यह जांचें phpinfo() के साथ काम किया।

+0

हम्म ... यह काम करेगा, लेकिन मेरे पास उस सर्वर कॉन्फ़िगरेशन तक पहुंच नहीं है। –

+0

@ कोलिंक यदि आपके पास उस तक पहुंच नहीं है, तो अपने होस्ट से परामर्श लें। वे पहले से ही कुछ सेट कर सकते हैं। – alex

+0

ठीक है, धन्यवाद। मे लूँगा। :) –

3

PHP दस्तावेज़ों पर .user.ini अनुभाग पर एक नज़र डालें।

PHP 5.3.0 के बाद, PHP में प्रति-निर्देशिका आधार पर .htaccess-style आईएनआई फ़ाइलों के लिए समर्थन शामिल है।

लेकिन .unser.ini समाधान के बगल में आप "अतिरिक्त .ini फाइल पार्स" निर्देशिका में एक अतिरिक्त आईएनआई फ़ाइल डाल सकते हैं। वहां आप अन्य सभी सेटिंग्स को ओवरराइट करने के लिए एक एकल आईएनआई फ़ाइल का उपयोग कर सकते हैं। शुरुआत में zzz के साथ इसे नाम दें और इसे आखिर में पार्स किया जाएगा। यह आपके होस्टर के लिए अपनी सेटिंग्स को नष्ट किए बिना तैनात करना भी आसान है।

+1

आप एक बहुत ही महत्वपूर्ण भाग उद्धृत करने के लिए चूक गए: _Since PHP 5.3.0, PHP में प्रति-निर्देशिका आधार पर कॉन्फ़िगरेशन आईएनआई फ़ाइलों के लिए समर्थन शामिल है। ** इन फ़ाइलों को केवल CGI/FastCGI SAPI ** _ – lucaferrario

0

कोलिंक, मुझे संदेह है कि आप एक साझा होस्टिंग सेवा पर हैं, इस मामले में आपका होस्ट SUPHP नामक कुछ का उपयोग कर सकता है। इस मामले में - जैसा कि आप वर्णन करते हैं - PHPINIDIR निर्देश काम नहीं करता है, इस मामले में suPHP_ConfigPath निर्देश है।

RewriteEngine On 
RewriteBase /
# if a forbidden directory or file name (starting with a . or /) then raise 404 Fatal 
RewriteRule (^|/)[_.] -   [F] 

है क्या यह किसी भी फ़ाइल नाम या निर्देशिका . या _ लगाया जाता है के लिए किसी भी अनुरोध न करे जाता है:

पहुँच के संदर्भ में, मैं अपने DOCROOT/.htaccess में एक मानक mod_rewrite की है। मैं एक DOCROOT/_private जहाँ मैं मेरे लिए यह सामान रखने के लिए है:

suPHP_ConfigPath DOCROOT/_private 

जहां आपको अपनी सेवा पर अपने स्थानीय सेटिंग से DOCROOT को बदलने के लिए की आवश्यकता होगी। DOCUMENT_ROOTphpinfo() लिस्टिंग में देखें।

+0

द्वारा संसाधित किया जाता है, असल में, मैं इस मामले में एक वीडीएस पर हूं। वैसे भी, बाहर निकलता है suPHP_ConfigPath जवाब था (मैंने मेजबान से इसके बारे में पूछा)। –

+0

? वीडीएस? एक संक्षिप्त शब्द नहीं है कि मैं पार आया हूँ। यदि आपका मतलब वीपीएस है तो फिर आपने पृथ्वी पर क्यों इसे एसपीपीएचपी के लिए कॉन्फ़िगर किया है? एसओपीएचपी का उपयोग करने का एकमात्र तार्किक कारण है कि कोहोस्टेड खातों के बीच अलगाव बनाए रखने के लिए यूआईडी आधारित अभिगम नियंत्रण को सक्षम करना। – TerryE

+0

वर्चुअल समर्पित सर्वर। ईमानदार होने के लिए, मुझे परवाह नहीं है कि यह तब तक काम करता है जब तक यह काम करता है और जो करता है वह करता हूं। –

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