我很难相信这个问题在这里没有答案,但是我找了又找,还是找不到。
我在远程服务器上使用fopen()
,并且我只有FTP访问权限-没有其他权限。
当我尝试创建或打开一个文件进行写访问时,我遇到了以下错误:
警告:fopen(entries/newsletter.csv): failed to open stream: Permission denied in/var/www/sites/xxx/public_html/index.php第24行错误:无法打开文件。您的条目未保存。
我已经尝试将文件权限更改为777并打开现有文件,并且它有效!但这不是推荐的解决方案,因为777是如此不安全。
有什么方法可以通过FTP解决这个问题而不诉诸777吗?
可以不改变打开时的参数,以尝试简单地以只读模式打开吗?PHP fopen()选项手册
fopen("csv/newsletter.csv", "r");
使用最少的权限,但是你需要有读访问权限。当然,您不能写入文件。另外,777包含可执行位,所以您可能只需要666。
你也可以尝试以用户身份通过FTP连接,并确保用户对文件的权限是rw(6),然后其他用户不需要该设置,因此他们可以只读。
可选地通过FTP接口,也许chmod()要读/写的文件在打开之前,然后chmod读之后。