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/logs6 $ 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/logs3 $ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
如果不起作用,在第二、三行命令添加 -n 選項。
3、不使用ACL
如果不是使用ACL,還可以改變umask,使這兩個目錄的使用者組有建立和修改檔案的許可權(775,並且web應用伺服器和命令列使用者在同一個組)或者所有使用者都擁有建立和修改檔案的許可權(777),但是這兩組許可權都是不安全的,給予的許可權過高。把下面的代碼添加到app/console, web/app.php 和 web/app_dev.php 檔案的首行。
1 umask(0002); // 產生的目錄(app/cache和app/logs)許可權為07752 3 // 或者4 5 umask(0000); // 產生的目錄(app/cache和app/logs)許可權為0777
註:php的umask命令是非安全執行緒的。
4、命令列登陸的使用者和web應用伺服器的使用者為同一個使用者。
tomcat中的xml檔案該怎配置
初學的話就配置個連接埠號碼 跟使用者權限就可以了~ 其他不用管
http://www.bkjia.com/PHPjc/894760.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/894760.htmlTechArticleLinux下部署Symfoy2對app/cache和app/logs目錄的使用權限設定,symfoy2logs 在linux下部署完Symfony2,可能在訪問的時候會報app/logs或者app/cache目錄沒有寫權...