error_log في الظاهرية المضيف ؟
-
08-06-2019 - |
سؤال
في واحد خادم لينكس تشغيل 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
C:\Windows\System32\drivers\etc
127.0.0.1 thecontrolist.localhost
في ملف المضيفين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>
لا تنسى إعادة تشغيل أباتشي.لمزيد من تحقق هذا الرابط