最大执行时间超过 30 秒 Laravel 4 错误
Posted
技术标签:
【中文标题】最大执行时间超过 30 秒 Laravel 4 错误【英文标题】:Maximum execution time of 30 seconds exceeded Laravel 4 error 【发布时间】:2013-11-16 18:03:53 【问题描述】:我在 laravel 4 中的 UserController 中发送密码请求的某个函数出现问题。它会检查数据库中是否存在电子邮件,然后如果用户存在则发送电子邮件。然后,该函数在表中创建一个令牌,并将其发送到电子邮件中链接的末尾。
该函数的工作原理与在数据库中创建令牌一样,但它似乎有问题,因为我不断收到Maximum execution time
错误。我不知道是什么原因造成的,它似乎与重定向有关。有人可以帮帮我吗?提前致谢!
这里是控制器功能:
public function passwordRequest()
$data = [
"requested"=>Input::old("requested")
];
if(Input::server("REQUEST_METHOD") == "POST")
$input = Input::all();
$rules = [
"email" => "required|exists:users,email"
];
$v = Validator::make($input, $rules);
if($v->passes())
$credentials = [
"email" => Input::get("email"),
];
Password::remind($credentials, function($message, $user)
$message->from("request@test.com");
);
$data["requested"] = true;
return Redirect::route("user/request")->with($data);
return Redirect::to(URL::route("user/request"))->withInput($data)->withErrors($v);
return View::make("user/request", $data);
这里是 routes.php 文件:
Route::group(["before"=>"guest"], function()
Route::any("/", [
"as"=>"user/login",
"uses"=>"UserController@userLogin"
]);
Route::any("/request", [
"as"=>"user/request",
"uses"=>"UserController@passwordRequest"
]);
Route::any("/reset", [
"as"=>"user/reset",
"uses"=>"UserController@passwordReset"
]);
Route::any("/register", [
"as" => "user/register",
"uses" => "UserController@userRegister"
]);
)
;
如果需要,这里是视图:
@extends("layouts.master")
@section("content")
<h1>Request Password Reset</h1>
Form::open([
"route"=>"user/request",
"autocomplete"=>"off"
])
@if(isset($errors))
@foreach ($errors->all() as $error)
<div class="error">
<li> $error </li>
</div>
@endforeach
@endif
@if(Session::has("requested"))
<div class="success">
<li>An email has been sent with your password reset request.</li>
</div>
Session::forget('requested')
@endif
<br />
Form::label("email", "Email:")
Form::text("email", Input::old("email"), [
"placeholder"=>"Email Address"
])
Form::submit("Reset")
Form::close()
<br />
html::linkRoute("user/login", "Return to Login")
@stop
【问题讨论】:
【参考方案1】:您的脚本执行时间超过30
秒并被终止并且与Laravel
无关但与php
相关。默认限制为30
秒,存储在php.ini
文件中。要暂时延长时间限制,您可以在当前脚本中使用以下代码行,但也要尝试优化您的脚本(如果可能)
set_time_limit(60); //60 seconds = 1 minute
Read more on php manual.
你可以做 set_time_limit(0);这样脚本将永远运行 - 但是不建议这样做,您的网络服务器可能会抓住您 HTTP 超时(通常大约 5 分钟)。
你也可以使用
ini_set('max_execution_time', 60);
Check ini_set.
【讨论】:
如何在 laravel 而不是 php.ini 中添加 set_time_limit? @AbhishekKumar,在服务提供者中,可能在 appserviceprovider 中。【参考方案2】:问题实际上出在我使用的 wifi 上。我与它断开连接并连接到另一个,一切正常。我从来没有遇到过wifi不允许本地主机发送电子邮件的问题。感谢大家的帮助!
【讨论】:
以上是关于最大执行时间超过 30 秒 Laravel 4 错误的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\modules\phpmy 中的最大执行时间超过 30 秒
致命错误:第 1610 行的 C:\xampp\htdocs\wordpress\wp-includes\class-http.php 中的最大执行时间超过 30 秒
致命错误:第 463 行的 C:\xampp\htdocs\AKS_Shop\wp-includes\Requests\Transport\cURL.php 中的最大执行时间超过 30 秒