【问题标题】:Alternative way of uploading files when unable to alter php.ini settings无法更改 php.ini 设置时上传文件的替代方法
【发布时间】:2012-01-18 17:11:19
【问题描述】:

我在共享服务器上有一个站点主机,主机不允许我更改 php.ini 文件。

如果上传时间超过 60 秒,则会出错,因为 max_input_time 设置为 60,并且无法以任何我能想到的方式进行更改。 upload_max_filesize 也设置为 100,这也可能导致问题。

有没有其他方法可以解决这个问题?

【问题讨论】:

  • 您探索过哪些其他方法可以覆盖每个目录的 ini 设置?是否可以进行 CGI 设置?
  • 您可以随时上传到单独的服务器..
  • 我尝试了一个 .htaccess 文件,并将代码添加到 php 页面本身以覆盖 - ini_set("max_input_time", "1000000");

标签: file-upload php


【解决方案1】:

要明确的是,您的主机不允许您拥有自己的本地 php.ini 文件,或者您的意思是他们不会在服务器的主 php.ini 文件中更改它?

如果允许您使用本地 php.ini 文件,那么您可以覆盖该指令。

【讨论】:

  • 在哪里放置本地 php.ini 文件以进行测试?
  • 放到脚本所在的目录下。
  • 我的主机告诉我,解决这个问题的唯一方法是升级我的主机,因为 PHP 只运行主配置文件。
  • 除非您目前正在获得免费托管,否则我想我会找到一个新的主机。周围有太多优秀的房东,他们付了钱却没有得到应有的待遇。
  • 一点也不。取决于每个托管公司的管理员的经验水平。业务新手可能不知道如何设置它,而成熟的托管公司将拥有为其客户启用它所需的经验。
【解决方案2】:

仅限有经验的用户

通常可以将自定义 PHP 解释器设置为 CGI 处理程序。有很多警告,它很容易成为一个安全问题。在这样做之前,学习很重要:

http://php.net/manual/en/security.cgi-bin.php

这样的解释器最好不要进入/cgi-bin/,或者被RewriteRules 覆盖,只能由Apache Action 处理程序调用。

但这允许为该解释器托管一个自定义php.ini。如果它不接受它在同一个目录中,解释器的外壳包装器会做。 How to override PHP configuration when running in CGI mode

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多