Apache24 и вирт. хосты

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tlvct
рядовой
Сообщения: 17
Зарегистрирован: 2013-03-22 11:14:01

Apache24 и вирт. хосты

Непрочитанное сообщение tlvct » 2015-10-12 13:32:31

Что-то не могу разобраться в проблемсом - поставил "дефолтный для 10.2" апач 2.4 и надо настроить 3 виртуальных хоста. В 2.2 проблем не возникло, однако сейчас нарисовав 3 виртуальных могу видеть только первый, указанный хост. Соотсвтетсвенно чтоб увидеть другие их надо поставить опять же первым номером. Вот что имеем:

Код: Выделить всё

root@mx1:/usr # /usr/local/sbin/httpd -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server postfixadmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:34)
         port 80 namevhost postfixadmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:34)
         port 80 namevhost phpMyAdmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:48)
         port 80 namevhost roundcube (/usr/local/etc/apache24/extra/httpd-vhosts.conf:62)
ServerRoot: "/usr/local"
Main DocumentRoot: "/usr/local/www/apache24/data"
Main ErrorLog: "/var/log/httpd-error.log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www" id=80
Group: name="www" id=80
DocumentRootу указан каждому хосту свой, совершенно тупо, однообразно, ибо мне ничего сложного пока мутить не надо, т.к. на данный момент просто проверка работы:

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/usr/local/www/postfixadmin"
    ServerName postfixadmin
    ErrorLog "/var/log/padm-error_log"
    CustomLog "/var/log/padm-access_log" common
        Alias /post "/usr/local/www/postfixadmin"
        <Directory "/usr/local/www/postfixadmin">
            Options none
            AllowOverride limit
            Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/usr/local/www/phpMyAdmin"
    ServerName phpMyAdmin
    ErrorLog "/var/log/pma-error_log"
    CustomLog "/var/log/pma-access_log" common
        Alias /pma "/usr/local/www/phpMyAdmin"
        <Directory "/usr/local/www/phpMyAdmin">
            Options none
            AllowOverride Limit
            Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/data/v_hosts/roundcube"
    ServerName roundcube
    ErrorLog "/var/log/round-error_log"
    CustomLog "/var/log/round-access_log" common
        Alias /round "/data/v_hosts/roundcube"
        <Directory "/data/v_hosts/roundcube">
#           Options none
            Options -Indexes +FollowSymLinks +MultiViews
            DirectoryIndex index.php
            AllowOverride limit
            Require all granted
        </Directory>
</VirtualHost>
В общем чтоб зайти в php или постфиксадмина приходится местами менять хосты.
В чем проблема и как пофиксить?

Вот сдесь про DocumentRoot так же отписали, но не могу пока понять в чем у меня ошибка. http://httpd.apache.org/docs/2.4/vhosts сюда глянул, вроди как все похоже... чего-то не понимаю :cz2:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

Apache24 и вирт. хосты

Непрочитанное сообщение guest » 2015-10-12 14:29:17

tlvct писал(а):Что-то не могу разобраться в проблемсом - поставил "дефолтный для 10.2" апач 2.4 и надо настроить 3 виртуальных хоста. В 2.2 проблем не возникло, однако сейчас нарисовав 3 виртуальных могу видеть только первый, указанный хост. Соотсвтетсвенно чтоб увидеть другие их надо поставить опять же первым номером. Вот что имеем:

Код: Выделить всё

root@mx1:/usr # /usr/local/sbin/httpd -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server postfixadmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:34)
         port 80 namevhost postfixadmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:34)
         port 80 namevhost phpMyAdmin (/usr/local/etc/apache24/extra/httpd-vhosts.conf:48)
         port 80 namevhost roundcube (/usr/local/etc/apache24/extra/httpd-vhosts.conf:62)
