error_log на виртуальный хост?
На одном сервере Linux с Apache и PHP 5 у нас есть несколько виртуальных хостов с отдельными файлами журналов. Кажется, мы не можем разделить php error_log
между виртуальными хостами.
Переопределение этого параметра в элементе <Location>
управления httpd.conf
, похоже, ничего не дает.
Есть ли способ иметь отдельный php error_logs
для каждого виртуального хоста?
Ответов (11)11
Создать простой VirtualHost:
пример имени хоста: - thecontrolist.localhost
C: \ Windows \ System32 \ драйверы \ и т. Д.
127.0.0.1 thecontrolist.localhost
в файле hostsC: \ 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>
Не забудьте перезапустить Apache. для получения дополнительной информации проверьте эту ссылку
У моего Apache было что-то подобное в httpd.conf. Просто измените настройки ErrorLog и CustomLog
<VirtualHost myvhost:80>
ServerAdmin [email protected]
DocumentRoot /opt/web
ServerName myvhost
ErrorLog logs/myvhost-error_log
CustomLog logs/myvhost-access_log common
</VirtualHost>
Да, ты можешь попробовать,
php_value error_log "/var/log/php_log"
in .htaccess
или вы можете попросить пользователей использовать их ini_set()
в начале своих сценариев, если они хотят вести журнал.
Другой вариант - включить скрипты по умолчанию php.ini
в папку со скриптом, затем перейти в корневую папку пользователя / хоста, затем в корень сервера или что-то подобное. Это позволит хостам добавлять свои собственные 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
на
Если кто-то придет посмотреть, это должно выглядеть так:
<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
он включен. Вы заметите, что журнал ошибок Apache отделен от журнала ошибок PHP. Хорошие вещи есть php.error.log
.
Посмотрите здесь error_reporting
ключ http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting