为了提高服务器的安全性,我只为管理员创建了一个子域,例如admin.domain.tld
,通常我只admin.domain.tld/mysqladmin
在配置文件中访问 phpmyadmin:
<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 的内容放在一起来解决我的问题。像这样: