为单个站点使用自定义 PHP.INI。 Windows 2003、64 位、IIS7.5、PHP 5.3.6
Posted
技术标签:
【中文标题】为单个站点使用自定义 PHP.INI。 Windows 2003、64 位、IIS7.5、PHP 5.3.6【英文标题】:Using a custom PHP.INI for a single site. Windows 2003, 64bit, IIS7.5, PHP 5.3.6 【发布时间】:2012-05-07 10:02:19 【问题描述】:我在单个站点上有一个 php 脚本,它要求我将最大上传大小设置得相当高。我不想在全球范围内这样做。
根据 PHP 文档,我无法使用 ini_set
设置某些变量的值,例如 post_max_size
、max_file_uploads
或 upload_max_filesize
。我在这里看到了许多在 UNIX 机器上运行 PHP 或在运行 Apache 的 Windows 上运行的解决方案,但没有一个使用 IIS 对我来说很清楚。
我的理解是有一种方法可以让我有一个自定义的 php.ini 文件来覆盖特定的 php.ini 值。
理想情况下,我希望文件夹中有一个 php.ini 文件,其中包含一个看起来像这样的脚本:
[PHP]
post_max_size = 200M
max_file_uploads = 5
upload_max_filesize = 200M
如果不在我的服务器上全局设置值,我如何才能做到这一点?
【问题讨论】:
不确定 IIS,但在 Apache 服务器上,您可以在 .htaccess 文件中指定设置。示例:php_value upload_max_filesize 32M
@Brad ;好问题:我如何确定?
@Brad 我已经安装了 CGI,并且在 IIS 的根目录中,我有“FastCGI 设置”面板。
@HumanBacon,你是如何设置 PHP 的?当您安装 PHP 时,您会以一种或另一种方式设置它。我问的原因是,如果我没记错的话,您可以指定不同的命令行来为不同的站点运行脚本。如果是这种情况,您可以在命令行上指定不同的 INI 文件。 phpinfo()
可能会告诉你,但如果我没记错的话,它只是说 CGI/FastCGI,而不是其中一个。我已经有一段时间没有使用 IIS了……我不完全记得了。
@HumanBacon,嗯,抱歉,我不知道如何使用 FastCGI 来做到这一点。我确信这是可能的。希望其他人知道答案。您可以考虑将此问题移至 ServerFault.com。
【参考方案1】:
您可以使用 PHPRC 环境变量为每个网站设置单独的 ini 文件,如此处所述http://php.net/manual/en/configuration.file.php。
这里有一篇关于如何为 IIS 6 和 7 设置它的文章。
http://learn.iis.net/page.aspx/745/enable-per-site-php-configuration-on-iis-60-and-iis-7-and-above/
希望对你有帮助
【讨论】:
以上是关于为单个站点使用自定义 PHP.INI。 Windows 2003、64 位、IIS7.5、PHP 5.3.6的主要内容,如果未能解决你的问题,请参考以下文章
具有自定义 php.ini 文件设置的 Docker Wordpress 容器