我已经尝试了两天,通过php将文件上传的最大文件大小从默认的2M增加到10M。我更改phpinfo引用的php.ini文件无济于事。
我看到一些文章说明php.ini文件的第109行周围存在语法错误,但我不知道语法错误是什么或如何纠正它。用户表示,因为upload_max_filesize是在配置文件中的此错误之后,它将被忽略。请帮忙。
答案 0 :(得分:58)
This message帮助了我:
服务器上安装的最新php版本不允许更改全局设置(例如执行时间,最大上载文件大小,最大帖子文件大小等)。
请执行以下步骤解决问题:
phpinfo();
phpinfo()
输出中搜索“扫描此目录以获取其他.ini文件”文字/etc/php5/apache2/conf.d
/etc/php5/apache2/conf.d/user.ini
)档案/etc/php5/apache2/conf.d/user.ini
post_max_size = 90M
upload_max_filesize = 50M
更新2018.06
如果您使用的是 nginx + php-fpm ,您的路径将会是这样的(在路径中使用您的php版本)。使用以下命令创建文件:
nano /etc/php/7.0/fpm/conf.d/user.ini
.ini
目录中有很多其他conf.d
个文件。如果您希望您的配置是最后一个 - 使用前缀。
例如:30-user.ini
。
创建文件后,不要忘记重新启动fpm
:
sudo service php7.0-fpm restart
答案 1 :(得分:15)
如果php.ini位于/etc/php/7.*/fpm/php.ini
之类的某个位置 - 然后根据需要进行修改,而不是sudo service apache2 restart
使用service php7.1-fpm restart
答案 2 :(得分:4)
你重启了apache2吗?
sudo service apache2 restart
新的php.ini配置仅在apache启动时应用。
答案 3 :(得分:3)
您可能还需要增加帖子的最大尺寸:
post_max_size=10M
试试。
答案 4 :(得分:1)
service apache2 reload
需要以root身份运行,即使没有root 也不会失败。正在运行sudo service apache2 reload
。这是在Ubuntu 14.04。
答案 5 :(得分:1)
也许您找到php.ini文件的2个目录。
如果您搜索php.ini使用php --ini
之类的cli的地方,也许它会显示/etc/php/7.1/cli/php.ini
,但是在php-fpm
中找到/etc/php/7.1/fpm/php.ini
的另一个文件夹,您需要创建新文件夹像conf.d
这样的/etc/php/7.1/fpm/conf.d/30-user.ini
文件夹下的ini文件,如果您需要将ini文件添加到cli命令行,则需要将您的ini文件放在/etc/php/7.1/cli/conf.d/30-user.ini
下
答案 6 :(得分:1)
我有一个非常奇怪的经历,引起了同样的症状。
重点是我的php.ini文件包含一个旧式注释(以hashmark开头),从php 7.0开始,该注释不再可用。错误的注释使ini解析器感到困惑。
解决方案是用分号(;)替换所有#个注释符号,这是编写注释的唯一标准方法。
有关更多详细信息,请在此处阅读我的评论:
答案 7 :(得分:1)
在阅读了@Jekis的出色答案后,我为Fedora发行版解决了相同的问题(是同一回事,只是路径不同):
在评估Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’
的输出后,我发现其他phpinfo();
文件存储在.ini
目录中
在/etc/php.d
中,我创建了一个新文件-/etc/php.d
。我添加了40-user.ini
和其他想要更改的设置
然后我重新启动了apache(httpd)
然后获取更改。
答案 8 :(得分:0)
我遇到了完全相同的问题,并使用以下步骤解决了该问题:
在服务器上运行以下命令时
php --ini
我得到了php.ini的以下路径
Loaded Configuration File: /etc/php/7.0/cli/php.ini
我继续在此php.ini文件中进行更改,但所有更改均未生效。然后,我在/ var / www / html目录中创建了一个名为info.php的文件,并添加了以下代码
<?php
phpinfo();
?>
然后,我在浏览器http://example.com/info.php中打开了文件,在那里看到实际加载的php.ini文件位于其他目录中
Loaded Configuration File /etc/php/7.0/apache2/php.ini
当我对该目录内的php.ini文件进行更改时,所有更改均生效。总之,请确保您运行phpinfo();。函数以确保php使用的实际php.ini文件。
答案 9 :(得分:0)
对 Ubuntu php.ini 的更改不会生效。
在使用 Nginx 1.18.0 的 Ubuntu 18.04 中解决此问题的步骤。
php -v
sudo php-fpm7.4 -t
(更改为您正在运行的版本)。sudo systemctl restart php7.4-fpm
(更改为您正在运行的版本)。我的结果: PHP:语法错误,意外的 END_OF_LINE,在第 2 行的 /etc/php/7.4/fpm/php.ini 中需要“=”
在我的情况下,它是 [PHP] 之前的“w”,当我使用 Ctrl w 使用 nano 进行搜索时一定发生过。