一次 解决php无法上传大文件的 配置修改

2019-03-29  本文已影响0人  geeooooz

分4篇文章 均为转载

1.完美解决php无法上传大文件方法 http://www.php.cn/php-weizijiaocheng-382486.html

参数 设置 说明
file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
说明
一般地,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。
max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了

Warning: Unable to open ‘\php2′ for reading: Invalid argument in e:\user\web\larksoft.net\upload\upfile.php on line 10

是php的upload_tmp_dir的原因,所指定的目录必须可读可写

Parse error: parse error in c:\program files\apache group\apache\htdocs\mdweb\ftpfile\upload.php on line 14

Parse error一般都是语句的问题,比如象“;”,“’”,“)”等等的匹配问题

搞定了,是/etc/httpd/conf.d/php.conf里面,有一个
<Files *.php>

SetOutputFilter PHP

SetInputFilter PHP

LimitRequestBody 524288

</Files>

把LimitRequestBody 改了就可以了。
如果你是Nginx的话还需要修改nginx.conf中的http段:

  1. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini
    (1)post_max_size = 50M      #PHP可接受的最大POST数据
    (2)upload_max_filesize = 50M   #文件上传允许的最大值
    (3)max_execution_time = 300   #每个脚本的最大执行时间,秒钟(0则不限制,不建议设0)
  2. 修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf (如果忘了配置文件的具体位置,可以使用 locate nginx.conf 查找)
    (1)client_max_body_size 50m   #客户端最大上传大小 50M
  3. 重启PHP:/etc/init.d/php-fpm restart
  4. 平滑重启Nginx:/usr/local/nginx/sbin/nginx -s reload

2.上传文件报413 Request Entity Too Large错误解决办法 https://www.jianshu.com/p/3851c3d6eaf1
产生这种原因是因为服务器限制了上传大小
1、nginx服务器的解决办法
修改nginx.conf的值就可以解决了
将以下代码粘贴到nginx.conf内
client_max_body_size 20M

可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者有区别
设置到http{}内,控制全局nginx所有请求报文大小
设置到server{}内,控制该server的所有请求报文大小
设置到location{}内,控制满足该路由规则的请求报文大小
同时记得修改php.ini内的上传限制
upload_max_filesize = 20M
2、apache服务器修改
在apache环境中上传较大软件的时候,有时候会出现413错误,出现这个错误的原因,是因为apache的配置不当造成的,找到apache的配置文件目录也就是conf目录,和这个目录平行的一个目录叫conf.d打开这个conf.d,里面有一个php.conf
目录内容如下:

PHP is an HTML-embedded scripting language which attempts to make it

easy for developers to write dynamically generated webpages.

LoadModule php4_module modules/libphp4.so

Cause the PHP interpreter handle files with a .php extension.

SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 6550000

Add index.php to the list of files that will be served as directory

indexes.

DirectoryIndex index.php

误就发生在这个LimitRequestBody配置上,将这个的值改大到超过你的软件大小就可以了
如果没有这个配置文件请将
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 6550000

写到apache的配置文件里面即可。
3、IIS服务器(Windows Server 2003系统IIS6)
先停止IIS Admin Service服务,然后
找到windows\system32\inesrv\下的metabase.xml,打开,找到ASPMaxRequestEntityAllowed 修改为需要的值,然后重启IIS Admin Service服务
1、在web服务扩展 允许active server pages和在服务器端的包含文档
2、修改各站点的属性 主目录-配置-选项-启用父路径
3、使之可以上传大文档(修改成您想要的大小就可以了,以字节为单位)
c:\WINDOWS\system32\inetsrv\MetaBase.xml
!企业版的windows2003在第592行
默认的预设置值 AspMaxRequestEntityAllowed="204800" 即200K
将其加两个0,即改为,现在最大就可以上传20M了。
AspMaxRequestEntityAllowed="20480000"

作者:烂孩子
链接:https://www.jianshu.com/p/3851c3d6eaf1
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

3.php-fpm 平滑重启 开启 关闭 https://blog.csdn.net/xiaoxiong_web/article/details/80053076

先看看下面几个命令

INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

示例

1. pkill php-fpm 强制关闭
2. kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 
3. /usr/local/php/sbin/php-fpm 启动 
4. kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 平滑重启
5. ps aux | grep -c php-fpm 查看php-fpm进程数:
6. ps aux |grep php-fpm 查看php-fpm的master进程号
cat /usr/local/php/var/run/php-fpm.pid 

查看php-fpm进程号,也可以使用 ps aux |grep php-fpm 查看后
再使用

kill -USR2 [pid]

4.优雅的重启php-fpm https://blog.csdn.net/pengyangchao/article/details/81198169

首先查看php-fpm 进程

ps -aux | grep php

root     14742  0.0  0.0 186456  5728 ?        Ss   Jul24   0:05 php-fpm: master process (/usr/local/php/conf/php-fpm.conf)
nginx    14743  0.0  0.0 186728  7656 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14744  0.0  0.0 186728  7764 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14745  0.0  0.0 186728  7656 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14746  0.0  0.0 186728  7756 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14747  0.0  0.0 186728  7660 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14748  0.0  0.0 186728  7760 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14749  0.0  0.0 186728  7756 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14750  0.0  0.0 186456  5416 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14751  0.0  0.0 186456  5416 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14752  0.0  0.0 186728  7660 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14753  0.0  0.0 186456  5416 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14754  0.0  0.0 186456  5416 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14755  0.0  0.0 186456  5416 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14756  0.0  0.0 186728  7768 ?        S    Jul24   0:00 php-fpm: pool www
nginx    14757  0.0  0.0 186728  7660 ?        S    Jul24   0:00 php-fpm: pool www
root     19845  0.0  0.0 112708   964 pts/0    S+   10:41   0:00 grep --color=auto php

优雅的重启php-fpm:

kill -USR2 14742

OK了。

php-fpm 关闭:

kill -INT 'cat /usr/local/php/var/run/php-fpm.pid'

php-fpm 重启:

kill -USR2 'cat /usr/local/php/var/run/php-fpm.pid'

作者:pengyangchao
来源:CSDN
原文:https://blog.csdn.net/pengyangchao/article/details/81198169
版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇下一篇

猜你喜欢

热点阅读