कभी-कभी मेरा डोमेन (example.test.org) मुझे कोई एपीआई कॉल करते समय त्रुटि दिखा रहा है।एक डोमेन से एपीआई कॉल से त्रुटि कोड, लेकिन अन्य अपरिभाषित इंडेक्स नहीं:
"{"error":{"code":500,"message":"Undefined index: DB_HOST","file":"\/var\/www\/app\/config\/production\/database.php","line":7}}".
लेकिन मेरी स्थानीय मशीन के सार्वजनिक आईपी के साथ यह काम कर रहा है। किसी भी कारण से यह एक डोमेन से एक त्रुटि लौटाएगा लेकिन दूसरा नहीं? एपीआई लैरावेल 4.2 पर चल रहा है।
database.php के उत्पादन
<?php
return array(
'default' => 'pgsql',
'connections' => array(
'pgsql' => array(
'host' => $_ENV['DB_HOST'],
'port' => $_ENV['DB_PORT'],
'database' => $_ENV['DB_NAME'],
'username' => $_ENV['DB_USER'],
'password' => $_ENV['DB_PASS'],
),
),
);
ये मान /var/www/.env.php जो लग रहा है से आते हैं जैसे
return array(
'DB_HOST' => 'my-app.cvrrctfasmvk.us-east-1.rds.amazonaws.com',
'DB_PORT' => '*****',
'DB_NAME' => '**************',
'DB_USER' => '**********',
'DB_PASS' => '***********',
'SMTP_HOST' => '*******************',
'SMTP_USER' => '***********************',
'SMTP_PASS' => '********************************',
'AWS_KEY' => '****************************',
'AWS_SECRET' => '*******************',
'AWS_QUEUE' => '*****************************************',
'FB_APP_ID' => '*****************',
'FB_APP_SECRET' => '*********************'
);
डीबी होस्ट फ़ाइल माध्यम से इस तरह दिखता है । साथ निश्चित रूप से पहचाने जाने योग्य मान x
<?php
return array(
'DB_HOST' => 'my-app-.xxxxxx.us-east-1.xxx.amazonaws.com',
'DB_PORT' => 'xxxx',
'DB_NAME' => 'xxxx_app_xxx_db',
'DB_USER' => 'xxxx',
'DB_PASS' => 'xxxx',
'SMTP_HOST' => 'email-xxx.xxxx.amazonaws.com',
'SMTP_USER' => 'xxxxxxx',
'SMTP_PASS' => 'xxxx',
'AWS_KEY' => 'xxx',
'AWS_SECRET' => 'xxxx',
'AWS_QUEUE' => 'https://sqs.xxxxx.amazonaws.com/xxxx',
'FB_APP_ID' => 'xxxxx',
'FB_APP_SECRET' => 'xxxx'
);
बदला जा रहा ऐसा लगता है कि यह मुसीबत /var/www/.env.php फ़ाइल को पढ़ने हो रही है। जैसा कि सरणी में पहला आइटम एक त्रुटि लौटा रहा है।
बस जांचें कि आपके संपादक ने फ़ाइल में कोई मजाकिया, छुपे हुए अक्षर नहीं डाले हैं। टेक्स्ट "'DB_HOST' चुनें और हटाएं (एक समय में एक वर्ण को न हटाएं, जब तक कि आपके पास वीआईएम आदि में कोई विकल्प न हो, लेकिन सभी का चयन करें और हटाएं) और फिर पुनः टाइप करें। – Robbie