分4篇文章 均為轉(zhuǎn)載
1.完美解決php無(wú)法上傳大文件方法 http://www.php.cn/php-weizijiaocheng-382486.html
參數(shù) 設(shè)置 說(shuō)明
file_uploads on 是否允許通過(guò)HTTP上傳文件的開(kāi)關(guān)阶女。默認(rèn)為ON即是開(kāi)
upload_tmp_dir – 文件上傳至服務(wù)器上存儲(chǔ)臨時(shí)文件的地方间狂,如果沒(méi)指定就會(huì)用系統(tǒng)默認(rèn)的臨時(shí)文件夾
upload_max_filesize 8m 望文生意宛裕,即允許上傳文件大小的最大值。默認(rèn)為2M
post_max_size 8m 指通過(guò)表單POST給PHP的所能接收的最大值延刘,包括表單里的所有值像寒。默認(rèn)為8M
說(shuō)明
一般地,設(shè)置好上述四個(gè)參數(shù)后,在網(wǎng)絡(luò)正常的情況下龟梦,上傳<=8M的文件是不成問(wèn)題
但如果要上傳>8M的大體積文件,只設(shè)置上述四項(xiàng)還一定能行的通窃躲。除非你的網(wǎng)絡(luò)真有100M/S的上傳高速计贰,否則你還得繼續(xù)設(shè)置下面的參數(shù)。
max_execution_time 600 每個(gè)PHP頁(yè)面運(yùn)行的最大時(shí)間值(秒)蒂窒,默認(rèn)30秒
max_input_time 600 每個(gè)PHP頁(yè)面接收數(shù)據(jù)所需的最大時(shí)間躁倒,默認(rèn)60秒
memory_limit 8m 每個(gè)PHP頁(yè)面所吃掉的最大內(nèi)存,默認(rèn)8M
把上述參數(shù)修改后洒琢,在網(wǎng)絡(luò)所允許的正常情況下秧秉,就可以上傳大體積文件了
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一般都是語(yǔ)句的問(wèn)題衰抑,比如象“象迎;”,“’”呛踊,“)”等等的匹配問(wèn)題
搞定了砾淌,是/etc/httpd/conf.d/php.conf里面,有一個(gè)
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>
把LimitRequestBody 改了就可以了恋技。
如果你是Nginx的話還需要修改nginx.conf中的http段:
- 修改PHP配置文件中的三項(xiàng):vim /usr/local/php/etc/php.ini
(1)post_max_size = 50M #PHP可接受的最大POST數(shù)據(jù)
(2)upload_max_filesize = 50M #文件上傳允許的最大值
(3)max_execution_time = 300 #每個(gè)腳本的最大執(zhí)行時(shí)間拇舀,秒鐘(0則不限制逻族,不建議設(shè)0) - 修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf (如果忘了配置文件的具體位置蜻底,可以使用 locate nginx.conf 查找)
(1)client_max_body_size 50m #客戶端最大上傳大小 50M - 重啟PHP:/etc/init.d/php-fpm restart
- 平滑重啟Nginx:/usr/local/nginx/sbin/nginx -s reload
2.上傳文件報(bào)413 Request Entity Too Large錯(cuò)誤解決辦法 http://www.reibang.com/p/3851c3d6eaf1
產(chǎn)生這種原因是因?yàn)榉?wù)器限制了上傳大小
1、nginx服務(wù)器的解決辦法
修改nginx.conf的值就可以解決了
將以下代碼粘貼到nginx.conf內(nèi)
client_max_body_size 20M
可以選擇在http{ }中設(shè)置:client_max_body_size 20m;
也可以選擇在server{ }中設(shè)置:client_max_body_size 20m;
還可以選擇在location{ }中設(shè)置:client_max_body_size 20m;
三者有區(qū)別
設(shè)置到http{}內(nèi)聘鳞,控制全局nginx所有請(qǐng)求報(bào)文大小
設(shè)置到server{}內(nèi)薄辅,控制該server的所有請(qǐng)求報(bào)文大小
設(shè)置到location{}內(nèi),控制滿足該路由規(guī)則的請(qǐng)求報(bào)文大小
同時(shí)記得修改php.ini內(nèi)的上傳限制
upload_max_filesize = 20M
2抠璃、apache服務(wù)器修改
在apache環(huán)境中上傳較大軟件的時(shí)候站楚,有時(shí)候會(huì)出現(xiàn)413錯(cuò)誤,出現(xiàn)這個(gè)錯(cuò)誤的原因搏嗡,是因?yàn)閍pache的配置不當(dāng)造成的窿春,找到apache的配置文件目錄也就是conf目錄,和這個(gè)目錄平行的一個(gè)目錄叫conf.d打開(kāi)這個(gè)conf.d采盒,里面有一個(gè)php.conf
目錄內(nèi)容如下:
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
誤就發(fā)生在這個(gè)LimitRequestBody配置上旧乞,將這個(gè)的值改大到超過(guò)你的軟件大小就可以了
如果沒(méi)有這個(gè)配置文件請(qǐng)將
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 6550000
寫到apache的配置文件里面即可。
3磅氨、IIS服務(wù)器(Windows Server 2003系統(tǒng)IIS6)
先停止IIS Admin Service服務(wù)尺栖,然后
找到windows\system32\inesrv\下的metabase.xml,打開(kāi)烦租,找到ASPMaxRequestEntityAllowed 修改為需要的值延赌,然后重啟IIS Admin Service服務(wù)
1除盏、在web服務(wù)擴(kuò)展 允許active server pages和在服務(wù)器端的包含文檔
2、修改各站點(diǎn)的屬性 主目錄-配置-選項(xiàng)-啟用父路徑
3挫以、使之可以上傳大文檔(修改成您想要的大小就可以了者蠕,以字節(jié)為單位)
c:\WINDOWS\system32\inetsrv\MetaBase.xml
!企業(yè)版的windows2003在第592行
默認(rèn)的預(yù)設(shè)置值 AspMaxRequestEntityAllowed="204800" 即200K
將其加兩個(gè)0掐松,即改為蠢棱,現(xiàn)在最大就可以上傳20M了。
AspMaxRequestEntityAllowed="20480000"
作者:爛孩子
鏈接:http://www.reibang.com/p/3851c3d6eaf1
來(lái)源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有甩栈,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處泻仙。
3.php-fpm 平滑重啟 開(kāi)啟 關(guān)閉 https://blog.csdn.net/xiaoxiong_web/article/details/80053076
先看看下面幾個(gè)命令
INT, TERM 立刻終止
QUIT 平滑終止
USR1 重新打開(kāi)日志文件
USR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊
示例
1. pkill php-fpm 強(qiáng)制關(guān)閉
2. kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
3. /usr/local/php/sbin/php-fpm 啟動(dòng)
4. kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 平滑重啟
5. ps aux | grep -c php-fpm 查看php-fpm進(jìn)程數(shù):
6. ps aux |grep php-fpm 查看php-fpm的master進(jìn)程號(hào)
cat /usr/local/php/var/run/php-fpm.pid
查看php-fpm進(jìn)程號(hào),也可以使用 ps aux |grep php-fpm 查看后
再使用
kill -USR2 [pid]
4.優(yōu)雅的重啟php-fpm https://blog.csdn.net/pengyangchao/article/details/81198169
首先查看php-fpm 進(jìn)程
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
優(yōu)雅的重啟php-fpm:
kill -USR2 14742
OK了量没。
php-fpm 關(guān)閉:
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
來(lái)源:CSDN
原文:https://blog.csdn.net/pengyangchao/article/details/81198169
版權(quán)聲明:本文為博主原創(chuàng)文章玉转,轉(zhuǎn)載請(qǐng)附上博文鏈接!