2013-06-15 2 views
3

Так что я только недавно скачал сервер Apache со всеми его файлами (HTTPD, апрель, апрель-Util, PCRE), следуя инструкциям, диктуемых здесь: http://httpd.apache.org/docs/2.4/install.htmlСервер Apache: Редактирование httpd.conf файл (доступ запрещен)

Однако , после настройки, когда я попытался запустить свой сервер Apache, который находится в моем USR/местные/бен /, побудило меня с этим сообщением:

[[email protected] ~]$ /usr/local/bin/apachectl start 
(13)Permission denied: AH00091: httpd: could not open error log file /usr/local/logs/error_log. 
AH00015: Unable to open logs 

после некоторых исследований я обнаружил, что я необходимо отредактировать файл httpd.conf, который я сделал ранее, чтобы разрешить правильные параметры ServerName и Listen. Однако я не уверен, как отредактировать файл conf, чтобы разрешить доступ к каталогу «logs».

Примечательно, что команда будет работать, когда я буду использовать команду «sudo», но я бы предпочел не всегда использовать ее, поскольку она кажется похожей на работу.

Любая помощь была бы оценена. Благодаря!

Редактировать: Я действительно заметил, что у меня могут быть два файла httpd.conf, которые, как оказалось, немного хлопотны. Другая находится в моем корневом каталоге/etc/(etc/httpd/conf/httpd.conf). Я думаю, что мой измененный вопрос теперь ... что я должен держать? Является ли файл/etc/version встроенным, как указано в комментарии faff ниже?

Я понял, что я просто согласен с тем, что мне нужно использовать sudo при редактировании этого файла, так как мне нужно быть root. Я могу изменить его позже, так что я всегда работаю от имени root, но на данный момент достаточно sudo.

+0

Какого дистрибутивом Linux это такое? Обычно проще установить apache через диспетчер пакетов для вашей ОС. Это позволит вам обновить патчи безопасности, и он будет правильно интегрирован с остальной частью системы, чтобы убедиться, что он настроен правильно для вашей установки. – faffaffaff

+0

Я запускаю Oracle Linux 6.4. Это помогает? – Zhouster

+0

Почему вы не можете использовать apache, который поставляется в Oracle Linux? Глядя на http://public-yum.oracle.com/repo/OracleLinux/OL6/4/base/x86_64/, похоже, что есть сборки Apache HTTPD 2.2.15, доступные в httpd-2.2.15-26.0.1.el6 .x86_64.rpm и т. д. – faffaffaff

ответ

3

Это похоже на проблему с разрешениями файловой системы. Убедитесь, что каталог /usr/local/logs/ существует и доступен для записи пользователем, которым вы управляете Apache as.

Если вы не хотите, чтобы ваш logs каталог доступен для записи обычного пользователя, вы можете создать файл журнала:

sudo touch /usr/local/logs/error_log 

А затем изменить владельца файла для правильного пользователя:

sudo chown allen /usr/local/logs/error_log 

Предполагая, что вы хотите запустить Apache как пользователь allen.

Если вы хотите изменить расположение Apache логфайл, искать ErrorLog директивы в файле httpd.conf (вы должны добавить его, если он не существует):

ErrorLog path/to/logfile 
+0

Невозможно сделать это в файле httpd.conf? Или это должно быть более «ручное» средство? Поскольку мне кажется, что если я когда-либо создам новые файлы, мне может потребоваться снова изменить разрешения, тогда как исправление файла конфигурации решит это напрямую. Если я ошибаюсь ... – Zhouster

+0

Кроме того, когда я пробовал выше, он работает без ошибок, но я проверил, и на самом деле он не запускает сервер. Я знаю это, потому что, когда я пытаюсь остановить его, он говорит: «httpd (no pid file) не работает». Вызов «sudo» - это мое решение для всего этого, но мне интересно, не хватает ли чего-то ... – Zhouster

+0

@ Zhouster - когда вы запустили сервер, было ли что-нибудь записано в файле журнала? Посмотрев на это, вы должны увидеть, что именно пошло не так. Кроме того, я добавил инструкции для изменения местоположения логина по умолчанию для моего ответа. – Esenti

3

Для всех, кто является используя SELinux, если вы удалили папку или столкнулись с подобными проблемами, вам может понадобиться сделать несколько вещей.

Re-ссылка папка с ln -s /var/log/httpd /etc/httpd/logs бревен по умолчанию сохраняется в папке вара, но ссылки в/и т.д./HTTPD/журналы папка

Применения разрешений безопасности SELinux с chcon system_u:object_r:httpd_config_t:s0 /etc/httpd/logs

И конечно запускать все как admin

+2

Спасибо! Мое разрешение было правильным, но это не сработало. Я провел больше часа, прежде чем я прочитал ваш ответ, найдя решения. Это (SELinux) было именно моей проблемой. Этот ** chcon ** не работал для меня. Итак, я сделал **, установил принудительное применение 0 **. –

+0

Хотел бы подтвердить, что SELinux препятствовал запуску моего сервера httpd на Fedora 22.Это все еще актуальное решение для систем, использующих SELinux. – jflory7

0

Изменение политики безопасности SELinux до permissive исправлена ​​моя проблема.

Перед исправить мой SELinux работал усиленными режиме:

$ sestatus -v 
sestatus -v 
SELinux status:     enabled 
SELinuxfs mount:    /sys/fs/selinux 
SELinux root directory:   /etc/selinux 
Loaded policy name:    targeted 
Current mode:     enforcing 
Mode from config file:   enforcing 
Policy MLS status:    enabled 
Policy deny_unknown status:  allowed 
Max kernel policy version:  30 

я изменил политику безопасности в файле конфигурации SELinux и в системе.

#/etc/selinux/config 
SELINUX=permissive 

# In terminal set SELinux to run in permissive mode. 
$ setenforce 0 

После исправить мой SELinux работал с насильственным режимом:

$ sestatus -v 
SELinux status:     enabled 
Current mode:     permissive 
Mode from config file:   permissive 
Policy MLS status:    enabled 
Policy deny_unknown status:  allowed 
Max kernel policy version:  30 
Смежные вопросы