2012-02-23 145 views
0

我試圖爲我的PHP(CodeIgniter)應用程序創建一個安裝腳本,我需要編寫從用戶到CI數據庫conf文件的數據庫信息。當然,我遇到權限問題,因爲配置目錄沒有寫權限。所以我的問題是,如果沒有讓用戶安裝我的應用程序來管理他/她自己的文件夾權限,這將如何實現。使用PHP寫入文件時沒有正確的權限

+0

您是否嘗試過chmod'ing文件之前你寫信給它?如果可能, – BenOfTheNorth 2012-02-23 12:00:08

+0

,權限系統的用法是什麼? – 2012-02-23 12:00:45

+0

@你有沒有試過看這個問題? – 2012-02-23 12:01:39

回答

1

他們必須有權訪問Web服務器的文件夾讀/寫選項 - 許多主機不會讓你通過FTP訪問,所以你甚至不能直接使用這個解決方案 - 他們可能不得不請通過控制面板系統執行此類任務。

沒有「運行此腳本,它會更改文件夾權限」代碼 - 最終用戶必須足夠精明,才能知道如何執行此操作。

+1

雖然我基本同意, wordpress通過提供ftp證書來解決這種事情 - 如果它不能直接更新/創建相關文件(更具體地說,如果這些文件不是由web服務器用戶擁有的話),它可以通過ftp來完成。這非常接近「運行此腳本,它會更改文件夾權限」 – AD7six 2012-02-23 12:05:01

+0

這可能有幫助,但它看起來像解決方案不是100%好。 http://stackoverflow.com/questions/8115159/can-people-write-a-php-file-to-my-chmod-777-folder - 順便說一句,WordPress通常是通過在網絡主機上「激活它」來安裝的並在那段時間他們創造適當的文件夾和什麼都不需要。 – scottcarmich 2012-02-23 12:07:16

+0

這個過程在WordPress中的模式是什麼,我的意思是如果他沒有權限寫入目錄?我會想象它會像生成一個文件將它放入臨時文件夾,並用temp文件替換最初的配置文件。是這樣嗎? – Nick 2012-02-23 12:29:32

0

你可以嘗試這樣的事:

- setup script checks permission on configuration files at startup 
- if the files are not writeable, ask user to manually set permission manually (using FTP) 
- after setup finishes the execution, use `chmod` command to make the files not writeable 
- after the setup is completed, ask the user to delete the setup scripts for security reasons (so the setup is not run again by someone else) 

您可以使用chmod更改文件夾/文件權限:

// Everything for owner, read and execute for others 
chmod("/somedir/somefile", 0755); 

http://php.net/manual/en/function.chmod.php

+0

這對我來說是最後一個選擇,因爲我真的想要避免讓用戶轉到ftp並更改文件夾權限。 – Nick 2012-02-23 12:31:59

+0

好的,但用戶將如何部署初始文件?提供一些關於用戶在部署應用程序時想要做什麼的更多信息 – 2012-02-23 12:37:30

+0

他們通過FTP部署應用程序,但這可以通過我的祖母完成,教他們管理文件夾權限相當困難並且增加了安全性冒險imho。另一方面,要chmod一些不是由php創建的dir,仍然需要手動授予權限。 – Nick 2012-03-02 15:16:21