Как решить ошибку таймаута в Laravel 5

У меня есть следующая настройка:

На маршрутах у меня есть:

Route :: get ('articles', 'ArticlesController @ index');

Метод индекса в контроллере просто:

public function index() { $articles = Article::all(); return View('articles.index', compact('articles')); } 

и в перспективе:

 @extends('../app') @section('content') <h1>Articles</h1> <p> @foreach($articles as $article) <article> <h2><a href="{{action('ArticlesController@show', [$article->id])}}">{{$article->title}}</a></h2> <p>{{ $article->body }}</p> </article> @endforeach </p> @stop 

Я попытался заменить:

 $articles = Article::all(); 

с

 $article = Article::latest()->get(); 

так что я могу фактически показать статьи в первую очередь. Я получил ошибку:

 FatalErrorException in Str.php line 322: Maximum execution time of 30 seconds exceeded 

и стек вызовов:

 in Str.php line 322 at FatalErrorException->__construct() in HandleExceptions.php line 131 at HandleExceptions->fatalExceptionFromError() in HandleExceptions.php line 116 at HandleExceptions->handleShutdown() in HandleExceptions.php line 0 at Str::snake() in helpers.php line 561 at snake_case() in ControllerInspector.php line 105 at ControllerInspector->getVerb() in ControllerInspector.php line 78 at ControllerInspector->getMethodData() in ControllerInspector.php line 39 at ControllerInspector->getRoutable() in Router.php line 251 at Router->controller() in Router.php line 226 at Router->controllers() in Facade.php line 210 at Facade::__callStatic() in routes.php line 21 at Route::controllers() in routes.php line 21 in RouteServiceProvider.php line 40 

… и т.д

Я восстановил метод контроллера, каким он был, но ошибка сохраняется.

Не могли бы вы рассказать мне, как я могу решить эту проблему?

Максимальное время выполнения 30 секунд превысило ошибку, не связанную с Laravel, а скорее вашу настройку PHP.

Вот как вы можете это исправить. Значение, которое вам нужно изменить, – max_execution_time .

 ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data memory_limit = 8M ; Maximum amount of memory a script may consume (8MB) 

Вы можете изменить max_execution_time до 300 секунд, как max_execution_time = 300

Вы можете найти путь к файлу конфигурации PHP в выводе функции phpinfo в разделе « Loaded Configuration File ».

это чистая настройка PHP. Альтернативой является увеличение времени выполнения только для определенных сценариев php, вставив поверх этого файла php следующее:

 ini_set('max_execution_time', 180); //3 minutes 

Иногда вам просто нужно оптимизировать ваш код или запрос. Настройка max_execution_time не является решением.

Код не должен запускаться более 30 секунд.

Если вы используете PHP7, я бы предложил вам изменить значение по умолчанию в public / .htaccess

 <IfModule php7_module> ... php_value max_execution_time 300 ... </IfModule> 

Вам нужно просто нажать CTRL + F5 . После этого он будет работать.