程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Linux下部署Symfoy2對app/cache和app/logs目錄的權限設置,symfoy2logs

Linux下部署Symfoy2對app/cache和app/logs目錄的權限設置,symfoy2logs

編輯:關於PHP編程

Linux下部署Symfoy2對app/cache和app/logs目錄的權限設置,symfoy2logs


  在linux下部署完Symfony2,可能在訪問的時候會報app/logs或者app/cache目錄沒有寫權限的錯誤。在linux下,如果我們在命令行登陸的用戶和web應用服務器(apache、nginx等)的用戶不一樣的時候,

可以使用下面四個方法來解決這個問題。

  

  1、在支持chmod +a 的系統下使用ACL

  很多版本的linux系統都支持chmod +a命令,所以我們優先使用這個命令。找出web應用服務器的用戶名賦值到變量HTTPDUSER上。

1 $ rm -rf app/cache/*
2 $ rm -rf app/logs/*
3 
4 $ HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
5 $ sudo chmod +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
6 $ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

  第四行命令是:找出web應用服務器的用戶名賦值給變量HTTPDUSER;第五行命令是:賦予web應用服務器對app/logs或者app/cache目錄讀、寫、創建目錄等權限;第六行命令是:賦予命令行登陸用戶對app/logs或者app/cache目錄讀、寫、創建目錄等權限。

 

  2、如果系統不支持chmod +a ,那麼就使用setfacl命令來設置ACL

  首先要確定目錄所在分區支持ACL和已經安裝setfacl命令。

1 $ HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
2 $ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
3 $ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

  如果不起作用,在第二、三行命令添加 -n 選項。

 

  3、不使用ACL

  如果不是使用ACL,還可以改變umask,使這兩個目錄的用戶組有創建和修改文件的權限(775,並且web應用服務器和命令行用戶在同一個組)或者所有用戶都擁有創建和修改文件的權限(777),但是這兩組權限都是不安全的,給予的權限過高。把下面的代碼添加到app/consoleweb/app.php 和 web/app_dev.php 文件的首行。

1 umask(0002); // 生成的目錄(app/cache和app/logs)權限為0775
2 
3 // 或者
4 
5 umask(0000); // 生成的目錄(app/cache和app/logs)權限為0777

  注:php的umask命令是非線程安全的。

 

  4、命令行登陸的用戶和web應用服務器的用戶為同一個用戶。

 

 

    


tomcat中的xml文件該怎配置

初學的話就配置個端口號 跟用戶權限就可以了~ 其他不用管
 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved