溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php.ini上傳文件配置及安全配置的方法

發(fā)布時(shí)間:2021-03-02 10:28:14 來(lái)源:億速云 閱讀:251 作者:清風(fēng) 欄目:編程語(yǔ)言

這篇文章主要為大家展示了php.ini上傳文件配置及安全配置的方法,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來(lái)研究并學(xué)習(xí)一下“php.ini上傳文件配置及安全配置的方法”這篇文章吧。

php有什么用

php是一個(gè)嵌套的縮寫(xiě)名稱(chēng),是英文超級(jí)文本預(yù)處理語(yǔ)言,它的語(yǔ)法混合了C、Java、Perl以及php自創(chuàng)新的語(yǔ)法,主要用來(lái)做網(wǎng)站開(kāi)發(fā),許多小型網(wǎng)站都用php開(kāi)發(fā),因?yàn)閜hp是開(kāi)源的,從而使得php經(jīng)久不衰。

上傳文件配置:

php上傳文件涉及到的參數(shù):
幾個(gè)參數(shù)調(diào)整:

0:文件上傳時(shí)存放文件的臨時(shí)目錄。必須是 PHP 進(jìn)程所有者用戶(hù)可寫(xiě)的目錄。如果未指定則 PHP
使用系統(tǒng)默認(rèn)值。php.ini文件中upload_tmp_dir用來(lái)說(shuō)明PHP上傳的文件放置的臨時(shí)目錄。
要想上傳文件,得保證服務(wù)器沒(méi)有關(guān)閉臨時(shí)文件和有對(duì)文件夾的寫(xiě)權(quán)限
1:file_uploads
是否允許通過(guò)HTTP上傳文件的開(kāi)關(guān),默認(rèn)為ON即是開(kāi)

2:upload_tmp_dir
upload_tmp_dir用來(lái)說(shuō)明PHP上傳的文件放置的臨時(shí)目錄,要想上傳文件,得保證服務(wù)器沒(méi)有關(guān)閉臨時(shí)文件和有對(duì)文件夾的寫(xiě)權(quán)限,如果未指定則
PHP使用系統(tǒng)默認(rèn)值

3:upload_max_filesize
允許上傳文件大小的最大值,默認(rèn)為2M

4:post_max_size
控制在采用POST方法進(jìn)行一次表單提交中PHP所能夠接收的最大數(shù)據(jù)量。如果希望使用PHP文件上傳功能,則需要將此值改為比
upload_max_filesize要大

5:memory_limit
為了避免正在運(yùn)行的腳本大量使用系統(tǒng)可用內(nèi)存,PHP允許定義內(nèi)存使用限額。通過(guò)memory_limit變量來(lái)指定單個(gè)腳本程序可以使用的最大內(nèi)存容量
變量memory_limit的值應(yīng)當(dāng)適當(dāng)大于post_max_size的值

6:max_execution_time
max_execution_time設(shè)置了在強(qiáng)制終止腳本前PHP等待腳本執(zhí)行完畢的時(shí)間,此時(shí)間以秒計(jì)算。當(dāng)腳本進(jìn)入了一個(gè)無(wú)限循環(huán)狀態(tài)時(shí)此變量非常
有用。然而,當(dāng)存在一個(gè)需要很長(zhǎng)時(shí)間完成的合法活動(dòng)時(shí)(例如上傳大型文件),這項(xiàng)功能也會(huì)導(dǎo)致操作失敗。在這樣的情況下必須考慮將此變量值增加,以避免
PHP在腳本正在執(zhí)行某些重要過(guò)程的時(shí)候?qū)⒛_本關(guān)閉
如何實(shí)現(xiàn)php大文件上傳:
一個(gè)簡(jiǎn)單的配置例子,大家可以參考下:
1:打開(kāi)php.ini,首先找到
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
一般地,設(shè)置好上述四個(gè)參數(shù)后,上傳<=8M的文件是不成問(wèn)題,在網(wǎng)絡(luò)正常的情況下。
但如果要上傳>8M的大體積文件,只設(shè)置上述四項(xiàng)還一定能行的通。除非你的網(wǎng)絡(luò)真有100M/S的上傳高速,否則你還得關(guān)心關(guān)心下面的參數(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ò)所允許的正常情況下,就可以上傳大體積文件了

php.ini優(yōu)化---------安全篇

代碼:
查找:disable_functions
找到后在=后面添加
(這里都是禁止在php里面執(zhí)行的函數(shù))代碼:
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,fsockopen,
proc_open,popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,
shell_exec,proc_get_status,popen
上面內(nèi)容請(qǐng)放到一行。因?yàn)楸3痔拥恼w效果作了換行

查找:display_errors
如果是On的話(huà)改成Off

查找:magic_quotes_gpc
如果是Off的話(huà)改成On

查找:register_globals
如果是On的話(huà)改成Off

查找:open_basedir
后面增加

/www/:/tmp/

