這必須是重複的,但我無法找到答案...運行PHP的fopen作爲管理員,不_www
我正在寫一個PHP網頁安裝腳本。我想讓php寫出一個隨後不可寫的文件。難道沒有一些方法可以打開FOOP嗎?
很明顯,_www憑證不會以對目錄的寫入權限開始,也不會以此結束。我想安裝用戶,誰將有寫權限將傳遞他們的憑據到腳本,將處理其餘的。
這必須是重複的,但我無法找到答案...運行PHP的fopen作爲管理員,不_www
我正在寫一個PHP網頁安裝腳本。我想讓php寫出一個隨後不可寫的文件。難道沒有一些方法可以打開FOOP嗎?
很明顯,_www憑證不會以對目錄的寫入權限開始,也不會以此結束。我想安裝用戶,誰將有寫權限將傳遞他們的憑據到腳本,將處理其餘的。
你不能從PHP內部sudo。如果你想以root身份運行某些東西,你必須將Apache用戶www
添加到sudoers文件中,這可能不是一個好主意。如果你正在編寫一個別人可以運行的安裝腳本,它甚至不會成爲一種選擇。
既然如此,則無法在開始時無法訪問的目錄中創建文件,儘管您可以使用chmod()
在完成寫入後使文件爲只讀文件。這並不意味着Apache運行的另一個腳本以後不能使用相同的功能來重新添加寫入屬性。
最好的辦法是創建需要寫入的文件的空白版本。讓你的腳本在開始時檢查寫權限,如果它不存在,告訴用戶他們需要做什麼才能給你寫權限。一旦完成,他們可以繼續。你的腳本將寫入這些文件,然後告訴用戶他們需要做什麼來刪除寫入權限。您的腳本將檢查是否發生了這種情況,並且不會允許用戶繼續下一步,直到他們成功刪除了寫入權限。
大部分工作是提供空文件並讓安裝程序chmod寫入。
這將讓用戶維護最初提供文件的用戶。
好處在於,您可以編寫更安全的應用程序,而不必讓應用程序能夠編寫服務器。
當你說'管理'你是什麼意思?你在哪個平臺上運行? –