Symfony2“;资产:转储-环境产品“;权限被拒绝异常
在我对root用户执行更新(composer.phare update)之前,一切正常,但是现在当我尝试运行“Assetic:dump-env prod”时,我得到了一个“Permission denied”错误 我在这篇文章中尝试了所有的解决方案Symfony2“;资产:转储-环境产品“;权限被拒绝异常,symfony,permissions,assetic,yui-compressor,Symfony,Permissions,Assetic,Yui Compressor,在我对root用户执行更新(composer.phare update)之前,一切正常,但是现在当我尝试运行“Assetic:dump-env prod”时,我得到了一个“Permission denied”错误 我在这篇文章中尝试了所有的解决方案 清除缓存、chown、chgrp和chmod没有任何效果始终是同一个问题我不建议使用root进行更新。在我看来,方法是让/app/logs/app/cache对于服务器是可写的,而src和vendor文件夹对于服务器是可读的 假设您的用户和组是:co
清除缓存、chown、chgrp和chmod没有任何效果始终是同一个问题我不建议使用root进行更新。在我看来,方法是让/app/logs/app/cache对于服务器是可写的,而src和vendor文件夹对于服务器是可读的 假设您的用户和组是:coolman,然后尝试以下操作:
# everything is yours
chown coolman:coolman -R .
# all and group can access folders and read files, you as user can additionally write them
chmod ag=rX,u=rwX -R .
# full access to logs and cache for everyone (also the server)
chmod a+rwX -R app/logs app/cache
使用coolman用户更新作曲家
也只有一个小问题。日志可能是www-data:www-data rw-r--r--因此您不能删除它们。因此,只需在app.php和app/console文件中添加一行:
\umask(0000);
我认为这一行被注释为默认行。这就是说,如果PHP中没有设置明确的权限,那么创建的每个文件都将获得0777-mask=0777,这样您就可以删除日志并进行缓存。我不建议使用root进行更新。在我看来,方法是让/app/logs/app/cache对于服务器是可写的,而src和vendor文件夹对于服务器是可读的 假设您的用户和组是:coolman,然后尝试以下操作:
# everything is yours
chown coolman:coolman -R .
# all and group can access folders and read files, you as user can additionally write them
chmod ag=rX,u=rwX -R .
# full access to logs and cache for everyone (also the server)
chmod a+rwX -R app/logs app/cache
使用coolman用户更新作曲家
也只有一个小问题。日志可能是www-data:www-data rw-r--r--因此您不能删除它们。因此,只需在app.php和app/console文件中添加一行:
\umask(0000);
我认为这一行被注释为默认行。这就是说,如果PHP中没有设置明确的权限,那么创建的每个文件都将获得0777-mask=0777,这样您就可以删除日志并进行缓存。我不建议使用root进行更新。在我看来,方法是让/app/logs/app/cache对于服务器是可写的,而src和vendor文件夹对于服务器是可读的 假设您的用户和组是:coolman,然后尝试以下操作:
# everything is yours
chown coolman:coolman -R .
# all and group can access folders and read files, you as user can additionally write them
chmod ag=rX,u=rwX -R .
# full access to logs and cache for everyone (also the server)
chmod a+rwX -R app/logs app/cache
使用coolman用户更新作曲家
也只有一个小问题。日志可能是www-data:www-data rw-r--r--因此您不能删除它们。因此,只需在app.php和app/console文件中添加一行:
\umask(0000);
我认为这一行被注释为默认行。这就是说,如果PHP中没有设置明确的权限,那么创建的每个文件都将获得0777-mask=0777,这样您就可以删除日志并进行缓存。我不建议使用root进行更新。在我看来,方法是让/app/logs/app/cache对于服务器是可写的,而src和vendor文件夹对于服务器是可读的 假设您的用户和组是:coolman,然后尝试以下操作:
# everything is yours
chown coolman:coolman -R .
# all and group can access folders and read files, you as user can additionally write them
chmod ag=rX,u=rwX -R .
# full access to logs and cache for everyone (also the server)
chmod a+rwX -R app/logs app/cache
使用coolman用户更新作曲家
也只有一个小问题。日志可能是www-data:www-data rw-r--r--因此您不能删除它们。因此,只需在app.php和app/console文件中添加一行:
\umask(0000);
我认为这一行被注释为默认行。这意味着,如果在PHP中没有设置明确的权限,那么创建的每个文件都将获得0777-mask=0777,这样您就可以删除日志并进行缓存。当您运行基于web的应用程序时,处理文件权限的一种方法需要自动部署或持续手动更新,如使用symfony2的bin/console,确保文件属于运行应用程序的用户是很重要的 由于您没有提供环境设置,我将做一些假设,并为您提供一个通用的设置方案,希望这将有助于指导您找到适合您具体情况的最佳解决方案 环境假设:
- 操作系统:linux风格李>
- 网络服务器:nginx将作为www数据运行李>
- PHP:PHP fpm将作为testapp运行,并为此应用程序使用套接字连接李>
listen=/var/run/php5 fpm.apptest.sock.
注意:上面那一行的fpm.apptest.sock部分是一个文件名,该文件名尚不存在,但将在重新启动php时创建。这样做的好处是,您将为这个应用程序提供一个独立的php进程
unix:/var/run/php5-fpm.apptest.sock代码>
b) 如果您使用的是apache,请在该conf文件中添加此行:
-socket/var/run/php5-fpm.apptest.sock代码>
如果您在linux机器上,请创建一个没有密码的用户,它应该被称为apptest
注意:apptest是应用程序的名称,也是运行php的用户,它还应该是应用程序文件/文件夹的所有者
重新启动php和nginx/apache李>
提示:要在linux中更改为没有密码的用户,您应该具有root权限并运行:
sudo-u apptest-i.
在此之后,您应该以之前创建的apptest用户的身份执行所有命令,包括运行symfony2 bin/控制台
这些是非常通用的步骤,因此如果您需要任何说明,请告诉我。当您运行基于web的应用程序时,处理文件权限的一种方法需要