Назад | Перейти на главную страницу

Как настроить корень документа Apache?

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

Сервер будет обслуживать одно приложение php / mysql. Это приложение получает файлы с FTP и веб-служб и создает файлы журналов.

Серверная ОС - CentOS 5.4.

Корневой каталог документа Apache по умолчанию: /var/www/html.

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

Каталог приложения должен принадлежать root пользователь или apache пользователь или другой пользователь?

Спасибо за вашу помощь.

Предполагая, что у вас включен SELinux, не все эти параметры будут работать из-за того, что SELinux запрещает доступ к нестандартным папкам процессом httpd.

IIRC, предпочтительный метод добавления веб-приложений в CentOS вручную (например, установка mediawiki) - установка их в /var/www/<myappname> и создайте псевдоним в файле /etc/httpd/conf/httpd.conf, который указывает на ваше приложение (я обычно использую шаблон, чтобы он был похож на существующий псевдоним для /var/www/icons папка).

Типичное владение файлом для всего ниже /var/www на CentOS есть root.

Это действительно ваше дело, я бы лично выбрал CentOS по умолчанию DocumentRoot в /var/www/html/myWebApp поскольку он поддерживает чистую, расширяемую и очевидную структуру для будущих сопровождающих и т. д.

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

Больше информации здесь.

редактировать: Для проверки SVN вы можете оставить файлы, принадлежащие пользователю SVN (SVN или root Я предполагаю - до тех пор, пока он отличается от пользователя, apache работает как), а разрешения должны быть 644 (-rw-r--r--) - Я считаю, что это то, что SVN будет использовать по умолчанию, если не chmod каталог в обработчике post-commit.

... и чтобы определить, есть ли у вас проблема с SELinux, попробуйте отключение этого и повторное тестирование. Если это сработает, собрать журналы и изменить политику HTTPD (возможно, просто включив httpd_disable_trans). Или используйте Метод офидиана :)

(это должен быть комментарий для Ophidian, но он не умещается в отведенном для комментария месте, поэтому я отправляю его в качестве ответа)

Вы можете сделать это в selinux, указав каталоги / файлы, которые вы хотите использовать, с соответствующими контекстами / типом.

Самый простой способ найти правильный контекст - изучить уже правильно помеченный каталог. Например.

[root @ somehost ~] # ls -ldZ / var / www / html drwxr-xr-x корень root system_u: object_r: httpd_sys_content_t / var / www / html

Затем установите правильный тип se linux в вашем новом каталоге содержимого. Например. если вы хотите использовать / home / myapp в качестве корня документа: chcon -t httpd_sys_content_t / home / myapp

chcon сохраняется только до следующего изменения метки файловой системы. Не забудьте использовать semanage fcontext, если вы это сделаете, чтобы новые контексты сохранялись через перемаркировку файловой системы!

semanage fcontext -at httpd_sys_content_t / home / myapp