我正在尝试通过phpMyAdmin导出一个大型数据库。我吉普车得到一个错误,脚本停止了,因为达到了600秒的最大执行时间(或类似的东西)。我尝试将max_execution_time
中的php.ini
设置为0和-1。我可以在phpinfo()
中看到更改生效,但我仍然收到错误。另一个问题是,最初(在我将其改为0之前)它也不是600。这是180! 600套在哪里?
答案 0 :(得分:3)
查看是否在某处手动设置。假设您使用的是UNIX类型平台:
find /path/to/root/of/phpmyadmin -name "*.php" -print0 | xargs -0 grep "max_execution_time"
答案 1 :(得分:1)
您的Web服务器可能有其他超时配置,也可能会中断PHP执行。 Apache有一个Timeout指令,IIS有一个CGI超时功能。有关具体详细信息,请参阅Web服务器文档。
不要使用phpMyAdmin导入大文件。尝试使用mysql CLI导入数据库的转储。将SQL文件传输到服务器并使用PHP脚本(如shell_exec或system
)在服务器上执行以下操作mysql --user = user --password = password database< database_dump.sql。
当然数据库必须存在,并且您提供的用户应具有更新数据库所需的权限。
答案 2 :(得分:-1)
PHP默认使用以下三个指令在所有php脚本上放置资源限制:
=> max_execution_time
:每个脚本的最长执行时间,以秒为单位(默认为30秒)
=> max_input_time
:每个脚本可用于解析请求数据的最长时间(60秒)
=> memory_limit
:脚本可以使用的最大内存量(默认为8MB)
您的PHP脚本超时可能是因为资源限制。您需要做的就是设置新的资源限制,以便脚本执行。
如果这也不起作用,您可以使用set_time_limit(N)
函数进行设置,该函数以秒为单位设置时间限制。