Home  >  Article  >  Backend Development  >  Deploying Symfoy2 under Linux to set permissions on the app/cache and app/logs directories, symfoy2logs_PHP tutorial

Deploying Symfoy2 under Linux to set permissions on the app/cache and app/logs directories, symfoy2logs_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:17:12857browse

Deploy Symfony2 under Linux and set permissions on app/cache and app/logs directories, symfoy2logs

After deploying Symfony2 under Linux, app/logs may be reported when accessing Or there is an error that the app/cache directory does not have write permission. Under Linux, if the user we log in from the command line is different from the user of the web application server (apache, nginx, etc.),

You can use the following four methods to solve this problem.

 

1. Use ACL on a system that supports chmod +a

Many versions of Linux systems support the chmod +a command, so we use this command first. Find the user name of the web application server and assign it to the variable HTTPDUSER.

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

The fourth line of command is: find the user name of the web application server and assign it to the variable HTTPDUSER; the fifth line of command is: grant the web application server permissions to read, write, create directories, etc. on the app/logs or app/cache directory; the fifth line of command is: The six-line command is: grant the command line login user permissions to read, write, create directories, etc. on the app/logs or app/cache directory.

 2. If the system does not support chmod +a, then use the setfacl command to set the ACL

First, make sure that the partition where the directory is located supports ACL and the setfacl command has been installed.

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

If it doesn’t work, add the -n option to the second and third lines of the command.

 3. Do not use ACL

If you are not using ACL, you can also change the umask so that the user groups in these two directories have permission to create and modify files (775, and the web application server and command line users are in the same group) or all users have the permission to create and the permission to modify files (777), but these two sets of permissions are unsafe and the permissions given are too high. Add the following code to the first line of the app/console, web/app.php and web/app_dev.php files.

<span>1</span> umask(<span>0002</span>); <span>//</span><span> 生成的目录(app/cache和app/logs)权限为0775
</span><span>2</span> 
<span>3</span> <span>//</span><span> 或者</span>
<span>4</span> 
<span>5</span> umask(<span>0000</span>); <span>//</span><span> 生成的目录(app/cache和app/logs)权限为0777</span>

Note: PHP’s umask command is not thread-safe.

4. The user who logs in from the command line and the user of the web application server are the same user.

 

How to configure the xml file in tomcat

If you are a beginner, just configure a port number and user permissions~ Don’t worry about the rest

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/894760.htmlTechArticleDeploy Symfoy2 under Linux to set permissions on the app/cache and app/logs directories, symfoy2logs after deploying Symfony2 under Linux , it may be reported that the app/logs or app/cache directory does not have write permission when accessing...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn