首页 > 解决方案 > phpMyAdmin 适用于所有 apache 域

问题描述

我有域名example.com

我在同一个 apache 服务器上创建example.comstaff.example.com重定向,但在两个不同的 VirtualHost 上。

现在,我在我的服务器上安装了 phpmyadmin,但我可以通过example.com/phpmyadminAND访问它staff.example.com/phpmyadmin,但我想让它只能在第二个域名上访问。

我能怎么做 ?(在 Linux、Ubuntu 上)

标签: apachephpmyadmin

解决方案


而不是使用apt提供的 phpMyAdmin 包。我建议您手动安装它,因为您将对它有更多的控制权,并且可以做任何您想做的事情。

通过运行启用扩展 mbstring 和 zipsudo apt install php-mbstring php-zip -y && sudo phpenmod mbstring zip

感谢@Elikill58 指出,下载与您的PHP 版本对应的phpMyAdmin 版本。

前往https://www.phpmyadmin.net,下载 phpMyAdmin (zip)。

替换<version>为您下载的 phpMyAdmin 版本。

使用命令提取 phpMyAdminunzip phpMyAdmin-<version>-all-languages.zip

通过执行将提取的文件夹移动到 staff.example.com 的 Web 根目录sudo mv phpMyAdmin-<version>-all-languages /path/to/web/phpMyAdmin

转到 staff.example.com 的 Web 根目录。

然后转到 phpMyAdmin 文件夹cd phpMyAdmin

然后运行sudo mkdir tmp && sudo chmod 777 tmp

运行sudo apt install pwgen -y以生成河豚哈希,然后运行pwgen -s 32 1并复制显示的随机字符集。

使用您喜欢的编辑器运行cp config.sample.inc.php config.inc.php和编辑 config.inc.php。

将行更改为:

. . .
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .

至:

. . .
$cfg['blowfish_secret'] = 'STRINGOFTHIRTYTWORANDOMCHARACTERS'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .

(将 STRINGOFTHIRTYTWORANDOMCHARACTERS 更改为您通过运行命令获得的随机字符集pwgen -s 32 1

如果 example.com 和 staff.example.com 具有相同的目录:
在 phpMyAdmin 文件夹中,创建一个 .htaccess 文件并将以下内容添加到其中:

RewriteEngine On
RewriteCond %{HTTP_HOST} !staff.example.com$
RewriteRule .* - [F]

希望这有效。


推荐阅读