最大执行超时 30 Seconds/Mbstring 错误 Laravel 6*
Max Execution Timeout 30 Seconds/Mbstring Error Laravel 6*
我在 Laravel 6.2 工作,有一个基本数据库,其中包含一个 questions
table,可以返回一个 id、slug、标题、body、时间戳。我在 questions
设置了一条路由,该路由调用查询数据库的控制器并将问题传递给视图 index.blade.php
,在这里我显示分页问题。问题是我可以很好地显示 $questions->title
,但是当我尝试显示 $question->body
时,我不断收到特定的超时错误。我已经将 .ini 中的 max_execution 从 30 更改为 300,但无济于事。
具体错误
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/projects/inquiry-app/vendor/symfony/polyfill-mbstring/Mbstring.php on line 603
第 603 行:
return (string) iconv_substr($s, $start, $length, $encoding);
Web.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('questions', 'QuestionsController');
问题控制器
class QuestionsController extends Controller
{
public function index()
{
$questions = Question::latest()->paginate(2);
return view('questions.index', compact('questions'));
}
}
index.blade.php
@foreach($questions as $question)
<div class="media">
<div class="media-body">
<h3 class="mt-0">{{$question->title}}</h3>
{{-- <p>{{Str::limit($question->body, 10)}}</p>--}}
</div>
</div>
<hr>
@endforeach
知道为什么我会收到此错误吗?如果 $question->body 行被注释掉,页面将加载。
我在 Ubuntu 19.04,Laravel 6.2,php7.3(FPM/FastCGI)
谢谢。
回答我自己的问题。当我从 $question->body
行中删除 {{Str::limit}} 时,它工作得很好。我不确定为什么这会导致问题,但通过删除那部分代码,它现在似乎可以工作了。
来晚了,但有人遇到了这个问题。
这个问题来自 php mb-string not work well.
所以重新安装 php mb-string 可以修复这个错误。
编辑:来不及回答 OP 的问题。
如果您使用的是 Apache,请检查所服务的 PHP 版本。
php-cli 使用的是 php8.0
但是,Apache 使用的是 php7.4
。这导致 Symfony 的 polyfill-mbstring
库超时,因为该模块未启用。
我在 Laravel 6.2 工作,有一个基本数据库,其中包含一个 questions
table,可以返回一个 id、slug、标题、body、时间戳。我在 questions
设置了一条路由,该路由调用查询数据库的控制器并将问题传递给视图 index.blade.php
,在这里我显示分页问题。问题是我可以很好地显示 $questions->title
,但是当我尝试显示 $question->body
时,我不断收到特定的超时错误。我已经将 .ini 中的 max_execution 从 30 更改为 300,但无济于事。
具体错误
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/projects/inquiry-app/vendor/symfony/polyfill-mbstring/Mbstring.php on line 603
第 603 行:
return (string) iconv_substr($s, $start, $length, $encoding);
Web.php
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('questions', 'QuestionsController');
问题控制器
class QuestionsController extends Controller
{
public function index()
{
$questions = Question::latest()->paginate(2);
return view('questions.index', compact('questions'));
}
}
index.blade.php
@foreach($questions as $question)
<div class="media">
<div class="media-body">
<h3 class="mt-0">{{$question->title}}</h3>
{{-- <p>{{Str::limit($question->body, 10)}}</p>--}}
</div>
</div>
<hr>
@endforeach
知道为什么我会收到此错误吗?如果 $question->body 行被注释掉,页面将加载。
我在 Ubuntu 19.04,Laravel 6.2,php7.3(FPM/FastCGI)
谢谢。
回答我自己的问题。当我从 $question->body
行中删除 {{Str::limit}} 时,它工作得很好。我不确定为什么这会导致问题,但通过删除那部分代码,它现在似乎可以工作了。
来晚了,但有人遇到了这个问题。
这个问题来自 php mb-string not work well.
所以重新安装 php mb-string 可以修复这个错误。
编辑:来不及回答 OP 的问题。
如果您使用的是 Apache,请检查所服务的 PHP 版本。
php-cli 使用的是 php8.0
但是,Apache 使用的是 php7.4
。这导致 Symfony 的 polyfill-mbstring
库超时,因为该模块未启用。