所以我在网站上有库存。我每天都会将库存从本地计算机传输到我的托管网站,以使其保持最新状态。所以我基本上是在我的本地计算机上进行更改,然后通过使用mysqldump来获取库存,让所有更新每天都进行。我曾经把我的网站放在共享主机上,而且效果很好。该网站一直有停机时间,因此我尝试升级到Bluehost的VPS服务器。那么现在我所使用的服务器配置不同,转储不再有效。
以下是发生的事情: 转储大约运行25%,然后退出。在40k库存商品中,每次尝试时仅上传9-11k。导致我认为存在超时问题或数据大小问题。整个过程用于1分钟上传,现在大约20秒后退出。
我已经尝试过通过添加以下行来更改mysql配置文件my.cnf文件:
net_read_timeout = 7200
net_write_timeout = 7200
这是我的代码:
<?php
ini_set('max_execution_time', 0);
set_time_limit(0);
ini_set('set_memory_limit', -1);
ini_set('display_errors', 1);
error_reporting(E_ALL);
include "globe/globalvariables.php";
$output = exec(
"mysqldump -h ".$local_business_ip.
" -u".$local_business_db_admin_login.
" -p".$local_business_db_admin_password.
" ".$local_business_inventory_db_name.
" ".$local_business_inventory_table_name." | mysql -h ".$web_db_host.
" -u".$web_db_admin_login.
" -p".$web_db_admin_password.
" ".$web_db_name);
echo "done";
?>
我也尝试将exec的第一行更改为:
mysqldump nohup -h ".$local_business_ip.
但是nohup只是让它跳过整个操作,好像它是一个坏命令或什么的。
我也尝试过shell_exec,system和pass_thru或passthru。 我还在服务器上将MYSQL升级到5.6。
我已经搜索了两天的答案。任何人都知道我能做什么?我相信这是一些apache配置问题。顺便说一句,我在带有WHM的Bluehost VPS服务器上。没有蓝色的主人没有任何帮助!他们也没有告诉我,配置将被重置或其他。
我在PHP手册中找到了这个:
_“set_time_limit()函数和配置指令max_execution_time_ 仅影响脚本本身的执行时间。在执行脚本之前发生发生的活动的任何时间,例如使用system()的系统调用,流操作,数据库查询等,在确定时不包括在内。 脚本一直在运行的最长时间。在测量时间真实的Windows上,情况并非如此。“
不确定如何使exec和系统函数的时间限制更高?
答案 0 :(得分:0)
所以我是一个新手,但我发现了apache错误日志的位置,我看到了这个错误: mod_fcgid:在40秒内读取数据超时,......
在谷歌上查找错误后,这个网站帮助了!
http://blog.secaserver.com/2011/07/cpanel-apache-php-fastcgi-data-timeout-error
这是来自该网站: *如果您在cPanel服务器上运行并在Apache中启用了FastCGI,则可能会出现以下错误,导致您的网站挂起或提示“500 Internal Server Error”消息。检查/ etc / httpd / log / error_log时,您会看到类似的内容:
[warn] .. mod_fcgid:在40秒内读取数据超时,... [错误] ..脚本标题的提前结束:index.php ...
这是因为mod_fcgid在处理解析数据时已达到超时。所以我们需要增加一些相应的值:
登录WHM&gt; Apache配置&gt;包含编辑器&gt;发布VirtualHost Include&gt;所有
复制并粘贴以下代码: FcgidProcessLifeTime 8200 FcgidIOTimeout 8200 FcgidConnectTimeout 400 FcgidMaxRequestLen 1000000000
重启apache *