Почему апач не может создать файлы журнала?

При контакте с любой проблемой производительности необходимо знать вход. Настройте свой переключатель для зеркального отражения порта веб-сервера к серверу сниффера, где Вы записываете весь Трафик HTTP. Попытайтесь коррелировать трафик с проблемой и попытаться воспроизвести проблему на тестовой машине.

Следующий шаг должен видеть то, что происходит с теми процессами. Использовать strace и посмотрите, в котором системном вызове они ожидают. Использовать lsof узнать дескрипторы файлов, вовлеченные в strace. ls -l /proc//fd полезно также.

Как chronos сказал, это могло быть нападение slowloris.

1
задан 19 April 2014 в 14:32
4 ответа

Вы изменили владельца файлов, чтобы они были доступны для чтения / выполнения группой, но не были доступны для записи группой, и я считаю, что в этом заключается ваша проблема. Вы, вероятно, можете изменить 664 файлы, чтобы сделать их доступными для чтения и записи владельцем и группой (и доступными для чтения всем). Они не обязательно должны быть исполняемыми.

0
ответ дан 3 December 2019 в 21:18

Вы создаете отдельные файлы с помощью сенсорного ввода, а затем меняете владельца файла с помощью chown. Чтобы Apache мог сам создавать свои лог-файлы, необходимы права на запись в содержащий каталог . Используйте chown -R (заглавная R = рекурсивный) в указанном каталоге журналов.

1
ответ дан 3 December 2019 в 21:18

У меня есть те же самые журналы регистрации фантомов, которые всегда принадлежат rootу с 640 правами при создании, рабочий раунд заключается в написании скрипта для chmod или chown разрешения на имя лог-файла vhost. используя символ подстановки в конце имени файла, чтобы захватить формат даты, в конце файла. затем Крона и устанавливаешь его раз в час или раз в день, тогда ваши журналы будут иметь нужные вам разрешения

.
0
ответ дан 3 December 2019 в 21:18

У меня сейчас та же проблема. @Tim Александр указал мне в правильном направлении. Отключение selinux временно доказало, что проблема заключается в настройке selinux.

Так что после того, как я погуглил еще немного, я нашел предложение, которое, по сути, говорило, что нужно копировать любую конфигурацию selinux в /var/www/html в каталоге виртуального хоста.

Первое, что я сделал, это повторил проблему selinux в конфигурационных файлах, которые у меня были время от времени, о которой я писал в блог здесь: http://blog.ciuly.com/my-server/apache-on-linux-could-not-open-configuration-file-permission-denied/

Но это не было проблемой. Тем не менее, я зашел в /var/www и выпустил "ls -Z", который показал

drwxr-xr-x. root      root system_u:object_r:httpd_sys_content_t:s0 html

, так что всё, что я сейчас сделал, это

chcon -R system_u:object_r:httpd_sys_content_t:s0 /www/

и обновление браузера теперь правильно показало индекс сайта, но всё равно была ошибка "can open log file" в error_log.

Затем я хорошо прочитал (снова) через https://wiki.centos.org/HowTos/SELinux

Хорошей идеей для запуска, на данный момент, является

sealert -a /var/log/audit/audit.log

Хотя вики-проект действительно говорит о том, чтобы приветствовать аудит. Я нахожу, что хочу решить все проблемы с selinux, а не только ту, которая меня сейчас беспокоит :)

Возвращаясь к нашей проблеме, sealert показывает следующее предупреждение:

SELinux is preventing /usr/sbin/rotatelogs from search access on the directory /etc/httpd

sealater предлагает сделать следующее

#grep rotatelogs /var/log/audit/audit.log | audit2allow -M mypol
#semodule -i mypol.pp

И это действительно решило проблему с журналом.

Итак, вот, 3 проблемы с selinux, которые я получаю каждый год или около того, когда я создаю новый сайт с apache на centos 5.x/6.x, и мне все еще нужно погуглить. Каждый раз.

1
ответ дан 3 December 2019 в 21:18

Теги

Похожие вопросы