我有一段时间遇到问题,无法上传任何大于 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
我尝试过重新启动 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
我找到了问题的解决方案。然而,在互联网上阅读了大量内容后,发现了如上所述的各种解决方案和修复,这有点不传统。我终于找到了 7 年前的东西今天仍然有效!
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 配置中更改的变量的本地值。
主值仍然是默认值,但站点接受新的本地值作为相关值。
这件事发生在我身上,我快疯了。 我可以让 php 读取配置更新并重新启动实例。