Debian 9.1 Stretch (stable).
If your Apache2 does not execute PHP code (even when PHP is already installed) check if a package ‘libapache2-mod-php7.0‘ is installed. Seems to be easy and obvious, but I faced this problem with Debian 9.
Debian 9.1 Stretch (stable).
If your Apache2 does not execute PHP code (even when PHP is already installed) check if a package ‘libapache2-mod-php7.0‘ is installed. Seems to be easy and obvious, but I faced this problem with Debian 9.
Заметки о том, что может вылететь из головы, когда не залазишь в конфиг Apache.
——————————————————————
Alias (http://httpd.apache.org/docs/2.0/mod/mod_alias.html#alias). Создаем алиас для директории, которая на самом деле расположена вне DocumentRoot.
Alias /alexey /home/alexey/pub_html
<Directory /home/alexey/pub_html>
Order allow,deny
Allow from all
</Directory>
——————————————————————
Options Indexes. Indexes – одна из нескольких возможных Options (http://httpd.apache.org/docs/2.0/mod/core.html#options). Смысл ее такой: когда в директории нет файла, отдаваемого сервером по умолчанию (index.html и т.п.), и когда у нас прописано Options Indexes , тогда сервер выдаст листинг директории. Если же нет ни index.html, ни параметра Options Indexes, тогда сервер будет выдавать ошибку 404 при попытке открыть директорию.
Alias /alexey /home/alexey/pub_html
<Directory /home/alexey/pub_html>
Order allow,deny
Allow from allOptions Indexes
</Directory>
——————————————————————
server-status (http://httpd.apache.org/docs/2.0/mod/mod_status.html). Отображает статус сервера.
Добавляем в конфиг:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 192.168.0.0/24 127.0.0.1
</Location>
Теперь (если мы из подсети 192.168.0.0/24) можно увидеть небольшую сводку статистики работы сервера по адресу http://наш_сервер/server-status . Также можно смотреть с localhost’a, в т.ч. консольной командой ‘apachectl status’ .
——————————————————————
Order – задаёт порядок – allow или deny. Решение принимается по последнему параметру. То есть, если указано только:
Order Allow,Deny
то доступ будет запрещён. Если же прописано:
Order Allow,Deny
Allow from all
то доступ будет рзрешен всем.
Если прописано:
Order Allow,Deny
Allow from 10.4.1.0/24
то доступ будет разрешен только из сети 10.4.1.0/24.
Если Apache выдаёт PHP-страницы в виде plain text, не смотря на то, что включен модуль PHP, то нужнно дописать в конфиг одну строчку.
Для Apache из Slackware это делается так: в /etc/httpd/mime.types добавляем строку
application/x-httpd-php .php
либо:
application/x-httpd-php php
работают оба варианта.
* Справедливо для Slackware. В других дистрибутивах конфиги могут называться/располагаться иначе.
Раскомменчиваем в конфиге Apache :
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
Добавляем в /etc/httpd/extra/httpd-vhosts.conf :
<VirtualHost *:80>
ServerAdmin submail at inbox.com
ServerName sub.mydomain.com
ServerAlias www.sub.mydomain.com
DocumentRoot “/var/www/htdocs/vhost/com.mydomain.sub”<Directory “/var/www/htdocs/vhost/com.domain.sub”>
Order allow,deny
Allow from all
</Directory></VirtualHost>
Перезапускаем Apache.
PS: обратите внимание на секцию <Directory>, а точнее на 2 строки в ней. Их нужно добавить, если Apache не пускает вас на виртуальный хост, а в error_log падают сообщения по типу ” … client denied by server configuration: /var/www/htdocs/vhost/com.domain.sub/ ” . Подробнее об этом – тут http://wiki.apache.org/httpd/ClientDeniedByServerConfiguration .
Также можно создать отдельные лог-файлы (access и error) для виртуального хоста, чтобы не валились все логи в одну кучу. Создаем /var/log/httpd/access_log_com.domain.sub и /var/log/httpd/error_log_com.domain.sub .
И добавляем между <VirtualHost> и </VirtualHost> вот эти 2 строки:
CustomLog “/var/log/httpd/access_log_com.domain.sub” common
ErrorLog “/var/log/httpd/error_log_com.domain.sub”