AWS EC2中修改php.ini配置后不生效,无法上传大于8M文件
针对Ubuntu 20.04 LTS上的LAMP栈,修改php.ini后Apache环境的文件上传限制仍停留在8M的问题,按以下步骤排查:
确认php.ini的实际参数配置
打开/etc/php/7.4/apache2/php.ini,检查以下参数是否正确设置(注意不要保留注释符号;前缀,单位格式统一,比如20M或20MB均可):post_max_size = 20M upload_max_filesize = 20M memory_limit = 64M max_execution_time = 300保存后再次通过
test.php的phpinfo()验证这些参数的实际值,确认是否被其他配置覆盖。检查Apache的PHP模块配置
查看Apache的PHP模块配置文件/etc/apache2/mods-available/php7.4.conf,以及网站对应的虚拟主机配置文件(位于/etc/apache2/sites-available/目录下,比如000-default.conf),确认是否存在php_value或php_admin_value指令覆盖了上传限制,例如:php_value post_max_size 8M若有这类配置,修改为目标值后保存。
排查网站目录的.htaccess文件
检查网站根目录或上传页面所在目录下的.htaccess文件,是否包含类似以下的配置——这类配置会优先于php.ini生效:php_value upload_max_filesize 8M php_value post_max_size 8M若存在,修改为所需的限制值。
确认Apache服务重启状态
执行以下命令重启Apache,并检查服务是否正常启动:sudo systemctl restart apache2 sudo systemctl status apache2若状态显示异常(如failed),查看日志
/var/log/apache2/error.log排查启动失败原因。检查php.ini文件权限
确保Apache运行用户(通常是www-data)能读取php.ini文件:ls -l /etc/php/7.4/apache2/php.ini权限应至少为
-rw-r--r--(644),若权限不足,执行以下命令修正:sudo chmod 644 /etc/php/7.4/apache2/php.ini检查额外的PHP配置文件
查看/etc/php/7.4/apache2/conf.d/目录下的所有.ini文件,这些文件会覆盖主php.ini的配置,确认其中是否有设置上传限制的内容。
内容的提问来源于stack exchange,提问作者FroddeB

