Сведения о вопросе

FUTER

16:03, 1st July, 2020

Теги

linux   apache   virtualhost    

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

Просмотров: 565   Ответов: 11

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

Переопределение этого параметра в <Location> из httpd.conf , по-видимому, ничего не делает.

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



  Сведения об ответе

qwerty101

18:03, 1st July, 2020

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

<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


  Сведения об ответе

$DOLLAR

18:03, 1st July, 2020

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

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

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

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


  Сведения об ответе

PHPH

18:03, 1st July, 2020

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

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


  Сведения об ответе

Chhiki

18:03, 1st July, 2020

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


  Сведения об ответе

dumai

18:03, 1st July, 2020

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


  Сведения об ответе

repe

18:03, 1st July, 2020

php_value error_log "/var/log/httpd/vhost_php_error_log"

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

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


  Сведения об ответе

ITSME

18:03, 1st July, 2020

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


  Сведения об ответе

qwerty101

18:03, 1st July, 2020

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

php_value error_log "/var/log/php_log" 

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

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


  Сведения об ответе

SILA

18:03, 1st July, 2020

У моего 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>


  Сведения об ответе

SSESION

18:03, 1st July, 2020

Вы могли бы попробовать:

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

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


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться