PHP強(qiáng)化之24 - 常用配置項(xiàng)

一贪薪、簡介

PHP的配置項(xiàng)可以在配置文件php.ini中配置吨艇,也可以在腳本中使用ini_set()函數(shù)臨時配置徒爹。

二嘉蕾、常用配置項(xiàng)

1贺奠、錯誤信息相關(guān)配置

1)display_errors
設(shè)定PHP是否將任何錯誤信息包含在返回給Web服務(wù)器的數(shù)據(jù)流中。(PHP將任何由error_reporting所定義的錯誤信息作為錯誤數(shù)據(jù)流返回給Web服務(wù)器)
如:display_errors = On

2)error_reporting
設(shè)置PHP的報錯級別错忱。

報錯級別參數(shù)列表:
E_ALL:所有的錯誤和警告(不包括 E_STRICT)
E_ERROR:致命性的運(yùn)行時錯誤
E_WARNING:運(yùn)行時警告(非致命性錯誤)
E_PARSE:編譯時解析錯誤
E_NOTICE:運(yùn)行時提醒(這些經(jīng)常是你代碼中的bug引起的儡率,也可能是有意的行為造成的。)
E_STRICT:編碼標(biāo)準(zhǔn)化警告以清,允許PHP建議如何修改代碼以確保最佳的互操作性向前兼容性儿普。
E_CORE_ERROR :PHP啟動時初始化過程中的致命錯誤
E_CORE_WARNING:PHP啟動時初始化過程中的警告(非致命性錯)
E_COMPILE_ERROR:編譯時致命性錯
E_COMPILE_WARNING:編譯時警告(非致命性錯)
E_USER_ERROR:用戶自定義的錯誤消息
E_USER_WARNING:用戶自定義的警告消息
E_USER_NOTICE:用戶自定義的提醒消息

如:

Error_reporting = E_ALL & ~E_NOTICE   ; 除提示外,顯示所有錯誤

3)log_errors
PHP錯誤報告日志功能開關(guān)掷倔。
如:log_errors = On

4)error_log
PHP錯誤報告日志文件路徑眉孩。
如:error_log = "D:\www\php\php_errors.log"

5)display_startup_errors
是否打印php啟動時產(chǎn)生的錯誤。
如:display_startup_errors = On

6)track_errors
保存最近一個錯誤/警告消息于變量php_errormsg中。php_errormsg這個變量只在錯誤發(fā)生的作用域內(nèi)可用浪汪,并且要求track_errors是開啟的障贸。

7)report_memleaks
設(shè)置是否報告內(nèi)存泄露信息。這個參數(shù)只在調(diào)試編譯中起作用吟宦,并且必須在error_reporting中包含E_WARNING篮洁。

8)error_prepend_string
錯誤信息之前輸出的內(nèi)容。
如:error_prepend_string = "<span style='color: #ff0000'>"

9)error_append_string
錯誤信息之后輸出的內(nèi)容殃姓。
如:error_append_string = "</span>"

2袁波、資源限制相關(guān)配置

1)post_max_size
POST方法提交數(shù)據(jù)的最大大小限制。

允許的POST數(shù)據(jù)最大字節(jié)長度蜗侈。此設(shè)定也影響到文件上傳篷牌。如果POST數(shù)據(jù)超出限制,那么$_POST和$_FILES將會為空踏幻。要上傳大文件枷颊,該值必須大于upload_max_filesize指令的值。如果啟用了內(nèi)存限制该面,那么該值應(yīng)當(dāng)小于memory_limit指令的值夭苗。

如:post_max_size = 8M

若PHP程序需要上傳大型數(shù)據(jù)例如照片和視頻文件,則應(yīng)提高upload_max_filesize和post_max_size的值

2)memory_limit
PHP進(jìn)程能夠占用的最大內(nèi)存隔缀,單位是M题造,默認(rèn)值是128M。
如:memory_limit = 128M

3)max_execution_time
設(shè)定任何腳本所能夠運(yùn)行的最長時間猾瘸,默認(rèn)值是30秒界赔。
如:max_execution_time = 30

4)max_input_nesting_level
設(shè)置輸入變量的嵌套深度(例如_GET、_POST牵触、$_COOKIE等)淮悼。
如:max_input_nesting_level = 64

5)max_input_vars
設(shè)置輸入變量的最大數(shù)量(限制分別應(yīng)用于_GET、_POST揽思、$_COOKIE)袜腥。
如:max_input_vars = 1000

6)max_input_time
設(shè)置每個腳本接收POST、GET及PUT等方式輸入數(shù)據(jù)的最大時間限制绰更。
如:max_input_time = 60

7)default_socket_timeout
設(shè)置socket超時時間瞧挤。Socket流從創(chuàng)建到傳輸再到關(guān)閉整個過程必須要在這個參數(shù)設(shè)置的時間內(nèi)完成,如果不能完成儡湾,PHP將會自動結(jié)束這個socket并返回一個警告特恬。例如:使用file_get_contents()函數(shù)獲取文件內(nèi)容的時間會受到限制。
如:default_socket_timeout = 60

