प्रति वर्चुअल होस्ट में error_log?

अपाचे और PHP 5 चलाने वाले एक लिनक्स सर्वर पर, हमारे पास अलग-अलग लॉग फ़ाइलों के साथ एकाधिक वर्चुअल होस्ट हैं। हम वर्चुअल होस्ट्स के बीच PHP error_log को अलग नहीं कर सकते हैं।

Overriding this setting in the of the httpd.conf does not seem to do anything.

क्या प्रत्येक वर्चुअल होस्ट के लिए अलग PHP error_logs रखने का कोई तरीका है?

0
जोड़ा संपादित
विचारों: 1

8 उत्तर

मैं आमतौर पर इसे डोमेन पर .htaccess फ़ाइल या vhost.conf में निर्दिष्ट करता हूं। इन फ़ाइलों में से किसी एक में जोड़ें:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
0
जोड़ा
यह अंतर बताता है: mattiasgeniar.be/2012/02/18/…
जोड़ा लेखक Jeremy, स्रोत
क्या कोई php_admin_value और php_value के बीच के अंतर पर टिप्पणी कर सकता है?
जोड़ा लेखक Nick M, स्रोत

अपाचे त्रुटि लॉग में आउटपुट करने के लिए error_log() के लिए डिफ़ॉल्ट व्यवहार है। यदि यह नहीं हो रहा है तो त्रुटि_लॉग निर्देश के लिए अपनी php.ini सेटिंग्स जांचें - वर्तमान vhost के लिए अपाचे लॉग फ़ाइल का उपयोग करने के लिए इसे अनसेट करें।

0
जोड़ा
मैं जाँच करूँगा। मुझे आश्चर्य है कि अभी भी अपाचे और PHP त्रुटि लॉग अलग होना संभव है जब हम डेवलपर्स को उनके कोड को अपाचे त्रुटि लॉग दिए बिना अपने कोड को डीबग करने का मौका देना चाहते हैं जिसमें अन्य संवेदनशील डेटा हो सकते हैं।
जोड़ा लेखक Michael Stum, स्रोत

अपाचे ( PHP नहीं) लॉग सेट करने के लिए, ऐसा करने का सबसे आसान तरीका यह करना होगा:


   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log

यदि कोई अग्रणी नहीं है "/" ​​यह सापेक्ष माना जाता है।

अपाचे त्रुटि लॉग पेज

0
जोड़ा
php का त्रुटि लॉग apache के त्रुटि लॉग में डिफ़ॉल्ट है।
जोड़ा लेखक helloandre, स्रोत
क्या सापेक्ष है? httpd.conf की निर्देशिका में लिखा गया है, या?
जोड़ा लेखक mb21, स्रोत
इसे सर्वश्रेष्ठ जवाब के रूप में कैसे चुना जा सकता है?
जोड़ा लेखक fdsfdsfdsfds, स्रोत
यह अपाचे त्रुटि लॉग है, जो PHP त्रुटि लॉग से अलग है (अन्य टिप्पणियां देखें)
जोड़ा लेखक thelem, स्रोत

अगर कोई देखता है तो इसे इस तरह दिखना चाहिए:


    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

यह केवल इसलिए है क्योंकि display_error चालू है। आप देखेंगे कि अपाचे त्रुटि लॉग PHP त्रुटि लॉग से अलग है। अच्छी सामग्री php.error.log में है।

Take a look here for the error_reporting key http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

0
जोड़ा
लॉग फ़ाइल सार्वजनिक नहीं होगी। / एचटीएमएल / सार्वजनिक स्थान है।
जोड़ा लेखक Clutch, स्रोत
आप अपने सार्वजनिक डोमेन स्थान में अपना लॉग क्यों चाहेंगे?
जोड़ा लेखक AlxVallejo, स्रोत
चूंकि "error_reporting" मान बदलते रहते हैं और चूंकि आप PHP के बाहर "E_ALL" और "E_STRICT" जैसे PHP स्थिरांक का उपयोग नहीं कर सकते हैं, इस प्रकार आप सुनिश्चित करते हैं कि आपके पास हमेशा सभी त्रुटियां लॉग हों: php_value error_reporting 2147483647
जोड़ा लेखक Buttle Butkus, स्रोत
आपकी कॉन्फ़िगरेशन के आधार पर, आपको लॉग फ़ाइल मैन्युअल रूप से बनाने की आवश्यकता हो सकती है और मालिक / समूह को उसी उपयोगकर्ता / समूह पर सेट कर सकता है जिसे अपाचे उपयोग कर रहा है। अपाचे आपको चेतावनी नहीं देगा अगर यह लॉग फ़ाइल में नहीं लिख सकता है।
जोड़ा लेखक Ian Dunn, स्रोत
ध्यान दें कि "error_reporting" मान PHP के नए संस्करणों के साथ बदलता है क्योंकि वे अधिक त्रुटि स्तर जोड़ते हैं। अभी E_ALL = "3071 9"।
जोड़ा लेखक ReactiveRaven, स्रोत

मेरे अपाचे में httpd.conf में ऐसा कुछ था। बस ErrorLog और CustomLog सेटिंग्स को बदलें


    ServerAdmin [email protected]
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common

0
जोड़ा
हम PHP लॉग के बारे में बात कर रहे हैं, अपाचे लॉग यहां नहीं।
जोड़ा लेखक demonkoryu, स्रोत

हाँ, आप कोशिश कर सकते हैं,

php_value error_log "/var/log/php_log" 

.htaccess में या यदि आप लॉगिंग करना चाहते हैं तो आप अपनी स्क्रिप्ट की शुरुआत में ini_set() का उपयोग कर सकते हैं।

एक और विकल्प स्क्रिप्ट के साथ फ़ोल्डर में php.ini पर स्क्रिप्ट को डिफ़ॉल्ट रूप से सक्षम करने के लिए होगा, फिर उपयोगकर्ता / होस्ट के रूट फ़ोल्डर पर जाएं, फिर सर्वर की रूट पर, या कुछ इसी तरह के। यह मेजबानों को अपना स्वयं का php.ini मान और अपने स्वयं के error_log स्थानों को जोड़ने की अनुमति देगा।

0
जोड़ा

क्या आपने अपनी वर्चुअलहोस्ट कॉन्फ़िगरेशन में php_value error_log '/ path / to / php_error_log जोड़ने का प्रयास किया है?

0
जोड़ा

error_log को सेट न करें जहां आपका syslog सामान जाता है, उदा। / Var / log / apache2 , क्योंकि त्रुटियों को <�कोड द्वारा अवरुद्ध कर दिया जाएगा > Errorlog । इसके बजाय, लॉग के लिए अपने प्रोजेक्ट फ़ोल्डर में subdir बनाएं और php_value error_log "/ path / to / project / logs" । यह .htaccess फ़ाइलें और vhosts दोनों के लिए जाता है। यह भी सुनिश्चित करें कि आपने php_flag log_errors चालू रखा है

0
जोड़ा
दिलचस्प। क्या यह व्यवहार error_log फ़ाइल के पथ पर निर्भर करता है?
जोड़ा लेखक demonkoryu, स्रोत