簡體   English   中英

解決fopen()-沒有777的遠程服務器上的權限被拒絕

[英]Solving fopen() - permission denied on remote server without 777

我很難相信這個問題在這里沒有答案,但是我已經搜索了很多,但找不到。

我在遠程服務器上使用fopen() ,但我只有FTP訪問權限-別無其他。

當我嘗試創建或打開文件以進行寫訪問時,遇到以下錯誤:

警告:fopen(entries / newsletter.csv):無法打開流:在第24行的/var/www/sites/xxx/public_html/index.php中,權限被拒絕錯誤:無法打開文件。 您的輸入未保存。

我嘗試將文件權限更改為777並打開現有文件,並且它可以正常工作! 但這不是推薦的解決方案,因為777非常不安全。

有什么方法可以通過FTP解決此問題而無需訴諸777?

您是否可以更改打開參數以嘗試僅以只讀模式打開? PHP手冊中的fopen()選項。

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

這使用的權限最少,但是您確實需要具有讀取權限。 當然,您不能寫入文件。 另外,777包含可執行位,因此您可能只需要666。

您還可以嘗試以FTP用戶身份通過​​FTP連接,並確保用戶對該文件的權限為rw(6),然后其他用戶不需要該設置,因此它們只能是只讀的。

(可選)通過您的FTP界面,也許chmod()在打開之前要讀取/寫入的文件,然后chmod僅在之后讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM