如何授予 PHP 对目录的写权限?
P粉512363233
2023-08-27 15:25:11
<p>我正在尝试使用 PHP 创建文件,但它不起作用。我假设这是因为它没有写访问权限(以前一直是这个问题)。我尝试通过使文件夹 chmod 0777 来测试这是否是问题所在,但这最终导致该目录中的每个脚本都返回 500 错误消息,直到我将其更改回来。
如何授予 PHP 对我的文件系统的写访问权限,以便它可以创建文件?</p>
<p>编辑:它托管在使用 Apache 的 Hostgator 共享托管上。</p>
<p>编辑2:有人询问代码:
该代码是GD图像脚本。我知道它的其余部分的工作原理就像以前我在每次调用它时创建图像一样。现在我尝试在添加新文本时创建它们并将它们保存到文件夹中。我的写入行是:
imagejpeg(null,$file,85);</p>
<p>我还创建了一个测试文件来检查它是否只是一个损坏的脚本(主要是从 tizag 复制的):
http://gearboxshow.info/rkr/lesig.jpg/testfile.txt(我不知道是否/如何正确地在此处发布代码。这是 PHP 脚本的内容,减去 PHP 标签。)</p>
<p>它返回13,13,1(单独的行),所以看起来好像它认为它写了一些东西,但是testfile.txt是空白的(我上传了一个空白的),或者不存在(如果我删除它) )。</p>
<p>编辑3:服务器运行CentOS。</p>
简单的三步解决方案
第 1 步:确定 PHP 用户
创建一个包含以下内容的 PHP 文件:
将其上传到您的网络服务器。输出应类似于以下内容:
因此,PHP 用户是
www-data
。第 2 步:确定目录所有者
接下来,通过命令行检查Web目录的详细信息:
结果应类似于以下内容:
因此,该目录的所有者是
exampleuser1
。第 3 步:将目录所有者更改为 PHP 用户
然后,将Web目录的所有者更改为PHP用户:
验证 Web 目录的所有者是否已更改:
结果应类似于以下内容:
至此,
example-folder
的所有者已成功更改为 PHP 用户:www-data
。完成! PHP 现在应该能够写入该目录。
一个简单的方法是让 PHP 首先创建目录本身。
这可以为您省去权限方面的麻烦。