這里是限制php可以訪(fǎng)問(wèn)的目錄,后面一定要加上/,否則如果有/wwwabcd這個(gè)目錄也會(huì)被訪(fǎng)問(wèn)得到

多個(gè)目錄用英文:分隔。如果不添加/tmp/的話(huà)Discuz!的上傳功能就無(wú)法使用
注意:以上內(nèi)容在php.ini的開(kāi)頭會(huì)有相關(guān)設(shè)置的提示,請(qǐng)按ctrl+x查找下一個(gè),不要直接在上面修改

------------------------------
對(duì)php.ini優(yōu)化

GD庫(kù)的支持
;extension=php_gd2.dll
將前面的冒號(hào)去掉,

output_buffering = Off
輸出緩存允許你甚至在輸出正文內(nèi)容之后發(fā)送 header(標(biāo)頭,包括cookies)行 其代價(jià)是輸出層減慢一點(diǎn)點(diǎn)速度。你可以使用輸出緩存在運(yùn)行時(shí)打開(kāi)輸出緩存, 或者在這里將指示設(shè)為 On 而使得所有文件的輸出緩存打開(kāi)。
output_handler = ; 你可以重定向你的腳本的所有輸出到一個(gè)函數(shù),
那樣做可能對(duì)處理或以日志記錄它有用。
例如若你將這個(gè)output_handler 設(shè)為ob_gzhandler, 則輸出會(huì)被透明地為支持gzip或deflate編碼的瀏覽器壓縮。
設(shè)一個(gè)輸出處理器自動(dòng)地打開(kāi)輸出緩沖。
找到這個(gè)
output_buffering = Off
修改為
On
注意,不要設(shè)置數(shù)值,只需要設(shè)置為On即可。

相應(yīng)的,你還可以在你的discuz后臺(tái),打開(kāi)gzip支持,也是優(yōu)化的一項(xiàng)內(nèi)容。

有些朋友為了安全,還啟用了php的安全模式,這個(gè)也是一辦法

另外有些朋友需要使用全局變量和MAGIC,這是一些php程序的必備條件,discuz2.0也需要
可以打開(kāi),不過(guò)安全性能將降低,方法很簡(jiǎn)單。
register_globals = Off ;
將其修改為On即可.
一些朋友經(jīng)常反映無(wú)法上傳較大的文件或者后臺(tái)備份數(shù)據(jù)經(jīng)常超時(shí)
max_execution_time = 30 ; 這個(gè)是每個(gè)腳本運(yùn)行的最長(zhǎng)時(shí)間,可以自己修改加長(zhǎng),單位秒
max_input_time = 60 ; 這是每個(gè)腳本可以消耗的時(shí)間,單位也是秒
memory_limit = 8M ; 這個(gè)是腳本運(yùn)行最大消耗的內(nèi)存,也可以自己加大
upload_max_filesize = 2M ; 上載文件的最大許可大小 ,自己改吧,一些圖片論壇需要這個(gè)更大的值。
如果:
php報(bào)錯(cuò)顯示PHP has encountered an Access Violation at ***解決辦法
很多人說(shuō),是php版本的問(wèn)題,其實(shí)不然,可以從四個(gè)地方來(lái)看這個(gè)問(wèn)題

1,是否zend所需的dll文件所在目錄給的權(quán)限不夠,必須有讀取和運(yùn)行的權(quán)限
2,是否使用的2003,設(shè)置過(guò)應(yīng)用池,比如池中限制了什么什么,調(diào)整一下再試試看,是否好了,呵呵
3,php.ini有兩個(gè)地方?jīng)]有設(shè)置,而且一些程序必須用到的

將;upload_tmp_dir該行的注釋符,使該行在php.ini文檔中起作用。
upload_tmp_dir是用來(lái)定義上傳文件存放的臨時(shí)路徑,在這里你還可以給其定義一個(gè)絕對(duì)路徑,
例如:upload_tmp_dir = d:upload  當(dāng)然,此時(shí)你的d:upload目錄必須有讀寫(xiě)權(quán)限。

這里我設(shè)置為
upload_tmp_dir = c:temp

出現(xiàn)這樣的錯(cuò)誤語(yǔ)句一般是因?yàn)槟愕膒hp.ini中關(guān)于session.save_path一項(xiàng)沒(méi)有設(shè)置好,
解決的方法是將session.save_path和session.cookie_path 設(shè)置置為
session.save_path = c:temp
session.cookie_path = c:temp(我沒(méi)有修改這項(xiàng),我發(fā)現(xiàn)修改后的驗(yàn)證瑪不能用)
然后在c:目錄下建立一個(gè)temp目錄

注意:任何修改先做文件備份??!

以上就是關(guān)于“php.ini上傳文件配置及安全配置的方法”的內(nèi)容,如果改文章對(duì)你有所幫助并覺(jué)得寫(xiě)得不錯(cuò),勞請(qǐng)分享給你的好友一起學(xué)習(xí)新知識(shí),若想了解更多相關(guān)知識(shí)內(nèi)容,請(qǐng)多多關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI