Tag Archive for 'apache'

Debian 9: webserver notes

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: tips & hints

Заметки о том, что может вылететь из головы, когда не залазишь в конфиг 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 all

    Options 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 MIME types

Если Apache выдаёт PHP-страницы в виде plain text, не смотря на то, что включен модуль PHP, то нужнно дописать в конфиг одну строчку.

Для Apache из Slackware это делается так: в /etc/httpd/mime.types добавляем строку

application/x-httpd-php                .php

либо:

application/x-httpd-php                php

работают оба варианта.

Apache virtual hosts

* Справедливо для 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