php - 在 Apache 中授予 PHP 写入权限

标签 php apache2 httpd.conf apache2.2

我对配置 Apache 比较陌生。

我有一个 PHP 脚本,它根据从 $_GET 检索到的值编写一个 JSON 文件。

<?php

    file_put_contents('State.json', "{ do: '" . $_GET['do'] . "' }");

    echo "Success";

?>

我通过创建 XHR 请求来运行该代码。

Ally.xhr('/Cream/Foam?do=someCommand');

它返回的页面显示无法打开流:第 3 行的权限被拒绝。

<Directory "~/Dropbox/Web">
    Options Indexes FollowSymLinks MultiViews

    AllowOverride None

    Order allow,deny
    Allow from all
</Directory>

这些是授予根服务器文件夹的权限。

我需要更改什么才能允许 PHP 写入文件?

(我几乎不知道上面的 block 是什么意思。)

最佳答案

您需要检查运行 apache 的用户是否具有写入目录的权限。

是这样的:

您的 Apache 服务器正在处理。该过程在某些用户(例如 www)下运行。 PHP 在 apache 下运行。因此,如果您尝试在 PHP 中写入一个目录,就好像用户 www 登录到服务器并尝试在同一目录中创建一个文件一样。因此,检查谁是该目录的所有者以及它具有哪些权限。你可以做到,例如通过 ls -la 命令。如果 www 将成为该目录的所有者,您将 100% 安全......

关于php - 在 Apache 中授予 PHP 写入权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5357781/

相关文章:

PHP代码mysql查询不起作用

php - AJAX表单问题

php - 如何将自动递增的数字写入另一个表值?这可能吗?

apache - 在 Apache Server mod_proxy 指令中为所有 ProxyPass 映射设置超时

php - Linux CentOS 7 - 通过.htaccess配置httpd.conf文件

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

apache - Apache 配置中的指令是什么?

angularjs - 别名匹配 : Match on all except if hash

apache - 共享 httpd.conf

apache - httpd.conf、php.ini 和 .htaccess 之间的区别