您好,我正在尝试解决为什么我无法将文件上传到运行在EC2上的CentOS机器上,并认为这可能是权限问题(正如我在前面的问题中闪现的那样)。如何检查我的PHP安装程序具有哪些写入文件的权限。我想要写入文件的目录与试图写入文件的PHP脚本在同一个文件夹中创建,该文件夹的权限是rwxr-xr-x。文件夹的所有者是root用户。尝试写入上传文件的PHP文件的所有者也是root。
当PHP文件尝试写入它发送的bytearray数据时,我得到以下错误消息- file_put_contents无法打开流:在...
我应该如何引用我想要保存文件的目录-绝对目录还是相对目录?我还做错了什么?
干杯
发布于 2009-09-17 14:56:55
假设您所说的PHP指的是web服务器进程,并且假设您正在运行默认的apache,并且没有更改它的默认值,我希望它是CentOS的web用户。
发布于 2009-09-17 14:54:07
如果PHP是从web服务器运行的,则取决于web服务器的配置。
may服务器可能会丢弃特定用户(Apache的User directive)的权限,或者使用suexec (或类似的东西)以拥有用户的身份执行该权限。
请注意,suexec不允许您以root用户身份运行脚本,Apache会警告您将User指令设置为root用户;这意味着从Apache运行的任何脚本都将以root用户身份运行,这非常危险。
发布于 2009-09-17 15:04:13
使用:
<?php
$user = posix_getpwuid(posix_geteuid());
var_dump($user);
?>以获取用户详细信息。
假设您拥有root访问权限,那么一旦获得了root访问权限,就可以chown所有文件,使它们与PHP进程所有者具有相同的用户身份。
例如:
chown -R username /path/to/directoryhttps://stackoverflow.com/questions/1439353
复制相似问题