Symfony2 doctrine:generate:entities 不允许 chmod 操作

Symfony2 doctrine:generate:entities chmod operation not permitted

最近在开发机器上从 2.3.1 升级到 2.8.7。 在我需要创建一个新的 table 之前,一切都很顺利。 设法通过 doctrine:mapping:convert

生成 yml 罚款

当我通过 doctrine:generate:entities 创建 getter 和 setter 时,我得到了这个:

[Symfony\Component\Debug\Exception\ContextErrorException]
Warning: chmod(): Operation not permitted

仅此而已。这不是很有帮助。它是我需要在某处添加 @ 的 chmod 吗? 我正在执行命令作为 www-data 并且日志文件夹文件也是 www-data,所以我不认为这是调试文件权限问题。

另外,是否与需要升级的东西有关。这是我的作曲家文件:

"require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.8.*",
        "doctrine/orm": "2.5.*",
        "doctrine/doctrine-bundle": "1.6.*",
        "twig/extensions": "1.3.*",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "symfony/assetic-bundle": "~2.8",
        "sensio/distribution-bundle": "~5.0",
        "sensio/framework-extra-bundle": "^3.0.2",
        "incenteev/composer-parameter-handler": "~2.0",
        "snc/redis-bundle": "dev-master",
        "predis/predis": "1.0.*",
        "symfony/class-loader": "v2.8.*"
    },
    "require-dev": {
        "sensio/generator-bundle": "~3.0",
        "symfony/phpunit-bridge": "~2.7"
    },

我只是希望调试在当时正在做的事情上能稍微有点帮助。或者file/line错误发生在什么地方。

还要检查 cache 文件夹所有权。如果它是同一用户,则不必担心。还是仔细检查一下。

此外,如果这不起作用,请暂时禁用safe_mode并再次检查。

这与其说是修复,不如说是变通。

基本上在版本更改中,他们添加了想要修改存储库文件的代码。由于这些是自动生成的,因此大多数时候都很好。如果您已经向它们中的任何一个添加了代码,这是您打算做的,特别是如果您以 www-data 以外的用户身份修改代码,它会破坏事情。

所以现在,当我开始做数据库结构更新的 getters 和 setters 部分时,我 运行 这个:

sudo find ./src/MyBunddle/SiteBundle/Entity -name '*.php' ! -name '*Repository.php' -exec chown www-data \{\} \; -print

不知道,但完成了工作。

如果您出于任何原因需要改回原样,可以使用

sudo find ./src/MyBundle/SiteBundle/Entity -name '*.php' ! -name '*Repository.php' -exec chown youUser \{\} \; -print

你可以看到他们在这里讨论这个问题:

https://github.com/doctrine/doctrine2/commit/caf30b889bb898620d843d1ec4940d01fa1d8877