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

Устранение неполадок виртуального хоста Apache

Возникли проблемы с использованием этой конфигурации:

<VirtualHost *:80>
    ServerAdmin **************
    ServerName nagios.vdb.local
    ServerAlias nagios

    DocumentRoot /usr/local/nagios/share

    ErrorLog /var/www/vhosts/nagios/logs/error.log

    LogLevel warn

    CustomLog /var/www/vhosts/nagios/logs/access.log combined

    ServerSignature Off

    ###################
    ###  CONFIG NAGIOS  ###
    ##################

    ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

    <Directory "/usr/local/nagios/sbin">
       Options ExecCGI
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 10.1.1.0/24

       AuthBasicProvider ldap
       AuthzLDAPAuthoritative off
       AuthLDAPURL ldap://10.1.1.*****************?sAMAccountName?sub?(memberOf=**************)
       AuthLDAPBindDN cn=A***********
       AuthLDAPBindPassword ***********
       AuthType Basic
       AuthName "Nagios Access LDAP"
       Require valid-user
    </Directory>

    Alias /nagios "/usr/local/nagios/share"
    Alias /massAck "/usr/local/nagios/share/NagiosPlus/massAckTool/massAck.php"

    <Directory "/usr/local/nagios/share">
       Options None
       DirectoryIndex index.php
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 10.1.1.0/24

       AuthBasicProvider ldap
       AuthzLDAPAuthoritative off
       AuthLDAPURL ldap://10.1.1.**************?sAMAccountName?sub?(memberOf=************)
       AuthLDAPBindDN cn=A*************
       AuthLDAPBindPassword ************
       AuthType Basic
       AuthName "Nagios Access LDAP"
       Require valid-user
    </Directory>

    ###################
    ###    CONFIG NRDP    ###
    ##################

    Alias /nrdp "/usr/local/nrdp"

    <Directory "/usr/local/nrdp">
    #  SSLRequireSSL
       Options None
       AllowOverride None
       Order deny,allow
       Allow from 10.1.1.0/24

       AuthBasicProvider ldap
       AuthzLDAPAuthoritative off
       AuthLDAPURL ldap://10.1.1.************?sAMAccountName?sub?(memberOf=***********)
       AuthLDAPBindDN cn=A************
       AuthLDAPBindPassword *********
       AuthType Basic
       AuthName "Nagios Access LDAP"
       Require valid-user
    </Directory>

    #####################
    ### CONFIG Nagiosgraph ###
    ###################

    # enable nagiosgraph CSS and JavaScript
    Alias /nagiosgraph "/usr/local/nagiosgraph/share"

    ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi"
    <Directory "/usr/local/nagiosgraph/cgi">
       Options ExecCGI
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 10.1.1.0/24
       AuthBasicProvider ldap
       AuthzLDAPAuthoritative off
       AuthLDAPURL ldap://10.1.1.**********?sAMAccountName?sub?(memberOf=**********)
       AuthLDAPBindDN cn=A*******
       AuthLDAPBindPassword **********
       AuthType Basic
       AuthName "Nagios Access LDAP"
       Require valid-user
    </Directory>

    <Directory "/usr/local/nagiosgraph/share">
       Options None
       AllowOverride None
       Order deny,allow
       Deny from all
       Allow from 10.1.1.0/24
    </Directory>

    ##################
    ###    CONFIG Cacti   ###
    #################

    Alias /cacti /usr/local/cacti/

    <Directory "/usr/local/cacti/">
        Options Indexes
        AllowOverride AuthConfig Options
        Order deny,allow
        Deny from all
        Allow from 10.1.1.0/24
    </Directory>

    <Directory /usr/local/cacti/plugins/weathermap>
        <Files editor.php>
            Order Deny,Allow
            Deny from all
            Allow from 10.1.1.232
        </Files>
    </Directory>

    ##################
    ###    CONFIG GLPI   ###
    #################

    Alias /glpi /usr/local/glpi/
    <Directory "/usr/local/glpi">
        Options None
        AllowOverride AuthConfig Options
        Order deny,allow
        Deny from all
        Allow from 10.1.1.0/24
    </Directory>

    ####################
    ###    CONFIG VSHELL   ###
    ##################

    Alias /vshell2 "/usr/local/vshell2"

    <Directory "/usr/local/vshell2">
       Options None
       Options FollowSymLinks
       AllowOverride All
       Order deny,allow
       Deny from all
       Allow from 10.1.1.0/24

       AuthBasicProvider ldap
       AuthzLDAPAuthoritative off
       AuthLDAPURL ldap://10.1.1.******?sAMAccountName?sub?(memberOf=*************)
       AuthLDAPBindDN cn=Ap***********
       AuthLDAPBindPassword *******
       AuthType Basic
       AuthName "Nagios Access LDAP"
       Require valid-user
    </Directory>

</VirtualHost>

Мой IP-адрес - 10.1.1.132, поэтому обычно я должен получить доступ ко всему на этом виртуальном хосте. Я отключил и другую конфигурацию, поэтому вставил основной httpd.conf, ничего не должно быть несовместимо. Но у меня такие проблемы:

Starting httpd: [Wed Jun 01 10:35:40 2016] [warn] The ScriptAlias directive in /etc/httpd/vhosts.d/nagios.vdb.local.conf at line 104 will probably never match because it overlaps an earlier Alias.

Это такая строка:

ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi"

Я загрузил его впервые, потому что использовал его в каталоге conf.d, который я отключил, прокомментировав строку Include conf.d/*.conf в httpd.conf ...

-Доступ к nagios.vdb.local, возникла ошибка DNS -> Итак вместо этого я буду использовать IP-адрес сервера, для производственной цели

Есть ли директива для запуска php в виртуальном хосте? И как решить мой запретный доступ в виртуальном хосте (кто работает с псевдонимом, когда не использует виртуальный хост)?

Мои навыки apache2 не отличные, но, возможно, это поможет:

https://httpd.apache.org/docs/current/mod/mod_alias.html

Во-первых, все перенаправления обрабатываются до обработки псевдонимов, и поэтому к запросу, который соответствует Redirect или RedirectMatch, никогда не будут применяться псевдонимы. Во-вторых, псевдонимы и перенаправления обрабатываются в том порядке, в котором они появляются в файлах конфигурации, причем первое совпадение имеет приоритет.

По этой причине, когда две или более из этих директив применяются к одному и тому же подпутью, вы должны сначала указать наиболее конкретный путь, чтобы все директивы имели эффект. Например, следующая конфигурация будет работать должным образом:

Псевдоним "/ foo / bar" "/ baz"
Псевдоним "/ foo" "/ gaq"

Но если две вышеуказанные директивы поменять местами, псевдоним / foo всегда будет соответствовать псевдониму / foo / bar, поэтому последняя директива будет проигнорирована.

Может, тебе стоит попробовать поменять местами

Alias /nagiosgraph "/usr/local/nagiosgraph/share"
ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi"

к

ScriptAlias /nagiosgraph/cgi-bin "/usr/local/nagiosgraph/cgi"
Alias /nagiosgraph "/usr/local/nagiosgraph/share"

Надеюсь это поможет