本地 php.ini 不会覆盖主 php.ini

本地 php.ini 不会覆盖主 php.ini

我似乎无法获取网站根目录 (/var/www) 中的 php.ini 文件来覆盖 /etc/php5/apache2 中的 php.ini 值

/var/www/php.ini 内容

upload_max_filesize = 64M
post_max_size = 64M

phpinfo()同一目录中的页面分别显示了它们的默认值2M8M并且 wordpress 显示最大上传大小为 2MB。

操作系统:Ubuntu 14.04 LTS PHP:5.5.9-1ubuntu4

有什么想法吗?

答案1

如果您使用的是 PHP >= 5.3,那么您可以通过创建一个名为 的文件来覆盖每个目录的配置.user.ini

就您而言,我认为问题在于文件名。

该文件的名称可在主 php.ini 中配置为user_ini.filename。如果将其设置为空字符串,则该功能将被禁用。

答案2

除了“ .user.ini”之外,在生产 Web 服务器/系统范围内执行此操作的另一种方法是创建一个/etc/php/x.x/apache2/conf.d/99-custom_overrides.ini(或类似的名称),以便最后读取它。

(xx = 您当前在 Apache 上使用的 PHP 版本)

只需将您想要覆盖的指令放入该文件并保存即可。
例如:

display_errors = Off
display_startup_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
upload_max_filesize = 8M
post_max_size = 32M

然后重新启动 Web 服务器并重新检查 phpinfo() 网页。检查区域“已解析其他 .ini 文件”看看是否读你的.ini最后。如果您没有看到该文件,则说明您做错了什么,值不会被覆盖。如果看到了,请检查同一页面以查看现在是否已覆盖该值。

phpinfo() 示例显示附加 .ini 解析区域

这样,您就不会在系统文件更新时将其清除。直接编辑“php.ini”是不可取的。

请注意:这是基于 PHP 5.x 或 7.x 的 Debian/Ubuntu 软件包/repo 版本。conf.d如果您自行编译,则需要设置和调整或“扫描目录”区域。

也在这里回答:https://stackoverflow.com/a/39669862/503621

答案3

您也可以通过命令行执行此操作

php --ini
Configuration File (php.ini) Path: /etc/php/7.0/cli
Loaded Configuration File:         /etc/php/7.0/cli/php.ini
Scan for additional .ini files in: /etc/php/7.0/cli/conf.d

答案4

您好,您只需从 Web 服务器目录中打开浏览器中的 phpinfo() 页面即可。

然后记下指出正在加载的 php.ini 文件的源的位置指令,然后以超级用户身份打开它并找到 max_filesize 指令并进行相应设置。

文件部分如下,告诉您要查找和编辑哪个文件。谢谢! 在此处输入图片描述

相关内容