3徐钠、文件上傳相關(guān)配置

1)file_uploads
是否允許HTTP文件上傳癌刽。
如:file_uploads = On

2)upload_max_filesize
允許上傳的文件的最大尺寸。
如:upload_max_filesize = 2M

3)max_file_uploads
一個請求允許上傳的最大文件數(shù)量限制。
如:max_file_uploads = 20

4)upload_tmp_dir
文件上傳時存放文件的臨時目錄(必須是PHP進(jìn)程用戶可寫的目錄)显拜。
如:upload_tmp_dir = "D:/wamp/phpfileuploadtmp"

4衡奥、Session相關(guān)配置

1)session.save_path
設(shè)置session文件存放的位置(文件夾應(yīng)該是已經(jīng)存在的)。
如:session.save_path = "D:/www/phpsessiontmp"

2)session.save_handler
設(shè)置session數(shù)據(jù)的存取方式远荠。默認(rèn)以文件方式存取矮固。
如:session.save_handler = files

3)session.use_cookies
是否使用cookies在客戶端保存會話sessionid,默認(rèn)為采用cookies譬淳。
如:session.use_cookies = 1

4)session.use_only_cookies
是否僅僅使用cookie在客戶端保存會話sessionid档址,這個選項(xiàng)可以使管理員禁止用戶通過URL來傳遞sessionid,默認(rèn)為0邻梆,如果禁用的話守伸,客戶端如果禁用cookie將使session無法工作。
如:session.use_only_cookies = 1

5)session.name
設(shè)置session名稱浦妄。
如:session.name = PHPSESSID

6)session.auto_start
是否自動啟動session尼摹,默認(rèn)不啟動。若不自動啟動剂娄,每個PHP腳本頭部都需要通過session_start()函數(shù)來啟動session蠢涝。
如:session.auto_start = 0

7)session.cookie_lifetime
傳遞sessionid的cookie有效期,0表示僅在瀏覽器打開期間有效宜咒。
如:session.cookie_lifetime = 0

8) session.gc_probability與session.gc_divisor
定義每次初始化會話時惠赫,啟動垃圾回收程序的概率。
計(jì)算公式:session.gc_probability / session.gc_divisor故黑。對會話頁面訪問越頻繁,概率就應(yīng)當(dāng)越小庭砍。
如:session.gc_probability = 1场晶、session.gc_divisor = 1000

9)session.gc_maxlifetime
設(shè)定保存的session文件生存期,超過此參數(shù)設(shè)定秒數(shù)后怠缸,保存的數(shù)據(jù)將被視為’垃圾’并由垃圾回收程序清理诗轻。如果你在session.save_path選項(xiàng)中設(shè)定使用子目錄來存儲session數(shù)據(jù)文件,垃圾回收程序不會自動啟動揭北,你必須使用自己編寫的shell腳本扳炬、cron項(xiàng)或者其他辦法來執(zhí)行垃圾搜集。
如:session.gc_maxlifetime = 1440

10) session.use_trans_sid
設(shè)置當(dāng)客戶端禁用Cookie時搔体,是否將sessionid以參數(shù)的形式自動附加到URL末尾恨樟。
如:session.use_trans_sid = 1
注意:要配合session.use_only_cookies=0配置使用,否則無效

5疚俱、安全相關(guān)配置

1)register_globals
PHP在進(jìn)程啟動時劝术,會根據(jù)register_globals的設(shè)置,判斷是否將$_GET、$_POST养晋、$_COOKIE衬吆、$_ENV、$_SERVER绳泉、$REQUEST等數(shù)組變量里的內(nèi)容自動注冊為全局變量逊抡。(注:Removed in PHP 5.4.0.)

建議關(guān)閉該配置項(xiàng),開啟會增加安全漏洞的數(shù)量零酪,并隱藏了數(shù)據(jù)的來源冒嫡。如果必須要開發(fā)一個在register_globals開啟的環(huán)境中布署的應(yīng)用,必須要讓所有變量在使用前進(jìn)行初始化蛾娶,當(dāng)register_globals開啟時灯谣,任何使用未初始化變量的行為都意味著安全漏洞。

2)allow_url_fopen
是否允許打開遠(yuǎn)程文件蛔琅。(出于安全性考慮胎许,此選項(xiàng)只能在 php.ini 中設(shè)置。)

本選項(xiàng)激活了 URL 形式的 fopen 封裝協(xié)議使得可以訪問 URL 對象例如文件罗售。默認(rèn)的封裝協(xié)議提供用 ftp 和 http協(xié)議來訪問遠(yuǎn)程文件辜窑,一些擴(kuò)展庫例如 zlib 可能會注冊更多的封裝協(xié)議。

3)allow_url_include

此選項(xiàng)允許有以下功能使用URL識別的fopen封裝:包括寨躁,include穆碎,include_once,require职恳,require_once所禀。此設(shè)置要求allow_url_fopen選項(xiàng)要開啟。

4)safe_mode
是否啟用安全模式放钦。

