更改 AWS EC2 上的值时 PHP.ini 未更新

问题描述 投票:0回答:3

我有一段时间遇到问题,无法上传任何大于 8 兆字节的内容。我已经缩小范围,它是实际的 php.ini 文件,它没有更新。

到目前为止,我已经找到了 3 个不同的 php.ini 文件,所有这些文件我都将

post_max_size
更改为大于默认的 8 MB。我也尝试过更改其他值,但没有任何更新。就卡在8M

三个不同的文件位于

/etc/php/7.4/apache2/php.ini

/etc/php/7.4/cli/php.ini

/etc/php/7.4/fpm/php.ini

当我将

test.php
添加到我的网站并执行
phpinfo()
时。它告诉我加载的
php.ini
文件位于 apache2 文件夹中。

但是,当我在 EC2 实例中执行

php --ini
时,它显示加载的 php 文件位于 cli 文件夹中。就像我说的,我已经编辑了所有内容并仔细检查,所有 3 个
php.ini
都已更改。

通过命令行使用

php -info

检查实际的 php.ini 我发现它实际上已经接受了更改。我猜这是 CLI php.ini,所以它已经更新了。但不是 apache2 或 fpm 之一。

我尝试过重新启动 apache2 服务。并根据以下内容重新启动 fpm 服务:更改 php.ini 对我的 EC2 实例的 PHP 配置没有影响

但是在我的系统中它被称为

php7.4-fpm
而不是
php-fpm

所以对我来说:
sudo systemctl restart php7.4-fpm.service

没有任何作用。

我可以确认我正在重新启动的服务是我在网站上实时查看的实际服务(或者至少是 apache2)。如果我关闭 apache2 服务,我的网站将停止工作。所以我至少对此有信心。我尝试通过命令行编辑并通过 ftp 下载来查看我编辑过的文件。我的改变一直都很明显,但在实践中并不明显。

我运行的 EC2 实例是

t2.xlarge
,运行:Ubuntu 20.04 LTS (Focal Fossa) LAMP Stack - Linux Apache MySQL/MariaDB PHP

php amazon-web-services apache amazon-ec2
3个回答
0
投票

我找到了问题的解决方案。然而,在互联网上阅读了大量内容后,发现了如上所述的各种解决方案和修复,这有点不传统。我终于找到了 7 年前的东西今天仍然有效!

https://serverfault.com/questions/683026/post-max-size-will-not-change-stuck-at-128m-other-settings-work

OP通过编辑虚拟主机配置解决了这个问题。我做了同样的事情,结果发现这样做实际上改变了网站上用

phpinfo()
显示的 php.ini。为什么会出现这种情况,我不知道,但这是更改特定变量的唯一方法,例如:

post_max_size

upload_max_filesize

memory_limit

因此,就像链接的OP一样,您通常会在 apache 文件夹中的任何位置找到

sites-available/000-default.conf
etc/apache2/sites-available/000-default.conf

在结束标签之前添加此内容

</VirtualHost>
:

php_value post_max_size 16384M
php_value upload_max_filesize 16384M

然后在命令行中重新启动

php-fpm
(在我的例子中称为 php7.4-fpm)和
apache2
服务(我正在使用 EC2 实例连接)

sudo systemctl restart php7.4-fpm
sudo systemctl restart apache2

现在您将在

phpinfo()
中看到它实际上更改了我们在 apache 配置中更改的变量的本地值。

主值仍然是默认值,但站点接受新的本地值作为相关值。


0
投票

在您的实例中使用 apache2 的确切路径。会起作用的。

sudo /etc/init.d/apache2 restart

检查此AWS ec2 中 php.ini 更新的完整指南


0
投票

这件事发生在我身上,我快疯了。 我可以让 php 读取配置更新并重新启动实例。

© www.soinside.com 2019 - 2024. All rights reserved.