我发现apache2能够使用虚拟主机中的此规则“隔离” php,使其不访问其他(未指定)目录:

php_admin_value open_basedir / path / to / your / virtualroot:/ some / other / path

现在,我还需要将特定虚拟主机的mysql访问限制为特定数据库。我会避免只使用用户名/密码来保护他们以避免暴力破解。

有什么解决办法吗?

最佳答案

不可以,您只能按用户限制它。例如,您可以限制通过mysql用户的访问,并将特定用户用于域(/ VirtualHost)。

我通常创建一个mysql用户,并授予它访问以该用户名作为前缀的所有数据库的权限:

CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'somepass';
GRANT ALL ON `someuser\_%`.* to `someuser`@`localhost`;


因此,someuser将具有对以someuser_开头的所有数据库的完全访问权限。 (例如:someuser_wordpress,someuser_drupal等)。用户只看到数据库,他们拥有权限。

您还可以限制对单个数据库的访问:

GRANT ALL ON `databasename`.* to `someuser`@`localhost`;

10-06 02:17