安裝testlink時,出現”testlink/gui/templates_c、testlink/logs、testlink/upload_area不可寫‘解決辦法
在Testlink安裝到最後,‘...目錄是否可寫(由於用戶運行webserver進程)’過程出錯,如下圖所示
1.首先想到/var/www/html/testlink/gui/templates_c、/var/www/html/testlink/logs、/var/www/html/testlink/upload_area這些目錄沒有寫權限
所以先去給賦了些權限
chmod -R 777 /var/www/html/testlink/gui/templates_c chmod -R 777 /var/www/html/testlink/logs chmod -R 777 /var/www/html/testlink/upload_area
然鵝!!!所有目錄都有了寫權限,仍然沒有解決這個問題,又陷入了深深的思考中.....
2. 最終,經過探索,原來是SELinux阻止/usr/sbin/httpd 對/var/www/html/testlink/gui/templates_c進行寫操作,以前只知道有SELlinx,最多也是接觸過SELinx的關閉.所以最簡單的方法就是關閉SELinux。
那如果不關閉SELinux又該怎樣做呢?
SELinux極大的增強了Linux系統的安全性,能將用戶權限關在籠子裏,如httpd服務,因此能有效的防範0-day類的攻擊。
a)用如下命令獲取默認/var/www目錄的SELinux上下文
semanage fcontext -l |grep ‘/var/www‘
從中可以看到Apache只能訪問包含 httpd_sys_rw_content_t標簽的文件,如果希望Apchae使用某個目錄作為網站文件目錄,就需要給這個目錄下的文件增加httpd_sys_content_t標簽。
b)那麽,首先在這個目錄下的文件添加默認標簽類型
semanage fcontext -a -t httpd_sys_rw_content_t ‘/var/www/html/testlink/gui/templates_c‘
c)然後用新的標簽類型標註已有文件,Apache就可以使用改目錄下的文件構建網站了
restorecon -v ‘/var/www/html/testlink/gui/templates_c‘
d)按同樣的方法,修改/var/www/html/testlink/logs和/var/www/html/testlink/upload_area。
安裝testlink時,出現”testlink/gui/templates_c、testlink/logs、testlink/upload_area不可寫‘解決辦法