журнал ошибок для каждого виртуального хостинга?

StackOverflow https://stackoverflow.com/questions/176

  •  08-06-2019
  •  | 
  •  

Вопрос

На одном Linux-сервере, работающем под управлением 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>

Если нет ведущего "/", то предполагается, что оно относительное.

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

Другие советы

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

<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

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

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

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

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

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

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

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"

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

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

У моего Apache было что-то подобное в httpd.conf.Просто измените настройки журнала ошибок и пользовательского журнала

<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>

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

Создайте простой виртуальный хостинг:

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

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

    127.0.0.1 thecontrolist.localhost в файле hosts

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top