2016-08-04 57 views
2

最近從開發機器上的2.3.1升級到2.8.7。 一切都很好,直到我需要創建一個新表。 管理產生通過教義YML罰款:映射:轉換Symfony2學說:生成:實體chmod操作不允許

當我來到創建通過主義的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" 
    }, 

我只是希望調試對於當時的做法稍微有點幫助。或者錯誤發生在哪個文件/行。

+1

你怎麼解決您的問題?!我有同樣的問題atm ... – Preciel

回答

0

這是一個比解決方法更多的工作。

基本上在版本更改中,他們添加了想要修改存儲庫文件的代碼。由於這些是自動生成的,所以大部分時間沒問題。如果您已將代碼添加到其中的任何代碼中,那麼您應該這樣做,特別是如果您要將代碼作爲除www數據之外的用戶進行修改,則會破壞事情。

所以現在,當我來到做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

0

檢查cache文件夾的所有權。如果它是同一個用戶,那就不應該擔心。仍然做一個雙重檢查。

此外,如果這不起作用,請暫時禁用safe_mode並再次檢查。

+0

我已經解決了這個問題。緩存文件夾沒有問題。日誌文件夾也不是。這兩件事我都檢查過,但可能是問題。 – Adi