Symfony2 doctrine:generate:实体chmod操作不允许

时间:2016-08-04 15:53:12

标签: symfony doctrine-orm chmod

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

管理生成yml

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

[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"
    },

我只是希望调试对于它当时正在做的事情稍微有点帮助。或者错误发生在哪个文件/行。

2 个答案:

答案 0 :(得分:0)

同时检查cache文件夹所有权。如果是同一个用户,则不应该担心。还是要仔细检查。

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

答案 1 :(得分:0)

这更像是一种解决方法而不是修复。

基本上在版本更改中,他们添加了想要修改存储库文件的代码。由于这些是自动生成的,因此大部分时间都可以。如果您已经为其中任何一个添加了代码,特别是如果您要将代码修改为www-data以外的用户,那么它就会破坏。

所以现在,当我来做一个databsse结构更新的getter和setter的一部分时,我运行它:

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