php
  • unix
  • file-io
  • file-permissions
  • 2014-01-25 16 views 0 likes 
    0

    好吧現在,這是完全令我困惑,我無法弄清楚爲什麼這個腳本不起作用基本上我試圖寫一行數據在PHP中 這裏.txt文件的是一個重要的腳本的一部分:寫入一個.txt文件與PHP在UNIX環境中,其中文件需要root權限

    set_include_path('/etc/apache2/rewrite/'); 
        if($_GET['type']=="14"){ //video is documentary 
         $file = '/etc/apache2/rewrite/Documentaries.txt'; 
         $line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n"; 
         file_put_contents($file, $line, FILE_APPEND); 
    
          echo "inseted into documentaries <br>" . $line; 
        }else if ($_GET['type']=="17"){//video is a talk 
         $file = '/etc/apache2/rewrite/Talks.txt'; 
         $line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n"; 
         file_put_contents($file, $line, FILE_APPEND); 
          echo "inseted into talks"; 
    
        }else if($_GET['type']=="15"){//video is debate 
         $file = '/etc/apache2/rewrite/Debates.txt'; 
         $line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n"; 
         file_put_contents($file, $line, FILE_APPEND); 
              echo "inseted into debates"; 
        } 
    

    ,並注意該塊後,我呼應$line這是這樣的

    inside-nature-s-giants-the-leatherback-turtle 13443 
    

    並且echo在if語句中也是回聲,但是沒有任何內容在任何文件中被修改,因爲我似乎無法弄清楚我給腳本寫入和執行權限,仍然不能似乎得到這個工作.. 我不確定發生了什麼因爲我在其他腳本中使用類似的邏輯沒有問題任何幫助將大大不勝感激,因爲我已經在我的終端發誓對我的喜歡 謝謝, 布倫丹


    * 更新*我沒有正確的感謝@SyntaxLAMP文件permisions提醒我檢查錯誤日誌

    還好這裏是php文件

    -rwxrwxrwx 1 root root 9202 Jan 25 07:48 update_untagged.php 
    

    的permision和三個文件,我試圖寫

    -rw-r--r-- 1 root root  7 Jan 25 05:05 Debates.txt 
    -rw-r--r-- 1 root root 110691 Jan 25 07:16 Documentaries.txt 
    -rw-r--r-- 1 root root 45747 Jan 25 05:05 Talks.txt 
    

    它們都具有相同的permisions所以我不明白的permisions爲什麼這仍然不起作用任何幫助,這將不勝感激stil

    +1

    您是否收到任何錯誤?您是否打開了錯誤日誌記錄? – SyntaxLAMP

    +0

    沒有,我可以看到雖然這是通過HTML表格...甚至沒有想到檢查日誌... brb – brendosthoughts

    +0

    好吧,我正在獲取權限被拒絕錯誤,試圖打開文件時...是任何方式來運行一個PHP腳本加入從HTML作爲根?因爲腳本已經有了-rwxrwxrwx – brendosthoughts

    回答

    2

    您需要給用戶腳本運行作爲訪問這些文件。您可以給這樣大家對它們的訪問:

    chmod 666 Debates.txt Documentaries.txt Talks.txt 
    

    或者設置爲任何腳本運行的(可能是WWW的數據)所有者:

    chown www-data Debates.txt Documentaries.txt Talks.txt 
    

    編輯:

    只是爲了要清楚,除非有合理的理由才允許所有人訪問,否則只需將所有者更改爲腳本所運行的任何內容都會更安全。

    +0

    謝謝噸...腳本本身是登錄/密碼保護,只有我現在可以訪問這是什麼你這是什麼意思的'不給每個人訪問' ...我上面解釋的推理是這個腳本允許我分類內容和.txt文件是需要的Apache重寫模塊...我真的不能想辦法做到這一點,雖然我目前的解決方案知道是沒有硬化 – brendosthoughts

    +0

    通過不給予訪問所有人我的意思是chown方法比chmod更安全。如果此服務器僅由您使用,則這不是真正的問題,但如果它是共享服務器,並且您不希望其他人能夠編輯這些文件或腳本,那麼您不希望爲每個人提供寫入權限(這chmod 666)。 – Jammerx2

    +0

    服務器只能訪問我,即。通過一個帶有ssh的終端,但這將成爲未來某個時刻的一個實時網站。這應該是我在啓動網站之前解決的問題嗎? – brendosthoughts

    相關問題