2012-04-01 111 views
0

我一直這樣做了很長一段時間,我的意思是,我可以使用PHP讀取和寫入文件而沒有任何問題,但是現在我需要做一些不同的事情,我需要從apache的www文件夾中訪問文件,例如:如何使用PHP從apache文件夾中讀取文件

我通常在Linux上使用Apache時使用路徑/ var/www /,但如果需要訪問文件夾中的文件/ etc /anyfolder/anyfile.conf,我該怎麼做?

我讀過一些文章,說爲PHP用來訪問腳本的用戶授予權限,但我不知道這是否安全?

+0

當你說「訪問」做的意思是讀,寫或兩者? – 2012-04-01 19:30:34

+0

可能重複的[PHP文件權限](http://stackoverflow.com/questions/3868473/php-file-permissions) – 2012-04-01 19:31:43

+0

是的,我想讀,寫,在屏幕上打印和所有的東西... – Foreba 2012-04-01 23:07:59

回答

1

如果您想通過PHP訪問任何文件,那麼用戶或組下的PHP運行必須具有訪問該文件的權限。這就是說,如果你只需要讀取文件,那麼你可以克隆文件並訪問副本。如果有問題的文件很少發生變化,那麼您可以手動執行此操作,否則您可以通過shell腳本和cron來執行此操作,而且每隔一段時間(通常您都需要)複製文件。這樣你就不會打開實際文件的權限。如果你需要寫入該文件,那麼我想你可以做類似的方法(通過PHP訪問文件的副本,然後運行一個腳本,將其複製到/ etc文件夾中的原始文件,但如果你這樣做,你應該也可以驗證任何用戶輸入正在發送之前寫入原始文件,以確保沒有惡意推動。

您要擔心的主要事情是使您的PHP文件安全,以防止任何人運行惡意的腳本腳本(你應該對所有PHP文件進行操作,而不管它們的功能如何),這意味着要驗證任何用戶輸入並確保如果有人訪問任何PHP文件(或者在與PHP相同的用戶/組下運行的服務器上的其他任何內容)你的敏感系統文件將受到保護,並且只提供做你正在做的任何事情所需的最小權限(即不需要nee d如果你想要做的只是讀取文件,並且如果你只想允許訪問該目錄中的特定文件,則不需要提供目錄級別訪問權限即可提供寫入或可執行權限。

最後一件事就是看看爲什麼你需要首先讓PHP訪問這些文件,並看看是否有其他解決方案。如果你允許訪問/ etc文件,那麼我認爲他們是一些應用程序或其他應用程序的配置文件。考慮到像這樣更新文件會導致應用程序對所有其他用戶的行爲發生變化,這真的是你要做的嗎?

+0

是的,這正是我需要的。我正在創建一個系統來維護服務器,讓noob用戶更容易,你知道嗎?我需要訪問一些aplications的conf文件來改變他們的行爲,如果用戶想要的話。在將他們在線之前,我會確保權限和腳本是否足夠安全。 – Foreba 2012-04-01 23:33:07

+0

作爲deamons運行的應用程序很可能需要在更新配置後重新啓動 - 這是需要記住的,因爲這可能超出了您應該允許PHP用戶執行的範圍(例如:您是否確實希望有人通過apache重新啓動Apache PHP腳本?) – TheOx 2012-04-02 02:10:26

+0

其實是的......我不會這樣做到在線服務器,它是一個內部服務器,控制公司的應用程序,我沒有給任何人使用這個應用程序的權限,只有一個或兩個可靠的人將被監控購買同一個應用程序的日誌,如果出現問題或者他們嘗試做不同的事情,公司就會解僱他們並僱傭另一個人。我需要這個去度假:) ..非常感謝你,你真的很有幫助。 – Foreba 2012-04-02 02:35:23

2

首先看看apache文件的chown。

其次檢查權限是否可讀/可寫。

你需要在php.ini和apache中查看你的 open_basedir參數。

+0

謝謝...我會尋找那個...... – Foreba 2012-04-01 23:24:29

+0

完全忘了'open_basedir',我瘋了 - 謝謝你! – 2015-06-16 17:42:02

相關問題