警告:mkdir():权限被拒绝 generate:bundle
Warning: mkdir(): Permission denied generate:bundle
我正在尝试从控制器生成捆绑包。但是我有权限被拒绝的错误。而且我不明白为什么。
这是我的控制器代码:
$app = new \Symfony\Bundle\FrameworkBundle\Console\Application($this->get("kernel"));
$app->setAutoExit(false);
$input = new \Symfony\Component\Console\Input\ArrayInput(array(
"command"=>"generate:bundle",
"--namespace"=>"testNewAnBundle",
"-n"=>""
));
$out = new \Symfony\Component\Console\Output\BufferedOutput();
$app->run($input, $out);
return new Response("<body>".$out->fetch()."</body>");
输出为:
Bundle generation > Generating a sample bundle skeleton into app/../src/testNewAnBundle [Symfony\Component\Debug\Exception\ContextErrorException] Warning: mkdir(): Permission denied generate:bundle [--namespace NAMESPACE] [--dir DIR] [--bundle-name BUNDLE-NAME] [--format FORMAT] [--shared] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-s|--shell] [--process-isolation] [-e|--env ENV] [--no-debug] [--]
这会在 src/ 中创建文件夹 testNewAnBundle/ 并且文件夹 testNewAnBundle/ 生成了 testNewAnBundle.php 和 Controller/DefaultController.php 个文件。
路径 testNewAnBundle/* 权限为:
drwxrwxrwx+ www-data www-data testNewAnBundle
drwxrwxrwx+ 2 www-data www-data 4096 mai 14 16:13 Controller
-rw-rw-rw- 1 www-data www-data 125 mai 14 16:13 testNewAnBundle.php
可能你必须在用户模式下使用 ACL 命令行(不是 root)
HTTPDUSER=ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:whoami
:rwX var
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:whoami
:rwX var
我正在尝试从控制器生成捆绑包。但是我有权限被拒绝的错误。而且我不明白为什么。
这是我的控制器代码:
$app = new \Symfony\Bundle\FrameworkBundle\Console\Application($this->get("kernel"));
$app->setAutoExit(false);
$input = new \Symfony\Component\Console\Input\ArrayInput(array(
"command"=>"generate:bundle",
"--namespace"=>"testNewAnBundle",
"-n"=>""
));
$out = new \Symfony\Component\Console\Output\BufferedOutput();
$app->run($input, $out);
return new Response("<body>".$out->fetch()."</body>");
输出为:
Bundle generation > Generating a sample bundle skeleton into app/../src/testNewAnBundle [Symfony\Component\Debug\Exception\ContextErrorException] Warning: mkdir(): Permission denied generate:bundle [--namespace NAMESPACE] [--dir DIR] [--bundle-name BUNDLE-NAME] [--format FORMAT] [--shared] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-s|--shell] [--process-isolation] [-e|--env ENV] [--no-debug] [--]
这会在 src/ 中创建文件夹 testNewAnBundle/ 并且文件夹 testNewAnBundle/ 生成了 testNewAnBundle.php 和 Controller/DefaultController.php 个文件。
路径 testNewAnBundle/* 权限为:
drwxrwxrwx+ www-data www-data testNewAnBundle
drwxrwxrwx+ 2 www-data www-data 4096 mai 14 16:13 Controller
-rw-rw-rw- 1 www-data www-data 125 mai 14 16:13 testNewAnBundle.php
可能你必须在用户模式下使用 ACL 命令行(不是 root)
HTTPDUSER=ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:whoami
:rwX var
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:whoami
:rwX var