phpMyAdmin(具有别名)如何与不同的documentRoot的虚拟主机子域相关联

为了提高我的服务器的安全性,我只为admin创build了一个子域名,比如admin.domain.tld ,通常我只通过admin.domain.tld/mysqladmin访问phpmyadmin,就像在configuration文件中一样:

 <VirtualHost *:80> ServerName admin.domain.tld Alias /mysqladmin /usr/share/phpMyAdmin/ <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 AllowOverride All [...] </VirtualHost> 

现在我已经有一个子域我想要SSL安全它,因为我需要configuration一个虚拟主机或类似的东西(我使用certbot aka让我们encryption),但是因为我必须configuration一个虚拟主机,我决定创build一个pipe理员只有在admin.domain.tld包含链接到我的pipe理页面,如phpmyadmin,joomlapipe理页面等html页面…

configuration文件:

  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 /共享/ phpMyAdmin

你正在第一个configuration中做一个循环。 您将别名发送到同一个根目录,因此在调用别名时将显示相同的根目录。 在这种情况下,你需要在/usr/share/phpMyAdmin/上有一个mysqladmin文件夹。

尝试在两个configuration文件中使用/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>