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

Как иметь phpMyAdmin (с псевдонимом) с субдоменом виртуального хоста другого documentRoot

Чтобы повысить безопасность на моем сервере, я создал поддомен только для администратора, например admin.domain.tld и обычно я получаю доступ к phpmyadmin, зайдя только в admin.domain.tld/mysqladmin как в файле конфигурации:

<VirtualHost *:80>

    ServerName admin.domain.tld
    Alias /mysqladmin /usr/share/phpMyAdmin/

    <Directory /usr/share/phpMyAdmin/>
        AddDefaultCharset UTF-8
        AllowOverride All

    [...]

</VirtualHost>

теперь, когда у меня есть поддомен, я хочу защитить его с помощью SSL, для этого мне нужно настроить виртуальный хост или что-то в этом роде (я использую certbot aka Let's encrypt), но поскольку мне нужно настроить виртуальный хост, я решил создать админ только html-страница в admin.domain.tld содержащие ссылки на мои страницы администратора, такие как phpmyadmin, страница администратора joomla и т. д.

файл конфигурации:

    ServerName  admin.domain.tld

    DocumentRoot /var/www/admin.domain.tld
    ErrorLog /var/log/httpd/admin.domain.tld/error.log
    <Directory /var/www/admin.domain.tld>
            Options FollowSymLinks Indexes
            AllowOverride All
    </Directory>

но теперь, когда я иду в admin.domain.tld/mysqladmin я получаю сообщение об ошибке:

The requested URL /mysqladmin/ was not found on this server.

Итак, как я могу заставить его работать так:

admin.domain.tld - это /var/www/admin.domain.tld
и
admin.domain.tld / mysqladmin - это phpmyadmin

РЕДАКТИРОВАТЬ: я думаю, моя проблема в том, что псевдоним не работает, поэтому, когда я перехожу к admin.domain.tld, он показывает /var/www/admin.domain.tld/mysqladmin вместо / usr / share / phpMyAdmin

Вы делаете цикл в первом конфиге. Вы отправляете псевдоним в тот же корневой каталог, поэтому при вызове псевдонима будет отображаться тот же корневой каталог. В этом случае вам понадобится mysqladmin папка на /usr/share/phpMyAdmin/.

Попробуй использовать /var/www/admin.domain.tld в корневой каталог в обоих файлах конфигурации, поэтому псевдоним mysqladmin перенаправит в phpmyadmin.

Мне удалось решить мою проблему, поместив содержимое виртуального хоста phpmyadmin вместе с одним из admin.domain.tld. как это:

<VirtualHost *:80>
    ServerName  admin.domain.tld
    DocumentRoot /var/www/admin.domain.tld
    ErrorLog /var/log/httpd/admin.domain.tld/error.log
    <Directory /var/www/admin.domain.tld>
        Options FollowSymLinks Indexes
        AllowOverride All
    </Directory>
    Alias /mysqladmin /usr/share/phpMyAdmin
    <Directory /usr/share/phpMyAdmin/>
        AddDefaultCharset UTF-8
        AllowOverride All

     [...]

</VirtualHost>