首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何授予PHP对目录的写访问权限?

如何授予PHP对目录的写访问权限?
EN

Stack Overflow用户
提问于 2010-05-25 06:10:41
回答 10查看 239.6K关注 0票数 76

我正在尝试使用PHP创建一个文件,但它不起作用。我假设这是因为它没有写访问权限(这一直是个问题)。我试图通过将文件夹设置为chmod 0777来测试这是否是问题所在,但这最终导致该目录中的每个脚本都返回500错误消息,直到我将其改回。如何授予PHP对我的文件系统的写访问权限,以便它可以创建一个文件?

编辑:它使用Apache托管在Hostgator共享主机上。

编辑2:有人要代码:代码是一个GD图像脚本。我知道它的其余部分像以前一样工作,每次调用它时我都会创建图像。现在,我正在尝试在添加新文本时创建它们,并将它们保存到文件夹中。我的写入线是: imagejpeg(null,$file,85);

我还创建了一个测试文件来检查它是否只是一个损坏的脚本(主要是从tizag复制的):http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (我不知道是否/如何正确地在这里发布代码。以下是PHP脚本的内容,去掉了PHP标记。)

它返回13,13,1 (单独的行),所以看起来好像它写了什么,但是testfile.txt是空的(我上传了一个空的),或者不存在(如果我删除了它)。

编辑3:服务器运行CentOS。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-05-25 06:20:51

一种简单的方法是首先让PHP自己创建目录。

代码语言:javascript
复制
<?php
 $dir = 'myDir';

 // create new directory with 744 permissions if it does not exist yet
 // owner will be the user/group the PHP script is run under
 if ( !file_exists($dir) ) {
     mkdir ($dir, 0744);
 }

 file_put_contents ($dir.'/test.txt', 'Hello File');

这就省去了权限的麻烦。

票数 63
EN

Stack Overflow用户

发布于 2010-05-25 10:01:37

将目录的所有者设置为运行apache的用户。通常在linux上没有人

代码语言:javascript
复制
chown nobody:nobody <dirname>

这样,您的文件夹将不是完全可写的,但对于apache仍然是可写的:)

票数 36
EN

Stack Overflow用户

发布于 2016-01-27 16:45:34

首先,使用以下命令找出哪个用户拥有httpd进程

代码语言:javascript
复制
ps aux | grep httpd

您将得到如下所示的几行响应:

代码语言:javascript
复制
phpuser   17121  0.0  0.2 414060  7928 ?        SN   03:49   0:00 /usr/sbin/httpd

这里的第一列显示了用户名。现在,您知道了正在尝试写入文件的用户,在本例中是phpuser。您现在可以继续为您的php脚本尝试写入内容的目录设置权限:

代码语言:javascript
复制
sudo chown phpuser:phpuser PhpCanWriteHere
sudo chmod 755 PhpCanWriteHere
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2900690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档