我在PC上托管了一个我无法访问的网站。我有一个上传表单,允许人们上传最大30MB的mp3文件。我的服务器端脚本是用PHP完成的。
每次尝试上传文件时,都会收到错误声明文件超出允许的最大大小,因此我需要增加大小。我在网上的研究建议更改我无法访问的.htaccess
文件,这样就行不通了。其他人建议我应该向我的root添加一个自定义php.ini
文件,但该文件不起作用。还有其他建议吗?
答案 0 :(得分:813)
您需要在php.ini中设置upload_max_filesize
和post_max_size
的值:
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
修改php.ini文件后,需要重启HTTP服务器以使用新配置。
如果你不能改变你的php.ini,那你就不走运了。您无法在运行时更改这些值;在执行到达ini_set
的调用时,上传大于php.ini中指定值的文件将失败。
答案 1 :(得分:135)
您可以通过.htaccess
文件进行更改。
.htaccess
个文件存储在.php
个文件所在的目录中。他们修改该文件夹和所有子文件夹的配置。您只需在您选择的目录中创建.htaccess
文件即可使用它们(如果存在则修改它)。
以下内容可以让您增加上传限制(如果服务器提供商允许通过.htaccess
更改PHP配置)。
php_value upload_max_filesize 40M
php_value post_max_size 42M
答案 2 :(得分:55)
我遇到了同样的问题,我创建了一个.user.ini文件并将其放在上传脚本所在的目录中。在该文件中,我设置了以下两个值:
upload_max_filesize = 40M
post_max_size = 40M
它对我很有用!
答案 3 :(得分:51)
您也可以使用ini_set function(仅适用于5.3以下的PHP版本):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
就像@acme说的那样,在php 5.3及以上版本中,这个设置是PHP_INI_PERDIR指令,因此不能使用ini_set设置它们。您可以改用user.ini。
答案 4 :(得分:42)
要找到ini文件,请先运行
php -i | grep -i "loaded configuration file"
然后打开文件并更改
upload_max_filesize = 2M
post_max_size = 2M
用您想要的尺寸替换2M,例如100M。
我有一篇关于更多信息的博客文章http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress
答案 5 :(得分:38)
我过去也有同样的问题..我通过.htaccess
文件
当您通过.htaccess
对php configration进行更改时,您应该将配置放入
IfModule
标记,内部服务器错误将会出现。
这是一个例子,它适用于我:
<IfModule mod_php5.c>
php_value upload_max_filesize 40M
php_value post_max_size 40M
</IfModule>
如果你想了解更多,这是php referance。 http://php.net/manual/en/configuration.changes.php
答案 6 :(得分:12)
我通过在PHP文件脚本所在的目录中创建一个名为.user.ini
的文件解决了这个问题(这意味着此目录中的任何PHP脚本都会获得新的文件大小限制)
.user.ini
的内容是:
upload_max_filesize = 40M
post_max_size = 40M
答案 7 :(得分:5)
我遇到了同样的问题。我尝试了三种通常建议的方法:
无论哪个解决了我的问题。我正在使用godaddy并遇到了一个建议的解决方案:
瞧!现在您有不同的最大上传文件大小:)
答案 8 :(得分:4)
好吧,我想在这里加2美分。
我正在使用共享虚拟主机,我多次解决这个问题,试图自己解决它,但无济于事。
最后,我设法通过检查各种网络资源并联系我的托管服务提供商来解决它。我的问题是“如何在共享虚拟主机中更改php值memory_limit
?”,“如何在共享虚拟主机中更改php值upload_max_filesize
?”,“如何更改php值{{1}在共享虚拟主机中?“,”如何在共享虚拟主机中更改php值max_input_vars
?“,”如何在共享虚拟主机中更改php值max_execution_time
?“通过配置或更改php.ini或max_input_time
文件等等。我试图改变它们但问题出现了。最后我联系了我的托管服务提供商,事实证明我将我的php设置为native,他们将其更改为php 5.6,这是他们的答案:
“您的PHP设置为'本机'模式,这意味着您无法覆盖 那些价值观。我已经把你变成了'5.6',所以你应该很好 去“。
之后我通过ftp Filezilla连接了我的网站,也不要忘记让你的ftp服务显示隐藏文件,你的本地计算机也这样做,因为.htaccess
文件隐藏在我的本地笔记本电脑中在我的网站上。它在public_html文件夹中可用,我刚下载它并将以下代码添加到文件的末尾,然后将其上传回服务器:
.htaccess
暂时一切正常,如果你们中的任何一个克服了一些问题,请写在这里警告我,以便我可以更改上面显示的代码。顺便说一下,我还上传了一些显示变化的图片。
还有一件事我差点忘了在你的共享虚拟主机服务上提到ZipArchive安装,我通过我的cpanel进入php设置,点击php选择器扩展然后点击zip部分,这就是所有。< / p>
感谢。
PS:我对良好做法持开放态度,如果你看到任何不良做法,请告诉我,我会尝试改变它们。感谢。答案 9 :(得分:3)
非这些解决方案对我有用!! (默认情况下已设置为32M)。大多数情况下问题是max_allowed_packet
我正在使用localhost并使用MAMP
。
这是解决方案;
<强> 1。如果您没有my.ini
添加强>
--max_allowed_packet=168435456
要强>
...\MAMP\bin\startMysql.sh
<强> 2。如果你有my.ini
下的强>
[mysqld]
添加强>
max_allowed_packet=100M
完成!强>
答案 10 :(得分:3)
也许这应该是对@ seanb123和@Fredrick Gauss评论他评论的评论,但对于我在Drupal 8.1中使用PHP 7,我需要修改的文件位于:
/etc/php/7.0/apache2/php.ini
我修改了其他四个php.ini文件,包括我的系统名为&#34;加载配置文件&#34; (php -i | grep -i "loaded configuration file"
)和在info.php页面上找到的那个,但没有一个帮助。从2012年开始,在网站上发现了发现正确路径的关键。他们说路径"/etc/php5/apache2/php.ini"
甚至已经被弃用了,但它给了我一个线索,在哪里可以找到它。对于PHP7,它与PHP5略有不同,但概念是相同的。
也许这会帮助一些像我一样无助的笨蛋。
话虽如此,在我的案例中对OP的回答是,拥有管理员权限的人必须这样做。
帮助我的网站:http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
这也在这里解决:Import file size limit in PHPMyAdmin
编辑: 我给自己的笔记的全文:
要更改最大上传大小,请修改upload_max_filesize和 [如果需要?] /etc/php/7.0/apache2/php.ini中的post_max_size(或者 旧版本:/etc/php5/apache2/php.ini)
/etc/init.d/apache2 restart
再次编辑:
由于您要导入大文件,因此可能需要更改处理它们的超时。在我的例子中,文件命名为&#34; config.default.php&#34;在/usr/share/phpmyadmin/libraries/config.default.php
找到变量$cfg['ExecTimeLimit'] = 300;
例如,我将我改为900以获得巨额进口。
之后你需要重启apache
答案 11 :(得分:3)
我多次注意到站点机智共享主机不允许更改php.ini文件中的设置。一个也根本不能包装.htaaccess文件。在这种情况下,人们可以尝试以下事情
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
答案 12 :(得分:3)
答案有点不完整,你要做的3件事
在你的php安装的php.ini中(注意:取决于你是想要它用于CLI,apache还是nginx,找到合适的php.ini进行操作。对于nginx,它通常位于/etc/php/7.1/fpm
其中7.1取决于你的版本。对于apache通常/etc/php/7.1/apache2
)
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
或设置其他值。如果您安装了apache,则重新启动/重新加载apache;如果您使用nginx,则重新启动/重新加载apache for php-fpm 。
答案 13 :(得分:2)
由于在全球范围内进行更改有些冒险,因此我尝试为单个脚本 big_file_upload.php
增加最大上传值。由于某些原因,ini_set
并没有帮助。经过一番研究,我想出了这个。将其放在.htaccess
中(除非通过AccessFileName
更改了名称)
<If "%{REQUEST_URI} == '/subfolder/big_file_upload.php'" >
php_value upload_max_filesize 200M
php_value post_max_size 200M
</If>
<Else>
php_value upload_max_filesize 1M
php_value post_max_size 1M
</Else>
为我工作。
答案 14 :(得分:1)
有了18753933 repeats: 2
18771982 is repeated: 1
,一切都很简单
WAMP
图标> PHP> PHP设置> upload_max_filesize = nM> n =(2M,4M,8M,16M,32M,64M,128M,256M,512M或选择(自定义))。
服务会自动重新加载。
但是,如果您确实对服务器没有访问权限,则可能需要探索编写WAMP
API。
答案 15 :(得分:0)
我也遇到了这个问题,并通过在/etc/nginx/nginx.conf
中设置此设置来解决了该问题
client_max_body_size 0;
0,如无限制。
而且,如果您有一个使用nginx运行的反向代理,则该服务器也应具有此设置(这是我在这里遇到的问题)
答案 16 :(得分:0)
如果您编辑了正确的php.ini文件,重新启动了Apache或Nginx,但仍然无法正常工作,那么您也必须重新启动 php-fpm :
sudo service php-fpm restart
答案 17 :(得分:0)
打开 php.ini 文件。
在php.ini中搜索upload_max_filesize等关键字。
然后更改文件的大小。
upload_max_filesize = 400M
需要更改最大帖子值。
post_max_size = 400M
答案 18 :(得分:0)
花了几个小时后,我几乎浏览了所有帖子,但没有运气。并最终通过这些步骤解决了问题。这可能是奇怪的解决方案,但对我有用。
第一步:在/etc文件夹或/文件夹下运行cmd找到php.ini文件:
grep -rl "post_max_size" | xargs ls -lrth
这里我使用 post_max_size 关键字来搜索 /etc 文件夹中的“php.ini”文件,但在某些系统中,您可以在 /var/www/html 或 /var/www/wordpress 文件夹中找到它。>
我们在互联网上有多个帖子,好像 php.ini 文件不存在于 WordPress 文件夹中,那么您可以创建,但在我的情况下不起作用。
第 2 步:
编辑 php.ini 文件并像这样更改值。
post_max_size = 100M
upload_max_filesize = 100M
在上面你可以根据你的要求设置任何值。
第 3 步:
重启httpd或Nginx或apache和PHP服务,或者按照设置重启web服务。
对我来说 httpd 和 php-fpm 服务重启在 centos 8 中工作:
service httpd restart
service php-fpm restart