警告: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