2013-08-16 5 views
10

में पास करना मैं पर्यावरण-परिवर्तनीय सेट करना चाहता हूं, फिर इसे PHP में एक्सेस करना चाहता हूं, लेकिन ऐसा नहीं कर सकता कि यह कैसे करें।एक पर्यावरण-चर को एक php कमांडलाइन स्क्रिप्ट

(लिनक्स) खोल में, मैं चलाएँ:

<?php 
print $_ENV["APP_ENV"]; 
print getenv("APP_ENV"); 

ही खोल कहाँ से उस चर स्थापित किया गया था:

$ APP_ENV="development" 
$ export $APP_ENV 

तो मैं एक साधारण परीक्षण स्क्रिप्ट testenv.php चलाने

$ php testenv.php 

यह कुछ भी नहीं है प्रिंट और एक नोटिस फेंकता है:

Notice: Undefined index: APP_ENV in /xxxx/envtest.php on line 2 

नोटिस समझ में आता है, क्योंकि APP_ENV पर्यावरण-चर में नहीं पाया जाता है, getenv() कोई चेतावनी नहीं फेंकता है लेकिन बस कुछ भी नहीं देता है।

मुझे क्या याद आ रही है?

उत्तर

15

export आदेश में $ का उपयोग न करें, यह होना चाहिए:

export APP_ENV 

आप काम के साथ इस गठजोड़ कर सकते हैं: $ साथ

export APP_ENV="development" 

, आप प्रभावी रूप से कर रहे थे:

export development 
+0

मुझे लगता है कि ओपी ने केवल "$" को जोर दिया है कि उन पंक्तियों को खोल आदेश हैं। – ciruvan

+3

@ क्यूविज़क्रिस मैं 'निर्यात' से पहले '$' के बारे में बात नहीं कर रहा हूं, मैं इसके बारे में एक _after_ के बारे में बात कर रहा हूं। – Barmar

+0

@cuewizchris वास्तव में कोई बाड़मेर सही निर्यात नहीं है $ APP_ENV के पास –

7

समस्या 1 निर्यात आईएनजी पर्यावरण चर

आपका निर्यात गलत है।

$ APP_ENV="development" 
$ export APP_ENV 

ध्यान दें कि $ निर्यात विवरण से अनुपलब्ध है! :

<?php 
    echo getenv ("APP_ENV"); 
?> 

समस्या 2: अपरिभाषित सूचकांक इस पर: पी

पहले जांच कर लें getenv सुनिश्चित करें कि निर्यात काम करता है बनाने के लिए

<?php 
    echo $_ENV["APP_ENV"]; 
?> 

आप getenv से एक उचित मूल्य लेकिन superglobal नहीं मिलता है $_ENV तो आपको अपनी आईएनआई फ़ाइल जांचनी पड़ सकती है।

का हवाला देते हुए php.org:

यदि आपका $ _ENV सरणी रहस्यमय तरीके से खाली है, लेकिन आप अभी भी चर जब getenv (बुला) देखें या अपने phpinfo() में, अपने http://us.php.net/manual/en/ini.core.php#ini.variables-order आरं सेटिंग की जाँच यह सुनिश्चित करने के लिए कि इसमें स्ट्रिंग में "ई" शामिल है।

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