我有 Apache 2.2 PHP 5.3 MySQL 5.5 应用程序。page1.php 上的表单接受用户输入。使用 GET 将值传递给 page2.php。page2.php 上的 PHP 脚本运行 MySQL 查询并显示结果。根据用户输入参数查询可能会运行 3 到 900 秒。
在我的测试中,运行 < 300 秒的任何查询的结果都显示正常。更长的运行查询在服务器上可以正常完成(我看到 CPU 负载在 500 秒后从 90% 变为 0%),但浏览器没有显示结果并继续显示在状态栏中“从 my.host.org 传输数据。 ..”
此时,当我尝试在同一浏览器(Firefox)的新实例中打开我的应用程序的任何页面时,它会在选项卡标题上显示“正在连接...”,并在“等待 my.host.org ...”中显示状态栏。此时在其他浏览器(IE)中打开我的应用程序的任何页面都可以。
以下是我迄今为止更改/设置的设置,但它们没有帮助。任何想法都会有所帮助。谢谢你。
apache2.conf:
Timeout 300 -> 1800
php.ini:
user_ini.cache_ttl = 300 -> 1800
max_execution_time = 30 -> 1800
default_socket_timeout = 60 -> 1800
mysql.connect_timeout = 60 -> 1800
page2.php:
ignore_user_abort(1);