我試圖尋找這個問題之前,但似乎無處在那裏有詳盡的解釋,大多隻的問題件等app/storage
許可尚未設置這樣的網絡服務器能寫文件,但我的問題似乎更大,更根本,我希望有人能夠徹底解釋這應該如何設置,最好不需要設置權限777
。PHP-FPM + Laravel + Nginx的+ Ubuntu的許可
所以我的籌碼是的Ubuntu 14.04,PHP 5.6與PHP-FPM,因爲我使用nginx的1.4.6我用Laravel 4.2更爲框架,流和一個我用的Git作爲我的版本控制工具。那麼,什麼是必要的一步一步的,以允許以下:
設置初始項目,Git和Nginx的:
所以據我所知,Nginx的被設置爲使用用戶名爲
www-data
默認是正確的?這是否意味着我必須指定我的用戶,例如kevin
給該羣組www-data
?當我初始化git時,使用composer創建項目,設置SSH公鑰/私鑰,我是否需要屬於組www-data
或者我必須是sudo
或者什麼?在我的生產服務器上,我嘗試使用sudo
以某種方式設置所有內容,這樣可以更輕鬆地完成上述所有操作,但這是否是最佳實踐?製作
app/storage
寫的web服務器:我覺得這是第二次和Laravel最重要的,因爲除非這部作品Laravel不會跑,我所知的是,這個文件夾必須是可寫的由網絡服務器(nginx),所以我需要將此設置爲
sudo chown -R www-data:www-data app/storage
和sudo chmod -R 664 app/storage
對不對?但不知何故,這似乎並沒有工作,所有的時間,因爲我的開發過程中,有時它會告訴視圖的緩存不能被寫入app/storage
文件夾,所以最後我不得不把它設置爲777
或775
如果我幸運的。公共文件夾,或地方我的資產
這裏我有一些矛盾也一樣,我已經將它設置在年底
777
,以確保我的所有文件可以通過nginx的進行訪問的。有時nginx會告訴我,我的資產文件夾中的一些圖像似乎被禁止,它只會返回HTTP 200,如果我設置爲777
或將組更改爲www-data:www-data
,是否必須更改每個圖像的權限或組我是從GIMP,Photoshop創建的,還是從Dropbox下載的,或者是我的圖形設計師設計新圖標時從我的電子郵件中下載的?文件上傳
所以身邊的時候,什麼地方,人們將能夠例如上傳自己的個人資料圖片,或者當我發表博客,我可以上傳圖片,這意味着在某個時刻文件上傳腳本會將文件從
/tmp
文件夾移動到我的public
文件夾,它可能只需要寫入public
的子目錄中,或者有時候需要創建基於某個id
的文件夾並將文件移動到目錄中的時間我會得到一個錯誤,該目錄似乎不可寫或在腳本執行期間的一些權限錯誤。這是否意味着PHP進程必須以特定權限運行?或者這是否意味着該目錄必須具有某種權限?這個問題是否與Nginx服務相關或與PHP進程有關?我必須使用包,如
roumen/sitemap
或jlapp/swaggervel
的經驗,他們似乎使用相同的外觀File
,但不知何故,我試圖複製其代碼的行爲,他們沒有許可任何問題,但我打的問題以上。隊列,技工,其他基於命令行中執行腳本
最後,基於執行的腳本命令行,這是否行爲相同的腳本,從交互執行與Web服務器,如文件上面上傳,還是我需要準備其他不一致?
謝謝,如果有人能向我解釋這一點。我想如果我弄清楚,我會創建一個博客文章或其他東西,感謝他們! :D
噢,還有一件事,請不要宅第回答-.- – 2015-02-08 12:39:25