問題
使用Thinkphp 發布項目的時候,框架會默認在runtime目錄下記錄日志,但是把項目發布時,由於系統是Linux系統,所以對於文件的權限要求比較嚴格。所以項目運行時,無法向runtime下記錄日志,導致運行失敗。
解決方法STEP 1
既然,沒有寫入權限,我們直接授權就可以解決問題。授權的方案有兩種
1、直接給文件夾授權
chmod -R 777 runtime
這種方法的弊端在於此文件夾下所有的文件的權限全部被放開,很不安全
所以我想到了改變文件夾所屬用戶組的方案
2、更改文件夾按所屬用戶
因為我使用的是Apache,所以需要知道httpd對應的用戶的用戶名
ps aux|grep http
有圖可知用戶是apache,將runtime對應的用戶改成apache
chown -R apache runtime
解決方法 STEP2
step 1 中所說的方法雖然都解決了文件寫入的問題,但是帶來一個新的問題,就是日志文件可以通過瀏覽器地址訪問到,這樣是及其不安全的
為了解決這問題,我們可以通過使用Apache的 .htaccess文件來控制runtime下文件的訪問權限。
我們再runtime目錄下新建 .htaccess文件,文件內容為
Order Allow,Deny
Deny from all
即可禁止對該文件夾下的訪問權限
大功告成!