2015-07-16 3 views
0

У меня есть странная не очень полезная ошибка в New Relic. Эти ошибки не отображаются в журналах Laravel OR в необработанных журналах php. Например:Ошибки E_PARSE только в Новой реликвии в Laravel 5.0

Error message 
E_PARSE: syntax error, unexpected '\Foundatio', expecting \\ (T_NS_SEPARATOR) or ';' or '{' 

Sample stack trace 
in require called at /home/xxx/public_html/bootstrap/autoload.php (32) 
in require called at /home/xxx/public_html/public/index.php (36) 

или

Error message 
E_PARSE: syntax error, unexpected '\Support {', expecting \\ (T_NS_SEPARATOR) or ';' or '{' 

Sample stack trace 
in require called at /home/xxx/public_html/bootstrap/autoload.php (32) 
in require called at /home/xxx/public_html/public/index.php (36) 

или

Error message 
E_PARSE: syntax error, unexpected '\Compon', expecting \\ (T_NS_SEPARATOR) or ';' or '{' 

Stack trace 
in require called at /home/xxx/public_html/bootstrap/autoload.php (32) 
in require called at /home/xxx/public_html/public/index.php (36) 

Эти ошибки, кажется, случается каждый раз я бегу composer install на сервере. Времена моего фиксации/развертывания, похоже, совпадают со временем ошибок в New Relic.

Любая идея, что это может быть, и почему я не получаю их в журналах, но они появляются в Новой реликвии?

Большое спасибо за вашу помощь

ответ

1

Ошибки не показывают в журналах Laravel потому Laravel даже не запускается. Ошибки анализа обнаруживаются при загрузке файла, и файл не выполняется.

+0

Спасибо, так у вас есть идея, почему я получаю их только при установке композитора? – JohnWolf

+1

После установки пакетов создаются новые версии различных файлов, например. compiled.php. Я думаю, если какой-то запрос приходит, когда файлы не полностью сгенерированы, вы можете получить ошибки анализа –

+0

ах, это имеет смысл. У сайта довольно много трафика ... Думаю, мне нужно перейти к более эффективному развертыванию. – JohnWolf

0

Благодаря @jerdrzej я понял, что я немного опрометчивый.

Если у кого-либо есть эта проблема, решение должно использовать надлежащий способ развертывания вашего кода (пользователь только увидит новый код, если все будет хорошо с развертыванием - NO DOWNTIME).

Я использую dploy.io и с их последнего обновления (они изменили название на DeployBot), они могут сделать это:

http://deploybot.com/

Или есть Envoyer из команды Laravel:

https://envoyer.io/

Возможно, есть другой способ избежать простоя, но это будет работать для меня.

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