我有 LAMP 服务器
服务器版本:Apache/2.4.29 (Ubuntu)
PHP:PHP 7.2.5-0ubuntu0.18.04.1
我需要给 php SQLITE3 访问 www/html 文件夹之外的 db 的权限。
现在我的文件系统看起来是这样的。
/root
./database
user.db
/var
./www
./html
index.html
reg.php
user.db 必须位于/root/database 中,因此仅将其放在 var/www/html 中对我来说不是解决方案。
所以我需要为 Apache 或 php 授予对这个文件夹的访问权限。
我在这里找到了一些信息https://httpd.apache.org/docs/2.4/urlmapping.html ,但不知道它是如何工作的以及我需要把它放在哪里?
最佳答案
这里的问题是 Linux 权限,而不是 URL 映射,因为 PHP 在后端的服务器中运行。
如果您将 PHP 作为 Apache 模块(mod_php
或类似的东西)运行,它将与 Apache 用户和组一起运行(通常为 www-data:www-data
或 nobody:nogroup
,这取决于 LAMP 配置)。
因此,您应该授予 user.db
的权限并更改所有权。文件及其树,类似于:
chmod o+x /root
chmod o+x /root/database
chown www-data:www-data /root/database/user.db
您可以阅读有关权限的更多信息 here .
关于php - 允许访问 www/html 文件夹之外的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920345/