2015-02-08 17 views
5

我試圖尋找這個問題之前,但似乎無處在那裏有詳盡的解釋,大多隻的問題件等app/storage許可尚未設置這樣的網絡服務器能寫文件,但我的問題似乎更大,更根本,我希望有人能夠徹底解釋這應該如何設置,最好不需要設置權限777PHP-FPM + Laravel + Nginx的+ Ubuntu的許可

所以我的籌碼是的Ubuntu 14.04PHP 5.6PHP-FPM,因爲我使用nginx的1.4.6我用Laravel 4.2更爲框架,流和一個我用的Git作爲我的版本控制工具。那麼,什麼是必要的一步一步的,以允許以下:

  1. 設置初始項目,Git和Nginx的:

    所以據我所知,Nginx的被設置爲使用用戶名爲www-data默認是正確的?這是否意味着我必須指定我的用戶,例如kevin給該羣組www-data?當我初始化git時,使用composer創建項目,設置SSH公鑰/私鑰,我是否需要屬於組www-data或者我必須是sudo或者什麼?在我的生產服務器上,我嘗試使用sudo以某種方式設置所有內容,這樣可以更輕鬆地完成上述所有操作,但這是否是最佳實踐?

  2. 製作app/storage寫的web服務器:

    我覺得這是第二次和Laravel最重要的,因爲除非這部作品Laravel不會跑,我所知的是,這個文件夾必須是可寫的由網絡服務器(nginx),所以我需要將此設置爲sudo chown -R www-data:www-data app/storagesudo chmod -R 664 app/storage對不對?但不知何故,這似乎並沒有工作,所有的時間,因爲我的開發過程中,有時它會告訴視圖的緩存不能被寫入app/storage文件夾,所以最後我不得不把它設置爲777775如果我幸運的。

  3. 公共文件夾,或地方我的資產

    這裏我有一些矛盾也一樣,我已經將它設置在年底777,以確保我的所有文件可以通過nginx的進行訪問的。有時nginx會告訴我,我的資產文件夾中的一些圖像似乎被禁止,它只會返回HTTP 200,如果我設置爲777或將組更改爲www-data:www-data,是否必須更改每個圖像的權限或組我是從GIMP,Photoshop創建的,還是從Dropbox下載的,或者是我的圖形設計師設計新圖標時從我的電子郵件中下載的?

  4. 文件上傳

    所以身邊的時候,什麼地方,人們將能夠例如上傳自己的個人資料圖片,或者當我發表博客,我可以上傳圖片,這意味着在某個時刻文件上傳腳本會將文件從/tmp文件夾移動到我的public文件夾,它可能只需要寫入public的子目錄中,或者有時候需要創建基於某個id的文件夾並將文件移動到目錄中的時間我會得到一個錯誤,該目錄似乎不可寫或在腳本執行期間的一些權限錯誤。這是否意味着PHP進程必須以特定權限運行?或者這是否意味着該目錄必須具有某種權限?這個問題是否與Nginx服務相關或與PHP進程有關?

    我必須使用包,如roumen/sitemapjlapp/swaggervel的經驗,他們似乎使用相同的外觀File,但不知何故,我試圖複製其代碼的行爲,他們沒有許可任何問題,但我打的問題以上。

  5. 隊列,技工,其他基於命令行中執行腳本

    最後,基於執行的腳本命令行,這是否行爲相同的腳本,從交互執行與Web服務器,如文件上面上傳,還是我需要準備其他不一致?

謝謝,如果有人能向我解釋這一點。我想如果我弄清楚,我會創建一個博客文章或其他東西,感謝他們! :D

+0

噢,還有一件事,請不要宅第回答-.- – 2015-02-08 12:39:25

回答