【问题标题】:Overriding php.ini on server覆盖服务器上的 php.ini
【发布时间】:2012-02-07 09:19:53
【问题描述】:

我有一个允许用户上传图片的页面。

但当用户尝试上传较大的图片时,它会返回 500 错误。

以下代码...

<?php echo ini_get("upload_max_filesize"); 
echo ini_get("post_max_size"); 
echo ini_get("max_input_time");
echo ini_get("max_execution_time");
?>

...返回:

100M
100M
60
3600

据此猜测,这是导致问题的最大输入时间,因为我已使用 100mb 以下的文件进行测试,但上传时间超过 60 秒。

我的主机无法访问 php.ini 文件,所以我可以覆盖这些设置吗?我已经尝试添加一个 htaccess 文件,但我不确定我是否将它放在正确的位置。

【问题讨论】:

    标签: .htaccess php execution-time


    【解决方案1】:

    将 .htaccess 文件放入您网站的根文件夹(您的 php 脚本所在的位置)并添加以下值:

    php_value upload_max_filesize 100M
    php_value post_max_size 100M
    php_value max_execution_time 200
    php_value max_input_time 200
    

    当然,您可以设置其他大小和时间限制。应该可以的。

    【讨论】:

    • 好的,所以我这样做并设置了疯狂的高值以确保仍然没有快乐。会不会是别的东西?
    • 如果您使用的是共享主机(而且您很可能是因为您无法更改 php.ini),您的主机提供商可能不允许使用 .htaccess 覆盖 php.ini .在这种情况下,只需询问他们如何做到这一点。
    • 另外,在你的 php 文件中,你能不能输入:ini_set('upload_max_filesize', '20M');等等...只是为了确保您没有将 .htaccess 放在错误的位置。
    • 我尝试了您的最后一个建议,但似乎我只能使用此方法更改 max_execution_time。
    • 您的共享主机可能不允许任何其他更改。你应该联系他们并询问如何做到这一点。
    【解决方案2】:

    设置 php ini 指令取决于服务提供商配置的性质。运行phpinfo() 脚本来查看您的配置。如果您的提供商在用户 UID 上下文中使用 suPHP 启动 PHP,那么它可能会在脚本目录中查找 php.ini。 This 是我的托管服务提供商的工作方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多