php - 允许访问 www/html 文件夹之外的文件

标签 php apache ubuntu

我有 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-datanobody: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/

相关文章:

php - Ratchet ,在连接关闭时获取客户端的主题

php - 在 URL POST 请求中发送其他参数以及图像数据

linux - 在 Linux 中运行 datastax intsallation runner 时出错

ubuntu - vnc session 在ubuntu上显示灰色屏幕

php - 如何防止从同一个 MySQL 表加载重复项?

apache - .htaccess SEO 友好的 url

apache - 将两个 Web 服务器 https 和 http 请求转发到单个 hybris tomcat 服务器

linux - 为单个 IP 创建两个虚拟主机

python - 数据值超出使用 cdo daysum 的有效范围

php - 在 MYSQL 中创建表不起作用