iT邦幫忙

1

php修改txt資料但是放到nas上就不行

大家好:
想請教我有一個PHP程式,他可以新增TXT資料
也可以讀取,修改
但是放到NAS上後就無法修改了.....
想問是不是有甚麼權限未開呢?
謝謝
NAS規格:Synology DS418-2
程式碼:

 <?php
    $handle = fopen('newfile.txt', "r");
    $contents = '';
    if ($handle) {
        while (!feof($handle)) {
            $contents = fgets($handle, 10);
            echo $contents;

            $filename = 'newfile.txt';
            $content = file_get_contents('newfile.txt');
            $content = str_replace($contents, '', $content);
            file_put_contents('newfile.txt', $content);
            exit;
        }
        fclose($handle);
    }
    ?>
slime iT邦大師 1 級 ‧ 2019-10-02 09:02:26 檢舉
通常在本機執行 php 跟資料的都是同一個帳號; 通常在 NAS 或租主機, 執行程式是 httpd 帳號, 登入是 user 帳號.

所以這情況我會先:
1. php 先建立一個檔案, 判斷 owner 是哪個帳號.
2. 確認要讀/寫的檔案, 是否有允許該帳號讀寫.
ccutmis iT邦高手 8 級 ‧ 2019-10-02 09:11:27 檢舉
參考看看
1.權限
https://stackoverflow.com/questions/5225828/php-write-file-and-set-permission

2.要確定看看那台機器的php.ini是不是有開 allow_url_fopen=1 ,我有遇過本機 fopen, file_get_contents正常,但傳到虛擬主機 fopen正常, file_get_contents不正常,原因是虛擬主機沒有開 allow_url_fopen 。

1 個回答

2
dragonH
iT邦大師 1 級 ‧ 2019-10-02 09:03:24
最佳解答

先參照官方教學打開 php 錯誤訊息

看是什麼問題吧

不知道你的這型號這教學適不適用這篇

就試試看吧

不過很有可能是資料夾的權限問題沒錯

參考

看更多先前的回應...收起先前的回應...
神威 iT邦新手 3 級 ‧ 2019-10-02 09:33:18 檢舉

dragonHslimeccutmis好,但是我已經使用admin權限了耶,還是不行.....
https://ithelp.ithome.com.tw/upload/images/20191002/20102983UwNIvVG04e.png

dragonH iT邦大師 1 級 ‧ 2019-10-02 09:40:06 檢舉

那就只能看能不能開啟 php logs 來看了

目前看到的資料都說是權限問題

參考

神威 iT邦新手 3 級 ‧ 2019-10-02 09:42:07 檢舉

有了,OK了https://ithelp.ithome.com.tw/upload/images/20191002/20102983ykKa7e5Tnp.png
到這裡更改就行了,謝謝大家

dragonH iT邦大師 1 級 ‧ 2019-10-02 09:45:28 檢舉

/images/emoticon/emoticon42.gif

我要發表回答

立即登入回答