打開時色徘,PHP將檢查當(dāng)前腳本的擁有者是否和被操作的文件的擁有者相同,相同則允許操作操禀,不同則拒絕操作褂策。開啟安全模式的前提是你的目錄文件權(quán)限已完全分配正確。開啟該項(xiàng)會減慢程序執(zhí)行效率颓屑。

6斤寂、語言相關(guān)配置

1)engine
設(shè)置PHP引擎是否可用,默認(rèn)值為On揪惦,若設(shè)置為Off則無法使用PHP遍搞。

2)short_open_tag
是否允許PHP腳本使用短開放標(biāo)記,將“<?php ?>”改為“<? ?>”丹擎。但這個語法與XML相同尾抑,這在某些情況下可能會導(dǎo)致問題歇父,所以一般建議關(guān)閉該項(xiàng)。

3)output_buffering
設(shè)置是否使用輸出緩沖再愈,或者設(shè)置輸出緩沖區(qū)的大小榜苫。使用輸出緩沖會使性能稍稍下降。
如:output_buffering = 4096

4)zend.enable_gc
設(shè)置是否開啟PHP的垃圾回收機(jī)制翎冲。
默認(rèn):zend.enable_gc = On

7垂睬、其它配置

1)date.timezone
定義日期函數(shù)使用的默認(rèn)時區(qū)。
如:date.timezone = Asia/Shanghai

2)extension_dir
存放擴(kuò)展庫(模塊)的目錄抗悍,也就是PHP用來尋找動態(tài)連接擴(kuò)展庫的目錄驹饺。PHP擴(kuò)展庫文件都存放在PHP安裝目錄下的ext目錄下楣嘁。
如:extension_dir = "D:\www\bin\php7.0.9\ext"

3)extension
對于每個需要激活的擴(kuò)展币叹,都需要一行相應(yīng)的“extension=”語句來說明PHP啟動時需要加載哪些擴(kuò)展。
如:extension=php_mysqli.dll

4)doc_root
PHP頁面在服務(wù)器上的根目錄泥彤。
如:doc_root = "D:\www"

5)include_path
指定一組目錄用于require()衔沼,include()蝌借,fopen_with_path()函數(shù)尋找文件。目錄之間Unix下用冒號分隔指蚁,Windows用分號分隔菩佑。
如:include_path=".:/php/includes"include_path=".;c:\php\includes"

6)sys_temp_dir
PHP用于存放臨時文件的目錄凝化。
如:sys_temp_dir = "/tmp"

三稍坯、參考

官方手冊:http://www.php.net/manual/zh/ini.core.php

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搓劫,隨后出現(xiàn)的幾起案子瞧哟,更是在濱河造成了極大的恐慌,老刑警劉巖枪向,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绢涡,死亡現(xiàn)場離奇詭異,居然都是意外死亡遣疯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門凿傅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缠犀,“玉大人,你說我怎么就攤上這事聪舒”嬉海” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵箱残,是天一觀的道長滔迈。 經(jīng)常有香客問我止吁,道長,這世上最難降的妖魔是什么燎悍? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任敬惦,我火速辦了婚禮,結(jié)果婚禮上谈山,老公的妹妹穿的比我還像新娘俄删。我一直安慰自己,他們只是感情好奏路,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布畴椰。 她就那樣靜靜地躺著,像睡著了一般鸽粉。 火紅的嫁衣襯著肌膚如雪斜脂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天触机,我揣著相機(jī)與錄音帚戳,去河邊找鬼。 笑死威兜,一個胖子當(dāng)著我的面吹牛销斟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椒舵,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼蚂踊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了笔宿?” 一聲冷哼從身側(cè)響起犁钟,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泼橘,沒想到半個月后涝动,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炬灭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年醋粟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片重归。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡米愿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鼻吮,到底是詐尸還是另有隱情育苟,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布椎木,位于F島的核電站违柏,受9級特大地震影響博烂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漱竖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一禽篱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闲孤,春花似錦谆级、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勤众,卻和暖如春舆绎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背们颜。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工吕朵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窥突。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓努溃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阻问。 傳聞我的和親對象是個殘疾皇子梧税,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,741評論 3 64
  • PHP是一個簡單易學(xué),功能強(qiáng)大的語言称近,尤其在Web開發(fā)第队,開發(fā)效率高,方便快捷刨秆。研究一下php.ini了解PHP相關(guān)...
    雷雪松的簡書閱讀 2,952評論 3 64
  • centos7為基準(zhǔn) 1凳谦、更改YUM源: /bin/mv CentOS-Base.repo CentOS-Base...
    SkTj閱讀 3,878評論 0 4
  • 項(xiàng)目開發(fā)常見流程介紹 需求調(diào)研 項(xiàng)目經(jīng)理------>需求說明書 軟件設(shè)計(jì)書 項(xiàng)目經(jīng)理------>...
    _1633_閱讀 1,406評論 1 6
  • 人生如葉缓醋,一生一落剔交。 一生就是開始,一落便是終結(jié)改衩。 人和葉子一樣,有繁華的時候驯镊, 當(dāng)然也有凋落的一天葫督, 人和葉子一...
    亓雪心閱讀 345評論 0 0