ServerRoot: "/usr/local"
Main DocumentRoot: "/usr/local/www/apache24/data"
Main ErrorLog: "/var/log/httpd-error.log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www" id=80
Group: name="www" id=80
DocumentRootу указан каждому хосту свой, совершенно тупо, однообразно, ибо мне ничего сложного пока мутить не надо, т.к. на данный момент просто проверка работы:

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/usr/local/www/postfixadmin"
    ServerName postfixadmin
    ErrorLog "/var/log/padm-error_log"
    CustomLog "/var/log/padm-access_log" common
        Alias /post "/usr/local/www/postfixadmin"
        <Directory "/usr/local/www/postfixadmin">
            Options none
            AllowOverride limit
            Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/usr/local/www/phpMyAdmin"
    ServerName phpMyAdmin
    ErrorLog "/var/log/pma-error_log"
    CustomLog "/var/log/pma-access_log" common
        Alias /pma "/usr/local/www/phpMyAdmin"
        <Directory "/usr/local/www/phpMyAdmin">
            Options none
            AllowOverride Limit
            Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@asmap.ru
    DocumentRoot "/data/v_hosts/roundcube"
    ServerName roundcube
    ErrorLog "/var/log/round-error_log"
    CustomLog "/var/log/round-access_log" common
        Alias /round "/data/v_hosts/roundcube"
        <Directory "/data/v_hosts/roundcube">
#           Options none
            Options -Indexes +FollowSymLinks +MultiViews
            DirectoryIndex index.php
            AllowOverride limit
            Require all granted
        </Directory>
</VirtualHost>
В общем чтоб зайти в php или постфиксадмина приходится местами менять хосты.
В чем проблема и как пофиксить?

Вот сдесь про DocumentRoot так же отписали, но не могу пока понять в чем у меня ошибка. http://httpd.apache.org/docs/2.4/vhosts сюда глянул, вроди как все похоже... чего-то не понимаю :cz2:
Проблема в непонимании работы двух технологий по которым работает VirtualHost в Apache:

1. NameBased - технология основанная на записях в DNS и директиве ServerName
2. IPBased - технология, привязка к ip-address
3. Смесь обеих технологий на одном сервере

NameBased - основана на DNS, это когда в DNS -> несколько разных hostname имею один ip-address (через CNAME или A)
Например, зона lala.ru, в ней хосты:

Код: Выделить всё

;
server     in A 192.168.1.10
;
server1    in A 192.168.1.10
;
server2   in  A 192.168.1.10
;
server3    in A 192.168.1.10
;
server4    in A 192.168.1.10
server.lala.ru - допустим hostname нашего сервера
server1.lala.ru, server2.lala.ru... - виртуальные хосты

В глобальной конфигурации apache/httpd.conf используем, например:

Код: Выделить всё

# server.lala.ru == 192.168.1.10
ServerName server.lala.ru:80
соответственно для NameBased vhosts:

Код: Выделить всё

<VirtualHost *:80>
     ServerName server1.lala.ru
     DocumentRoot /path/server1
     остальные опции...
</VirtualHost>
<VirtualHost *:80>
     ServerName server2.lala.ru
     DocumentRoot /path/server1
     остальные опции...
</VirtualHost>
В этом случае, браузер сообщает Apache -> servername, и последний, на основании запросов к DNS и своей конфигурации
VirtualHost -> по servername -> использует соответствующую ему DocumentRoot

Изучите документацию vhosts в apache и все будет работать как надо, а без записей в DNS - можете забыть про NameBased вариант:

Код: Выделить всё

ServerName postfixadmin
ServerName phpMyAdmin
ServerName roundcube
- postfixadmin, phpMyAdmin, roundcube - Вы вероятно используете от балды, вместо: vhostname.domain (см пример выше)

ServerName: ip-address or fqdn hostname

tlvct
рядовой
Сообщения: 17
Зарегистрирован: 2013-03-22 11:14:01

Apache24 и вирт. хосты

Непрочитанное сообщение tlvct » 2015-10-12 16:44:05

ага, немного понял, спасибо, буду разбираться.
А по поводу от балды - после установки pma вот такая была запись:

Код: Выделить всё

phpMyAdmin-4.5.0.2 has been installed into:

    /usr/local/www/phpMyAdmin

Please edit config.inc.php to suit your needs.

To make phpMyAdmin available through your web site, I suggest
that you add something like the following to httpd.conf:

For Apache version 2.4.x or above:

    Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

    <Directory "/usr/local/www/phpMyAdmin/">
        Options None
        AllowOverride Limit

        Require local
        Require host .example.com
    </Directory>
А мне это не понравилось т.к. это в httpd.conf прописать надо было. А еще плюс вебка и плюс админа.
Потому и попробовал как в apache22, но не пошло. ServerName тоже не стал прописывать а в /etc/hosts указал - ip......имя Ну и вызов http://192.168.../pma/ либо /post либо /round