سؤال

في واحد خادم لينكس تشغيل Apache و PHP 5, لدينا العديد من المضيفين الظاهري منفصلة مع ملفات السجل.ونحن لا يمكن أن يبدو أن فصل php error_log بين المضيفين الظاهري.

تجاوز هذا الإعداد في <Location> من httpd.conf لا يبدو أن تفعل أي شيء.

هل هناك طريقة منفصلة php error_logs لكل الظاهري المضيف ؟

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

المحلول

تعيين أباتشي (وليس PHP) سجل أسهل طريقة للقيام بذلك أن يكون القيام به:

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

إذا كان هناك أي الرائدة "/" فمن المفترض أن تكون نسبية.

أباتشي سجل خطأ في الصفحة

نصائح أخرى

إذا كان شخص ما يأتي تبحث ينبغي أن تبدو مثل هذا:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

هذا هو من أجل التنمية فقط منذ display_error يتم تشغيل.ستلاحظ أن سجل خطأ اباتشي منفصلة عن PHP سجل خطأ.الأشياء الجيدة في php.error.log.

نلقي نظرة هنا error_reporting الرئيسية http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

أنا عادة فقط تحديد هذا في .htaccess الملف أو على vhost.conf على المجال أنا أعمل على.هذا إضافة إلى واحد من هذه الملفات:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

السلوك الافتراضي هو error_log() إلى الإخراج إلى سجل خطأ اباتشي.إذا كان هذا لا يحدث تحقق php الخاص بك.ini إعدادات error_log التوجيه - ترك الأمر ضبطه لاستخدام أباتشي ملف السجل الحالي عشقتك.

لا تعيين error_log إلى أين syslog الاشياء المثل ، eg /var/log/apache2, لأنها أخطاء سوف تحصل على اعتراضها من قبل ErrorLog.بدلا من ذلك, إنشاء subdir في مجلد المشروع سجلات والقيام php_value error_log "/path/to/project/logs".وهذا ينطبق على كل من .htaccess الملفات vhosts.أيضا تأكد من وضع php_flag log_errors على

هل حاولت إضافة php_value error_log '/path/to/php_error_log إلى VirtualHost التكوين ؟

نعم ، يمكنك أن تجرب ،

php_value error_log "/var/log/php_log" 

في .htaccess أو هل يمكن أن يكون استخدام المستخدمين ini_set() في بداية نصوصهم إذا كانوا يريدون أن يكون تسجيل.

وهناك خيار آخر يتمثل في تمكين البرامج النصية الافتراضي php.ini في المجلد مع البرنامج النصي ، ثم انتقل إلى المستخدم/المضيف المجلد الجذر ، ثم إلى جذر الخادم أو شيئا من هذا القبيل.هذا من شأنه أن يسمح المضيفين لإضافة الخاصة بهم php.ini والقيم الخاصة بهم error_log مواقع.

php_value error_log "/var/log/httpd/vhost_php_error_log"

يعمل بالنسبة لي, ولكن لا بد لي من تغيير إذن من ملف السجل.

أو أباتشي كتابة سجل لها error_log.

بلدي أباتشي كان شيئا من هذا القبيل في httpd.conf.مجرد تغيير ErrorLog و CustomLog الإعدادات

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>

قد تتمكن من محاولة:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

ولكن أنا لست متأكدا مما إذا كان هو الذهاب إلى العمل.حاولت على المواقع بلدي مع أي نجاح.

إنشاء بسيطة VirtualHost:

مثال المضيف:- thecontrolist.localhost

  1. C:\Windows\System32\drivers\etc

    127.0.0.1 thecontrolist.localhost في ملف المضيفين

  2. C:\xampp\apache\conf\extra\httpd-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. لا تنسى إعادة تشغيل أباتشي.لمزيد من تحقق هذا الرابط

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