У меня установлены Apache2 и PHP5. Мой DocumentRoot
это / var / www /. Все .php
и .html
файлы подаются в форме /
и его дочерние каталоги. Однако когда я прошу, скажем, .png
изображения, которые я получаю Forbidden
уведомление.
Я хочу отправить конкретный /static/
каталог для статического содержимого.
Как мне отредактировать файлы конфигурации Apache, чтобы иметь возможность просматривать статический контент из /static/
?
Я не уверен, что понимаю проблему, но вы можете:
если вы хотите обслуживать статические файлы не из / var / www / static:
Alias /static/ /somewhere/somewhere/dir/
если ваш статический каталог уже находится в / var / www / static и вы получаете запрещенную ошибку - убедитесь, что эти файлы доступны для чтения пользователю, под которым запускается apache:
chown www-data:www-data -R /var/www/static
должен исправить проблему читабельности. в зависимости от распределения имя пользователя может отличаться. проверьте это, запустив ps faux | grep apache
Чтобы содержимое каталога в файловой системе было "веб-обслуживаемым", у вас должен быть Directory
директива, которая инкапсулирует его, и файлы должны быть доступны пользователю, от имени которого работает ваш веб-сервер. Большинство установок по умолчанию имеют один Directory
настроен, и все содержимое попадает под него (например, / var / www /).
Это не обязательно, вы можете получать контент из-под других каталогов, если у вас есть другой Directory
раздел, определенный для него. Вы можете взять несколько таких каталогов и сделать их похожими на одно счастливое дерево с Alias
директива.
Вы также можете запретить обслуживание определенных частей дерева, которое в противном случае было бы «веб-сервисом», например, чтобы предотвратить включение файлов, содержащих строки подключения к БД, пароли, имена пользователей и т. Д.
Те же правила применяются к скриптам, только с ScriptAlias
директива.
Apache позволяет указывать настройки php.ini для каждого каталога, поэтому вы должны иметь возможность отключить php для пользовательских каталогов с чем-то вроде этого в вашем файле httpd.conf:
<Directory /home/*/public_html> php_admin_flag engine off </Directory>
Также вы можете установить их в ".htaccess"