Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel,Dropzone.js,Apache文件上载超时_Php_Mysql_Apache_File Upload_Dropzone.js - Fatal编程技术网

Php Laravel,Dropzone.js,Apache文件上载超时

Php Laravel,Dropzone.js,Apache文件上载超时,php,mysql,apache,file-upload,dropzone.js,Php,Mysql,Apache,File Upload,Dropzone.js,最近,我的系统中的许多用户都遇到了一个文件上载超时问题。基本上,用户全天登录上传系统,发送通常为1-3MB的文件,每批通常为1-10个文件。当用户上传文件或批次一段时间后,dropzone的文件上传失败,并向用户发送消息“服务器响应0代码”。这个问题只会偶尔发生,但是如果我尝试上传一个需要几分钟上传的大文件,我可以随时轻松地复制这个问题。到目前为止,我已经搜索并尝试了很多东西,但问题仍然存在 如果上载成功,则文件将保存到服务器上的某个位置,并且每个文件的信息都存储在数据库中 该系统由Larave

最近,我的系统中的许多用户都遇到了一个文件上载超时问题。基本上,用户全天登录上传系统,发送通常为1-3MB的文件,每批通常为1-10个文件。当用户上传文件或批次一段时间后,dropzone的文件上传失败,并向用户发送消息“服务器响应0代码”。这个问题只会偶尔发生,但是如果我尝试上传一个需要几分钟上传的大文件,我可以随时轻松地复制这个问题。到目前为止,我已经搜索并尝试了很多东西,但问题仍然存在

如果上载成功,则文件将保存到服务器上的某个位置,并且每个文件的信息都存储在数据库中

该系统由Laravel PHP、Dropzone.js、Mysql和Apache构建。下面是一些关于错误日志、配置文件和我尝试过的事情的信息

以下是上传失败后laravel错误日志报告的内容:

    [2014-10-02 15:52:26] log.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1429
Stack trace:
#0 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1050): Illuminate\Routing\Router->handleRoutingException(Object(Symfony\Component\Routing\Exception\ResourceNotFoundException))
#1 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1014): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(576): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#3 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(552): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#4 /usr/www/www.example.com/beta/public/index.php(49): Illuminate\Foundation\Application->run()
#5 {main} [] []
[2014-10-02 15:52:29] log.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' with message 'Controller method not found.' in /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Controller.php:290
Stack trace:
#0 [internal function]: Illuminate\Routing\Controllers\Controller->missingMethod(Array)
#1 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Controller.php(138): call_user_func_array(Array, Array)
#2 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Controllers/Controller.php(115): Illuminate\Routing\Controllers\Controller->callMethod('missingMethod', Array)
#3 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Router.php(985): Illuminate\Routing\Controllers\Controller->callAction(Object(Illuminate\Foundation\Application), Object(Illuminate\Routing\Router), 'missingMethod', Array)
#4 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Array)
#5 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Route.php(80): call_user_func_array(Object(Closure), Array)
#6 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Route.php(47): Illuminate\Routing\Route->callCallable()
#7 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1016): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#8 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(576): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#9 /usr/www/www.example.com/beta/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(552): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#10 /usr/www/www.example.com/beta/public/index.php(49): Illuminate\Foundation\Application->run()
#11 {main} [] []
以下是Apache(httpd.conf)的一些设置:

我以不同的方式更改了这些设置,例如将超时/MaxClient增加到500,但结果仍然相同。上传在某个时间失败,似乎完全忽略了这些设置

下面是php.ini中的一些设置

default_socket_timeout = 500
mysql.connect_timeout = 500
max_execution_time = 1200
max_input_time = 1200
file_uploads = On
max_file_uploads = 50
post_max_size = 2047M
upload_max_filesize = 2047M
memory_limit = 258M
这是laravel.htaccess文件

Options -Indexes
我还尝试通过添加“xhr.timeout=4000”来更改dropzone.js AJAX上传代码。通过将这一行添加到dropzone.js,上传将部分上传到进度条中,但它永远不会变为红色并失败。上传将永远暂停,这让我认为问题出在laravel或服务器上的某个地方,但我现在不确定。如果没有这段代码,在我看来,AJAX请求在某个随机时间被服务器/laravel丢弃,文件上传失败。更奇怪的是,这个错误最近才开始发生。在这之前的几个月里,系统运行平稳,上传文件

我非常感谢在这个问题上的任何头脑风暴、反馈或帮助

多谢各位

更新:

我在filters.php文件中添加了这一行,以查看丢失的路由是什么

App::missing(function($exception)
{
    Log::error('Missing URL was: ' . Request::fullUrl());
});
我能够从我的laravel错误日志中删除所有“NotFoundHTTPException…”和“Controller method not found…”错误。但是,文件上载仍然会在随机时间失败,但现在laravel错误日志中没有报告任何错误。dropzone ajax上载请求只是在随机时间被丢弃,并返回状态代码0


有人知道我下一步应该怎么做才能解决这个问题吗?

错误消失了!我能够将错误追溯到一个旧的apache模块,该模块正在请求一个不再存在的文件。在检查错误日志之后,我注意到Apache每分钟都会收到一个关闭信号,这是由于没有找到模块需要的文件。我很高兴这件事终于解决了

我认为您的ajax请求超时了。1) [2][1]:[2]:似乎网络上的其他网站在加载页面时也没有收到服务器的响应。我只知道这一个网站在加载时出现问题。我相信问题与服务器有关。可能是时候将此网络上的一些网站负载平衡到另一个服务器上了。
App::missing(function($exception)
{
    Log::error('Missing URL was: ' . Request::fullUrl());
});