跳转到主要内容
tao_3000 提交于 4 July 2013

An AJAX HTTP error occurred. HTTP Result Code: 200 Debugging information follows. Path: http://drupal.example.com:81/install.php?profile=standard&locale=zh-hans&id=2&op=do StatusText: OK ResponseText: Fatal error: Maximum execution time of 30 seconds exceeded in E:\work\php_project\drupal-7.22\includes\database\database.inc on line 2168

Drupal 版本

 

这个问题在网上解决的方案一致都是说在\sites\default\settings.php文件,在最后增加以下两行:
ini_set('memory_limit', '1280M'); //加大php的内存 也可以在php.ini中设置

ini_set('max_execution_time', 200); //加大页面执行时间 php.ini中的默认值是30 (秒)”
看注释我们就明白,这个是治标不治本,反正我怎么改它都还是报错。
其实根本的原因在于:drupal的数据库所有的引擎都是Innodb的,但是我们默认使用的数据库引擎是myisam的
所以我们只需要在mysql\bin\my.ini(linux)中找到
innodb_flush_log_at_trx_commit = 2
上面默认是1,改为2,然后重启Mysql服务
再刷新页面安装就是几秒的事情!
那改了上面这段代码的意思是什么呢,innodb_flush_log_at_trx_commit 值是1。这个值可以取0,1,2,1是最安全的,即使系统完全崩溃也能找回前一秒钟的数据,但也是性能最低的,每秒都要向硬盘写日志数据。设为2是比较适中的。