[英]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.