error_log на виртуальный хост?

На одном Linux-сервере под управлением Apache и PHP 5 у нас есть несколько виртуальных хостов с отдельными файлами журналов. Мы не можем разделить php error_logмежду виртуальными хостами.

Переопределение этого параметра в <Location>of httpd.conf, похоже, ничего не делает.

Есть ли способ иметь отдельный php error_logsдля каждого виртуального хоста?

1.08.2008 18:37:40
11 ОТВЕТОВ
РЕШЕНИЕ

Чтобы установить журнал Apache ( не PHP ), проще всего сделать это:

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

Если нет начального "/", оно считается относительным.

Страница журнала ошибок Apache

80
31.03.2011 09:31:50
Это журнал ошибок apache, который отделен от журнала ошибок PHP (см. Другие комментарии)
thelem 18.11.2010 07:48:02
по отношению к чему? Каталог, в httpd.confкотором написано, или?
mb21 3.09.2013 16:11:12

Если кто-то приходит посмотреть, это должно выглядеть так:

<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

140
15.06.2016 07:55:18
В зависимости от вашей конфигурации вам может потребоваться вручную создать файл журнала и установить владельца / группу для того же пользователя / группы, которые использует Apache. Apache не предупредит вас, если не сможет записать в файл журнала.
Ian Dunn 24.06.2011 23:41:43
Обратите внимание, что значение error_reporting изменяется с новыми версиями PHP, так как они добавляют больше уровней ошибок. E_ALL = "30719" прямо сейчас.
ReactiveRaven 8.03.2012 16:26:58
Так как значения «error_reporting» постоянно меняются и вы не можете использовать PHP-константы, такие как «E_ALL» и «E_STRICT», за пределами php, это гарантирует, что вы всегда будете регистрировать ВСЕ ошибки: php_value error_reporting 2147483647
Buttle Butkus 10.06.2012 21:44:45
Зачем вам нужен ваш логин в публичном пространстве?
AlxVallejo 30.07.2014 22:28:04
Файл журнала не будет общедоступным. / html / является публичным пространством.
Clutch 10.09.2014 19:40:32

Я обычно просто указать это в .htaccessфайле илиvhost.conf на домене я работаю. Добавьте это к одному из этих файлов:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
12
3.12.2015 10:00:31
Кто-нибудь может прокомментировать разницу между php_admin_valueи php_value?
Nick M 4.07.2014 01:31:08
Это объясняет разницу: mattiasgeniar.be/2012/02/18/…
Jeremy 8.07.2014 16:30:07

Поведение по умолчанию - error_log () выводить в журнал ошибок Apache. Если этого не происходит, проверьте настройки php.ini для директивы error_log - оставьте его неиспользованным, чтобы использовать файл журнала Apache для текущего vhost.

8
1.08.2008 22:20:05
Я проверю. Мне просто интересно, можно ли по-прежнему разделять журнал ошибок apache и php, когда мы хотим дать разработчикам возможность отладить их код, не предоставляя им журнал ошибок apache, который может содержать другие конфиденциальные данные.
Michael Stum♦ 1.08.2008 22:31:54

Не устанавливайте error_logтуда, где ваши syslogвещи eg /var/log/apache2, потому что они будут перехвачены ошибки ErrorLog. Вместо этого создайте subdirв своем проекте папку для журналов и делайте php_value error_log "/path/to/project/logs". Это касается как .htaccess файлов, так и vhosts . Кроме того, убедитесь , что вы положили php_flag log_errorsна

6
16.12.2013 12:07:20
Интересно. Зависит ли это поведение от пути к файлу error_log?
demonkoryu 4.04.2011 08:04:41

Вы пытались добавить php_value error_log '/path/to/php_error_logк вашей конфигурации VirtualHost?

5
29.08.2008 06:13:17

Да, вы можете попробовать,

php_value error_log "/var/log/php_log" 

в .htaccessили вы можете использовать пользователи ini_set()в начале своих сценариев , если они хотят иметь регистрацию.

Другой вариант - включить сценарии по умолчанию для php.iniпапки в папке со сценарием, затем перейти в корневую папку пользователя / хоста, затем в корень сервера или что-то подобное. Это позволит хостам добавлять свои собственные php.iniзначения и свое error_logместоположение.

5
20.12.2016 05:41:44
php_value error_log "/var/log/httpd/vhost_php_error_log"

Это работает для меня, но я должен изменить разрешение файла журнала.

или Apache запишет журнал в свой error_log.

5
20.12.2016 05:42:07

Мой Apache имел что-то подобное в 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>
4
9.08.2008 02:51:15
Мы говорим о журнале PHP, а не о журнале Apache.
demonkoryu 31.03.2011 09:16:13

Вы можете попробовать:

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

Но я не уверен, будет ли работать. Я пробовал на своих сайтах безуспешно.

3
8.01.2016 18:30:16

Создать простой VirtualHost:

пример имени хоста: - thecontrolist.localhost

  1. C: \ Windows \ System32 \ Drivers \ Etc

    127.0.0.1 thecontrolist.localhost в файле hosts

  2. C: \ XAMPP \ Apache \ конф \ экстра \ 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. Не забудьте перезагрузить свой апач. для более подробной информации проверьте эту ссылку

1
1.05.2019 11:35:00