php.ini 中 upload_max_filesize、memory_limit 和 post_max_size 的更改不受影响

php.ini 中 upload_max_filesize、memory_limit 和 post_max_size 的更改不受影响

我正在尝试增加upload_max_filesize等等以便使用 phpMyAdmin 导入更大的文件。

我已经更改php.ini并重新启动了 Apache。我可以在 phpMyAdmin 导入屏幕上看到更改(其中提到最大值:300MiB),但是当我尝试导入 50MB 文件时,我收到了警报:

No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

知道这是怎么回事吗:一方面看起来变化已经生效,但另一方面它却不起作用......

答案1

解决方案复制自关联

如果您正在运行自己的 Ubuntu 服务器,您可能会遇到 php 脚本中的最大文件大小上传限制,默认设置为 2Mb。为了改变这种情况,我们首先看看实际大小是多少。在 /var/www(标准 www 目录)中创建一个名为 info.php 的文件,内容如下:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

然后通过浏览到此文件本地主机/info.php(如果需要,用服务器名称替换 localhost)并查找以下行

upload_max_filesize 2M 2M

这将显示实际的最大文件大小。为了更改它,请打开到服务器的 ssh 连接,并使用以下命令编辑文件 /etc/php5/apache2/php.ini

sudo nano /etc/php5/apache2/php.ini

使用 Ctrl-W 搜索“upload_max_filesize”,并将“2M”更改为“20M”。使用 Ctrl-O 保存文件,然后使用 Ctrl-X 退出。使用以下任一方式重新启动 Apache 服务器

sudo /etc/init.d/apache2 restart

或者

sudo service apache2 restart

并重新启动 fpm:

sudo service php7.4-fpm restart

并再次访问本地主机/info.php检查最大文件大小是否已更改。如果您使用的不是 php 7.4,则显然需要将数字部分替换为您使用的 php 版本。

答案2

这是我的解决方案:https://stackoverflow.com/questions/8853301/phpmyadmin-file-import-error

我刚刚在自己的开发机器上修复了这个问题。在 /etc/phpmyadmin/apache.conf 中,您可以看到 phpmyadmin 尝试存储临时文件的位置,例如:

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

确保运行 apache 的用户可写入此文件,并且有可用空间。就我而言,在我的开发机器上,我以自己的用户身份运行 apache,而不是以普通的 www-data 或 apache 用户身份运行。我的用户无法写入该 tmp 目录。

答案3

还有另外两种方法可以更改覆盖php.ini设置。

  1. 使用.user.ini仅适用于php-fpm):

    警告:如果您将 PHP 作为 Apache 模块运行、从命令行运行或使用内置服务器运行,则不会处理 .user.ini 文件。

    在您网站的主目录中创建.user.ini文件并在其中添加以下行:

    upload_max_filesize=300M
    post_max_size=300M
    memory_limit=300M
    
  2. 使用.htaccess文件或虚拟主机的配置文件(仅适用于libapache2-mod-php):

    警告:此解决方案不适用于 PHP FPM。

    如果您将 PHP 作为 Apache 模块运行,那么也可以php.ini从 Apache 的 vhost 配置或本地.htaccess文件中覆盖设置。

    例如,您可以将这些添加到您的.htaccess

    php_value upload_max_filesize 300M
    php_value post_max_size 300M
    php_value memory_limit 300M
    

答案4

我在 Ubuntu 上安装了 WordPress,在 Ubuntu 上运行的 PHP 版本 8.1、Apache2 上遇到了这个问题。

解决该问题的步骤:

  1. 通过登录到您的服务器ssh
  2. cd /etc/php/8.1/apache2(将 8.1 替换为您的 php 版本)
  3. nano php.ini
  4. Ctrl+W并查找以下行:upload_max_filesize
  5. 使用所需限制进行更新,例如:upload_max_filesize = 512M
  6. 类似地寻找post_max_size并更新所需值。
  7. Ctrl+X然后按下Y以在 nano 编辑器中保存
  8. 运行命令:(sudo systemctl restart apache2重新启动Apache2)

再次检查限制,它将显示新设置的限制。

相关内容