سؤال

لقد وجدت أن:

عندما أكتب ما يلي في المحطة:

php -i | grep php.ini

أحصل على الإخراج:

ملف التكوين المحمّل هو @etc/php5/cli/php.ini

ومع ذلك ، من phpinfo(), ، أرى:

ملف ini المحمّل هو @etc/php5/apache2/php.ini

أي واحد من هؤلاء يعمل الآن؟ كيف يمكن الحصول على اثنين php.ini ملفات؟

هل كانت مفيدة؟

المحلول

يعتمد على المكان الذي تقوم فيه بتشغيل PHP من. إذا قمت بتشغيله من سطر الأوامر ، فإنه يستخدم cli/php.ini و apache2/php.ini عند الجري من خلال أباتشي.

أنت تنفذ phpinfo() من خلال المتصفح ، وبالتالي تحصل /etc/php5/apache2/php.ini كما الجواب. ادارة php -r "phpinfo();" | grep "Loaded Configuration" من المحطة يجب أن يخرج cli ini. نفس الوظيفة ، يتغير السياق.

من الواضح أن ميزة هذا النظام هي السماح بتكوينات مختلفة اعتمادًا على السياق. للحصول على مثال مبسط ، قد ترغب في الحصول عليها safe_mode في Apache ولكنه غير ضروري في وضع CLI.

لك .ini المسارات في الواقع غير عادية للغاية. عادة ، الافتراضي .ini هو فقط php.ini و CLI .Ini يسمى php-cli.ini ويقيمون في نفس المجلد.

أنا لست خبيرًا في هذا الموضوع ، لكن هذه هي الفكرة الأساسية. إذا كان لدى أي شخص أي تصحيحات ، سأكون سعيدًا بسماعها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top