我有一个我无法访问的PC上托管的网站 . 我有一个上传表单,允许人们上传最大30MB的mp3文件 . 我的服务器端脚本是用PHP完成的 .
每次我尝试上传文件时,都会收到一条错误,声称该文件超出了允许的最大大小,因此我需要增加大小 . 我在网上的研究建议更改我无法访问的 .htaccess 文件,这样就行不通了 . 其他人建议我应该在我的root上添加一个自定义的 php.ini 文件,这个文件不起作用 . 还有其他建议吗?
.htaccess
php.ini
您需要在php.ini中设置 upload_max_filesize 和 post_max_size 的值:
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服务器才能使用新配置 .
如果你可以't change your php.ini, you'运气不好 . 您无法在运行时更改这些值;上传文件大于php.ini中指定的值将在执行到达 ini_set 时失败 .
ini_set
见Description of core php.ini directives .
您可以通过 .htaccess 文件进行更改 .
.htaccess 文件与 .php 文件存储在同一目录中 . 他们修改该文件夹和所有子文件夹的配置 . 您只需在您选择的目录中创建 .htaccess 文件即可使用它们(如果存在则修改它) .
.php
以下内容应该可以增加上传限制(如果服务器提供程序允许通过 .htaccess 更改PHP配置) .
php_value upload_max_filesize 40M php_value post_max_size 42M
我有同样的问题,我创建了一个.user.ini文件,并将其放在上载脚本所在的目录中 . 比在该文件中我设置这两个值:
upload_max_filesize = 40M post_max_size = 40M
它对我很有用!
您也可以使用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 .
要找到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
我过去有同样的问题..我通过 .htaccess 文件修复它
当您通过 .htaccess 对php configration进行更改时,您应该将配置放在 IfModule 标记中,否则将出现 Internal server error .
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
我通过在PHP文件脚本所在的目录中创建一个名为 .user.ini 的文件来解决此问题(这意味着此目录中的任何PHP脚本都会获得新的文件大小限制)
.user.ini
.user.ini 的内容是:
好吧,我想在这里加2美分 .
我正在使用共享虚拟主机,我多次解决这个问题,试图自己解决它但无济于事 . 最后,我设法通过检查各种网络资源并联系我的托管服务提供商来解决它 . 我的问题是“如何在共享虚拟主机中更改php值 memory_limit ?", "如何在共享虚拟主机中更改php值 upload_max_filesize ?", "如何在共享虚拟主机中更改php值 max_input_vars ?", "如何在共享虚拟主机中更改php值 max_execution_time ?", "如何在共享虚拟主机中更改php值 max_input_time ?“通过配置或更改php.ini或 .htaccess 文件以及更多内容 . 我试图改变它们但问题出现了 . 最后我联系了我的托管服务提供商,事实证明我将我的php设置为native,他们将其更改为php 5.6,这是他们的答案:
memory_limit
max_input_vars
max_execution_time
max_input_time
“你的PHP被设置为'本机'模式,这意味着你无法覆盖这些值 . 我已经把你改成'5.6'所以你应该好好去 . ”
之后我通过ftp Filezilla连接我的网站,也不要忘记让你的ftp服务显示隐藏文件,并且你的本地计算机这样做,因为 .htaccess 文件隐藏在我的本地笔记本电脑和我的网站中 . 它在public_html文件夹中可用,我刚下载它并将以下代码添加到文件末尾,然后将其上传回服务器:
php_value memory_limit 256M php_value post_max_size 256M php_value upload_max_filesize 64M php_value max_input_vars 1800 php_value max_execution_time 300 php_value max_input_time 300
一切都在暂时正常工作,如果你们中的任何一个克服了一些问题,请写在这里警告我,以便我可以更改上面显示的代码 . 顺便说一下,我还上传了一些显示变化的图片 .
还有一件事,我差点忘了在你的共享虚拟主机服务上提到ZipArchive安装,我通过我的cpanel进入php设置,点击php选择器扩展然后点击zip部分来管理这个要求,就是这样 .
谢谢 .
PS:我对良好的做法持开放态度,如果你看到任何不良做法,请告诉我,我会尝试改变它们 . 谢谢 .
我有同样的问题 . 我尝试了三种通常建议的方法:
的functions.php
没有,如果哪个解决了我的问题我正在使用godaddy,并遇到了一个建议的解决方案:
到 Web Hosting ,然后 Manage
在 Software 下选择 Select PHP version
在表格的右上角选择 Switch to PHP Options ,字体颜色为:蓝色
在最底部,您可能会有 upload_max_filesize = 2M
现在,随时改变它
请务必点击 Save 按钮!
现在转到您的wp-admin面板,选择 Media 然后 Add
瞧!现在你有一个不同的最大上传文件大小:)
也许这应该是对@ seanb123和@Fredrick Gauss评论他评论的评论,但对于我在Drupal 8.1中使用PHP 7,我需要修改的文件位于:
/etc/php/7.0/apache2/php.ini
我修改了其他四个php.ini文件,包括我的系统名为"Loaded Configuration File"( php -i | grep -i "loaded configuration file" )和在info.php页面上找到的文件,但没有一个帮助 . 从2012年开始,在网站上发现了发现正确路径的关键 . 他们说路径 "/etc/php5/apache2/php.ini" 甚至已经被弃用了,但它给了我一个线索,在哪里可以找到它 . 对于PHP7,它与PHP5略有不同,但概念是相同的 .
"/etc/php5/apache2/php.ini"
也许这会帮助一些像我一样无助的笨蛋 .
话虽这么说,在我的情况下OP的答案将是在盒子上具有管理员权限的人必须这样做 .
帮助我的网站:http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
这也在这里解决:Import file size limit in PHPMyAdmin
编辑:我给自己的笔记的全文:
为了更改最大上传大小,请在/etc/php/7.0/apache2/php.ini(或旧版本:/etc/php5/apache2/php.ini)中编辑upload_max_filesize和[if needed?] post_max_size etc / init.d / apache2 restart
再次编辑:由于您要导入大文件,您可能需要更改处理它们的超时 . 在我的例子中,名为"config.default.php"的文件在 /usr/share/phpmyadmin/libraries/config.default.php 找到,变量 $cfg['ExecTimeLimit'] = 300; 我将我的变更为900以进行大量导入 . 之后你需要重启apache
/usr/share/phpmyadmin/libraries/config.default.php
$cfg['ExecTimeLimit'] = 300;
这些解决方案不适合我! (默认情况下已经设置为32M) . 大多数情况下问题是 max_allowed_packet
max_allowed_packet
我正在使用localhost并使用 MAMP .
MAMP
这是解决方案;
1. If you don't have my.ini
Add
--max_allowed_packet=168435456
To
...\MAMP\bin\startMysql.sh
2. If you have my.ini
Under
[mysqld]
max_allowed_packet=100M
DONE!
很多次我注意到站点机智共享主机不允许更改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);
你需要检查三件事 .
完全在php.ini配置文件中 upload_max_filesize , memory_limit 和 post_max_size .
所有这三个设置都限制了PHP可以提交和处理的最大数据大小 .
通常 post_max_size 和 memory_limit 需要大于 upload_max_filesize .
所以三个变量 total 你需要检查才能绝对肯定 .
答案有点不完整,你需要做三件事
在你的php安装的php.ini中(注意:取决于你是否需要它用于CLI,apache或nginx,找到正确的php.ini来操作 . 对于nginx,它通常位于 /etc/php/7.1/fpm ,其中7.1取决于你的版本 . 对于apache通常 /etc/php/7.1/apache2 )
/etc/php/7.1/fpm
/etc/php/7.1/apache2
post_max_size=500M upload_max_filesize=500M memory_limit=900M
或设置其他值 . 如果您安装了apache,则重新启动/重新加载apache;如果使用nginx,则重新启动/重新加载nginx的 php-fpm .
14 回答
您需要在php.ini中设置
upload_max_filesize
和post_max_size
的值:修改php.ini文件后,需要重新启动HTTP服务器才能使用新配置 .
如果你可以't change your php.ini, you'运气不好 . 您无法在运行时更改这些值;上传文件大于php.ini中指定的值将在执行到达
ini_set
时失败 .见Description of core php.ini directives .
您可以通过
.htaccess
文件进行更改 ..htaccess
文件与.php
文件存储在同一目录中 . 他们修改该文件夹和所有子文件夹的配置 . 您只需在您选择的目录中创建.htaccess
文件即可使用它们(如果存在则修改它) .以下内容应该可以增加上传限制(如果服务器提供程序允许通过
.htaccess
更改PHP配置) .我有同样的问题,我创建了一个.user.ini文件,并将其放在上载脚本所在的目录中 . 比在该文件中我设置这两个值:
它对我很有用!
您也可以使用ini_set function(仅适用于5.3以下的PHP版本):
就像@acme说的那样,在php 5.3及以上版本中,这个设置是PHP_INI_PERDIR指令,所以不能使用ini_set来设置它们 . 您可以改用user.ini .
要找到ini文件,请先运行
然后打开文件并进行更改
用你想要的尺寸替换2M,例如100M .
我有一篇关于更多信息的博客文章http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress
我过去有同样的问题..我通过
.htaccess
文件修复它当您通过
.htaccess
对php configration进行更改时,您应该将配置放在IfModule
标记中,否则将出现 Internal server error .这是一个例子,它对我来说很好:
如果你想了解更多,这是php referance . http://php.net/manual/en/configuration.changes.php
我通过在PHP文件脚本所在的目录中创建一个名为
.user.ini
的文件来解决此问题(这意味着此目录中的任何PHP脚本都会获得新的文件大小限制).user.ini
的内容是:好吧,我想在这里加2美分 .
我正在使用共享虚拟主机,我多次解决这个问题,试图自己解决它但无济于事 . 最后,我设法通过检查各种网络资源并联系我的托管服务提供商来解决它 . 我的问题是“如何在共享虚拟主机中更改php值
memory_limit
?", "如何在共享虚拟主机中更改php值upload_max_filesize
?", "如何在共享虚拟主机中更改php值max_input_vars
?", "如何在共享虚拟主机中更改php值max_execution_time
?", "如何在共享虚拟主机中更改php值max_input_time
?“通过配置或更改php.ini或.htaccess
文件以及更多内容 . 我试图改变它们但问题出现了 . 最后我联系了我的托管服务提供商,事实证明我将我的php设置为native,他们将其更改为php 5.6,这是他们的答案:之后我通过ftp Filezilla连接我的网站,也不要忘记让你的ftp服务显示隐藏文件,并且你的本地计算机这样做,因为
.htaccess
文件隐藏在我的本地笔记本电脑和我的网站中 . 它在public_html文件夹中可用,我刚下载它并将以下代码添加到文件末尾,然后将其上传回服务器:一切都在暂时正常工作,如果你们中的任何一个克服了一些问题,请写在这里警告我,以便我可以更改上面显示的代码 . 顺便说一下,我还上传了一些显示变化的图片 .
还有一件事,我差点忘了在你的共享虚拟主机服务上提到ZipArchive安装,我通过我的cpanel进入php设置,点击php选择器扩展然后点击zip部分来管理这个要求,就是这样 .
谢谢 .
PS:我对良好的做法持开放态度,如果你看到任何不良做法,请告诉我,我会尝试改变它们 . 谢谢 .
我有同样的问题 . 我尝试了三种通常建议的方法:
的functions.php
php.ini
.htaccess
没有,如果哪个解决了我的问题我正在使用godaddy,并遇到了一个建议的解决方案:
到 Web Hosting ,然后 Manage
在 Software 下选择 Select PHP version
在表格的右上角选择 Switch to PHP Options ,字体颜色为:蓝色
在最底部,您可能会有 upload_max_filesize = 2M
现在,随时改变它
请务必点击 Save 按钮!
现在转到您的wp-admin面板,选择 Media 然后 Add
瞧!现在你有一个不同的最大上传文件大小:)
也许这应该是对@ seanb123和@Fredrick Gauss评论他评论的评论,但对于我在Drupal 8.1中使用PHP 7,我需要修改的文件位于:
我修改了其他四个php.ini文件,包括我的系统名为"Loaded Configuration File"(
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
编辑:我给自己的笔记的全文:
再次编辑:由于您要导入大文件,您可能需要更改处理它们的超时 . 在我的例子中,名为"config.default.php"的文件在
/usr/share/phpmyadmin/libraries/config.default.php
找到,变量$cfg['ExecTimeLimit'] = 300;
我将我的变更为900以进行大量导入 . 之后你需要重启apache这些解决方案不适合我! (默认情况下已经设置为32M) . 大多数情况下问题是
max_allowed_packet
我正在使用localhost并使用
MAMP
.这是解决方案;
1. If you don't have my.ini
Add
To
2. If you have my.ini
Under
Add
DONE!
很多次我注意到站点机智共享主机不允许更改php.ini文件中的设置 . 一个也根本不能包装.htaaccess文件 . 在这种情况下,人们可以尝试跟随事物
你需要检查三件事 .
完全在php.ini配置文件中
upload_max_filesize
,memory_limit
和post_max_size
.所有这三个设置都限制了PHP可以提交和处理的最大数据大小 .
通常
post_max_size
和memory_limit
需要大于upload_max_filesize
.所以三个变量 total 你需要检查才能绝对肯定 .
答案有点不完整,你需要做三件事
在你的php安装的php.ini中(注意:取决于你是否需要它用于CLI,apache或nginx,找到正确的php.ini来操作 . 对于nginx,它通常位于
/etc/php/7.1/fpm
,其中7.1取决于你的版本 . 对于apache通常/etc/php/7.1/apache2
)或设置其他值 . 如果您安装了apache,则重新启动/重新加载apache;如果使用nginx,则重新启动/重新加载nginx的 php-fpm .