1. 程式人生 > >安裝testlink時,出現”testlink/gui/templates_c、testlink/logs、testlink/upload_area不可寫‘解決辦法

安裝testlink時,出現”testlink/gui/templates_c、testlink/logs、testlink/upload_area不可寫‘解決辦法

安裝 網站 增強 server mod httpd 權限 img contex

在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不可寫‘解決辦法