apache - phpMyAdmin 适用于所有 apache 域
问题描述
我有域名example.com
。
我在同一个 apache 服务器上创建example.com
和staff.example.com
重定向,但在两个不同的 VirtualHost 上。
现在,我在我的服务器上安装了 phpmyadmin,但我可以通过example.com/phpmyadmin
AND访问它staff.example.com/phpmyadmin
,但我想让它只能在第二个域名上访问。
我能怎么做 ?(在 Linux、Ubuntu 上)
解决方案
而不是使用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]
希望这有效。
推荐阅读
- python - 编辑json行/nd json中的一行
- jquery - 如何在 jqGrid 中进行分页?
- ios - 使用未解析的标识符“UIScreen”;你的意思是“NSScreen”吗?DynamicTypes 在 iOS 上运行良好,但在 macOS 上却不行
- r - YAML 标头中的乳胶外壳转义选项不使用
- c - 使用 getline 时出现分段错误(核心转储)
- bash - 我在这个 bash 脚本中做错了什么?
- android - 使用协程的 Firebase 实时快照监听器
- c# - 如何使用 polly 启用超时策略
- python - python函数在tkinter中迭代
- java - 如何根据文件中的数据类型从 CSV 文件中读取 2 个 ArrayList?