<?php
echo file_put_contents("/tmp/log.txt", "Hello world everyone.");
程式碼很簡單,在瀏覽器和命令列上運行都顯示成功,為:21
。但是在瀏覽器運行後,/tmp/log.txt並不存在。而在命令列下,/tmp/log.txt創建成功(root和apache用戶測試都沒問題)。非常糾結。 。 。 。 。 。 。
uname -r
: 3.10.0-514.2.2.el7.x86_64
都是透過yum install安裝的,yum install httpd php5
/tmp目錄應該是最大權限,不會有權限問題吧?你把報錯打開看看報錯資訊
首先 確認資料夾權限 允不允許寫入 然後
用戶問題?命令列下估計你是root用戶,所以能執行成功。看下是否你的web目錄還屬於其他使用者群組,而這個使用者群組對temp目錄沒有讀寫權限。
是否有權限! ! !
應該是權限問題。 PHP操作tmp目錄,也是不安全的,所以預設絕對不允許。
為什麼說不安全?因為你可以寫,就必然可以讀(對PHP而言,基本上不存在沒設定過權限然後只能寫不能讀的)……這樣的話,黑客就能讀取好多信息啦
簡單粗暴測試: chmod -R 777 /tmp
然後看看是否能寫入。
瀏覽器運行 / 指的是網站根目錄 命令列/指的是伺服器根目錄 請查看網站根目錄是否有/tmp/log.txt 檔案