Symfony2 выходит из строя в производстве - PullRequest
3 голосов
/ 12 февраля 2012

На этой неделе мы развернули наш первый веб-сайт Symfony2.

Странные вещи начали происходить с ним на сервере, но мы не смогли воспроизвести проблему локально. Мы протестировали на других серверах и тоже обнаружили те же ошибки. Если это поможет, мы попробовали ubuntu ami на amazon ec2 и debian на другом сервере. Также apache2 + mod_php и nginx + php-fpm, версия php 5.3.3. Symfony составляет 2,0,9.

Некоторые запросы просто возвращают пустой экран и в журналах ошибок появляются следующие ошибки:

[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/ClassLoader/ApcUniversalClassLoader.php on line 80
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 1152
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 1146
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 464
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 465
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 466
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 666
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 467
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 468
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/app/bootstrap.php.cache on line 469
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/ParameterBag.php on line 34
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 123
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/ParameterBag.php on line 34
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 124
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/ParameterBag.php on line 34
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 125
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/ParameterBag.php on line 34
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 126
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/FileBag.php on line 48
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 127
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/ParameterBag.php on line 34
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Warning:  Attempt to assign property of non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 128
[Sun Feb 12 17:09:30 2012] [error] [client 192.168.51.125] PHP Fatal error:  Call to a member function getHeaders() on a non-object in /var/www/itop/vendor/symfony/src/Symfony/Component/HttpFoundation/Request.php on line 129

Мы действительно застряли, пытаясь выяснить проблему. Кто-нибудь еще сталкивался с такими проблемами? Любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

По моему опыту, когда у вас возникают странные ошибки, подобные этой, особенно когда вы видите случайные проблемы, не связанные с объектами, в бессмысленных местах, проблема всегда связана с памятью. В буквальном смысле, объект создается, но затем этот объект теряется в памяти, поэтому на следующей строке он больше не является объектом. Я видел это всего несколько раз, но это всегда было связано с проблемой с APC. На самом деле, на моей последней работе у нас была похожая проблема после обновления до PHP 5.3 - она ​​работала бы большую часть времени, но затем у APC не хватило бы памяти, и мы получили бы эти ошибки. В то время (около года назад) казалось (из-за поиска в Google), что в некоторых случаях были некоторые проблемы с PHP и APC. Я бы определенно посмотрел на APC - я действительно думаю, что это твоя проблема. В частности, APC не очищает свою старую память, чтобы освободить место для новых вещей.

Удачи!

1 голос
/ 17 февраля 2012

Хорошо, я думаю, что мы нашли решение этой проблемы. Странные ошибки исчезли, когда мы обновили php на нашем сервере до последней версии: 5.3.10. Это было так просто. Может быть, это были некоторые ошибки PHP 5.3.3, я не знаю. И мы не нашли ничего связанного с журналами изменений.

В эти выходные мы протестируем другую машину с freebsd и 5.3.8.

Спасибо всем, кто пытался помочь.

0 голосов
/ 13 февраля 2012

Вы пробовали обновить до Symfony 2.0.10?

...