gpt4 book ai didi

php - 使用 SQLite 为 apache 用户提供适当的写入权限

转载 作者:行者123 更新时间:2023-12-02 04:19:08 28 4
gpt4 key购买 nike

这个问题在 SO 上有很多不同的变体,但我发现没有一个能真正解释应该授予哪些特定权限以允许 apache 安全地/以最小的风险写入 SQLite 数据库。我问这个问题是因为有大量关于允许 apache 用户写入访问的一般概念的信息,但没有关于如何以所需的最小权限向 apache 用户授予该访问权限的具体信息。

鉴于我的 Web 应用程序的结构,其中 sqlite 数据库位于 Web 根目录之外:

/var/
├── databases/
│ └── myapp/
│ └── db.sqlite3 (PERMISSIONS)

├── www/html/ (web root)
│ ├── index.php
│ └── includes/
│ ├── include1.php
│ └── ...

当我调用尝试对数据库执行写入操作的 PHP 脚本时,我在 apache2 的 error.log 中收到以下错误:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /var/www/html/includes/include1.php:xx\nStack trace:\n#0 /var/www/html/includes/include1.php(xx): PDOStatement->execute()\n#1 {main}\n  thrown in /var/www/html/includes/include1.php on line xx, referer: ...

我从various SO questions知道和来自 the PDO manual该问题的解决方案是向 www-data 用户授予数据库目录的写访问权限,但我对权限以及如何安全授予权限相对较新。有人可以指定应授予 www-data 用户什么权限级别,以及如何完成此操作吗?

最佳答案

这实际上取决于 apache 服务器配置(也许不允许您退出虚拟主机目录),但这可以解决问题

chown -R www-data:www-data /var/databases/myapp/
chmod -R u+w /var/databases/myapp/

关于php - 使用 SQLite 为 apache 用户提供适当的写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260451/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com