我正在创建一个使用php和mysql的网站。我把我所有的mysql访问数据都保存在一个名为"config.ini"的ini文件中。这个文件需要安全,这样恶意用户就无法访问mysql访问数据。当php试图访问它时,问题就出现了,因为不是根用户的用户"www data"拒绝了请求。如果我允许通过这个命令"www数据"。
sudo chown -R root:www-data config.ini
sudo chmod -R g+s config.ini
任何用户都可以通过键入网站地址和/config.ini来查看它,因为apache通过同一用户访问它,而不是SECURE。
PHP代码
$conf = parse_ini_file('config.ini');
$conn = mysqli_connect($conf["host"], $conf["user"], $conf["password"], $conf["database"]);
欢迎提出任何建议,并提前表示感谢。
完整答案
1) 将config.ini放在webroot外部的目录下
2) 使用此命令创建一个包含"www数据"的组。
sudo chown root:www-data config.ini
3) 使用此命令授予它读取权限。
sudo chmod 640 config.ini
4) 在php中正常访问,但使用../以直接指向新位置。
如果您担心恶意访问,这当然是一件值得关注的好事,请确保您的.ini
文件不在web服务器配置为服务的任何目录中。也就是说,绝对要确保这是在你的网站的网站根之外。
其次,您通常可以将web服务器配置为拒绝提供.ini
文件。您还需要确保像目录索引这样的东西被关闭,这样人们就不会四处闲逛。