解决fopen() - 没有777的远程服务器上的权限被拒绝

时间:2016-09-22 14:35:47

标签: php ftp fopen php-5.6

我觉得很难相信这个问题在这里没有答案,但是我已经搜索过,我找不到答案。

我在远程服务器上使用fopen(),我只有FTP访问权限 - 没有别的。

当我尝试创建或打开文件进行写访问时,我发现了以下错误:

  

警告:fopen(entries / newsletter.csv):无法打开流:权限被拒绝   第24行/var/www/sites/xxx/public_html/index.php   错误:无法打开文件。您的参赛作品未保存。

我已尝试将文件权限更改为777并打开现有文件,可以使用!但这不是推荐的解决方案,因为777非常不安全。

有什么方法可以通过FTP解决这个问题,而不需要求助于777?

1 个答案:

答案 0 :(得分:2)

您是否可以在打开时更改参数以尝试在只读模式下打开? PHP Manual for fopen() options.

fopen("csv/newsletter.csv", "r");  

这使用最少的权限,但您确实需要具有读取权限。当然,你不能写入文件。此外,777包含可执行位,因此您可能只需要666。

您也可以尝试通过FTP作为用户进行连接,并确保用户对该文件的权限是rw(6),然后是其他人,不需要该设置,因此它们只能是只读的。

可选择通过你的FTP界面,chmod()可以在打开之前读/写文件,然后chmod只读。