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

Статический каталог Apache2 + PHP

У меня установлены 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"