2016-08-04 2 views
2

Недавно обновлена ​​с 2.3.1 до 2.8.7 на dev-машине. Все идет хорошо, пока мне не нужно было создать новую таблицу. Успели генерировать YML штраф через доктрину: отображение: преобразованиеSymfony2 doctrine: сгенерируйте: сущности chmod операция не разрешена

Когда я пришел, чтобы создать методы получения и установки через доктрину: генерировать: сущности, я получаю это:

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

И ничего. Это не очень полезно. Это chmod, который мне нужно добавить @ где-нибудь? Я выполняю команду как www-данные, а файлы папок журнала также являются www-данными, поэтому я не считаю, что это проблема с разрешением отладочного файла.

Кроме того, это связано с чем-то, что нуждается в обновлении. Вот мой композитор файла:

"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

Как вы исправить ваш вопрос ?! У меня такая же проблема ... – Preciel

ответ

0

Это скорее работа, чем исправление.

В основном при изменении версии они добавили код, который хочет изменить файлы репозитория. Поскольку они сгенерированы автоматически, большую часть времени это нормально. Если вы добавили код к любому из них, что вы должны делать, особенно если вы изменяете код как пользователь, отличный от www-data, это ломает ситуацию.

Так что теперь, когда я пришел, чтобы сделать методы получения и установки часть обновления структуры databsse, я запускаю это:

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

Смежные вопросы