官术网_书友最值得收藏!

2.6 PHP配置文件詳解

對于PHP來說,絕大部分的功能和屬性都可以通過配置文件來管理和配置。如果想更好管理和配置PHP,就必須對其配置文件有詳細的了解。

下面就來詳細介紹PHP的主配置文件php.ini里面的一些主要配置項。由于配置項較多,這里只介紹主要的配置項:

★ engine:指定是否啟用PHP解析引擎,默認值為On,配置方法為engine = On,僅在PHP作為Apache模塊時才生效

★ last_modified:指定是否在Last-Modified的應答頭里放置該PHP腳本最后的修改時間,默認值為Off,配置方法為last_modified = Off,僅在PHP作為Apache模塊時才生效

★ xbithack:指定是否將所有頁面文檔都作為PHP可執(zhí)行位組來解析,默認值為Off。

★ child_terminate:指定PHP腳本在請求結(jié)束后是否允許使用apache_child_terminate()函數(shù)終止子進程,注意:

本選項只有在UNIX平臺上并將PHP安裝為Apache 1.3的模塊時可用,默認值為Off,配置方法為child_terminate = Off

★ assert.active:指定是否啟用assert()函數(shù)來斷言,默認值為On,配置方法為assert.active = On

★ assert.bail:指定是否在發(fā)生斷言失敗時終止腳本的執(zhí)行,默認值為Off,配置方法為assert. bail=Off

★ assert.callback:指定發(fā)生斷言失敗時執(zhí)行的回調(diào)函數(shù),默認值為空,配置方法為assert. callback=回調(diào)函數(shù)名

★ assert.warning:指定是否對每個斷言失敗都發(fā)出警告,默認值為On,配置方法為assert.warning=On

★ assert.quiet_eval:指定是否不顯示任何錯誤信息,若將其設置為Off則在評估斷言表達式時使用當前的error_reporting配置項值,默認值為Off,配置方法為assert.quiet_eval = Off

★ allow_url_fopen:指定是否允許打開用URL標識的遠程文件,默認值為On,配置方法為allow_url_fopen = On

★ allow_url_include:指定是否允許使用include/require方法來調(diào)用遠程文件,默認值為Off,配置方法allow_url_include = Off

★ enable_dl:指定是否允許使用dl()函數(shù),dl()函數(shù)僅在PHP作為Apache模塊安裝時有效,禁用dl()函數(shù)主要是出于安全考慮,默認值為On,配置方法為enable_dl = On

★ expose_php:指定是否在HTTP頭中加上PHP簽名,顯示PHP被安裝在服務器上,默認值是On,配置方法是:expose_php = On

★ open_basedir:指定是否將PHP允許操作的所有文件,包括文件自身都限制在此目錄列表下。在安全方面,如果一個PHP腳本試圖打開一個指定目錄列表之外的文件時,將遭到拒絕,并且所有的符號連接都會被解析,因此不可能通過符號連接來避開此限制。默認值是空,即允許打開所有文件,配置方法為open_basedir = 路徑名列表

★ default_socket_timeout:指定socket超時時間,單位為秒,默認值為60,配置方法為default_socket_timeout=60

★ max_execution_time:指定每個腳本最大允許執(zhí)行的時間,單位為秒,0表示沒有限制。本配置項只計算腳本本身的運行時間,不包含任何其他腳本運行之外的時間,如system()/sleep()函數(shù)的執(zhí)行、數(shù)據(jù)庫查詢、文件上傳等時間都不包括在內(nèi)。在安全模式下,不能使用ini_set()函數(shù)來改變這個設置。默認值為30,配置方法為max_execution_time=30

★ memory_limit:指定一個腳本所能夠使用的最大內(nèi)存,可以使用單位KB和MB;要使此配置選項生效必須在configure時使用"—enable-memory-limit"選項;如果要取消內(nèi)存限制,則將其設為-1;設置了該配置項后,可以使用memory_get_usage()函數(shù)獲取可用內(nèi)存值。默認值為16MB,配置方法為memory_limit=16MB

★ max_input_time:指定每個腳本解析通過POST、GET、UPLOAD方法輸入數(shù)據(jù)的最大允許時間,單位為秒;默認值為-1,表示不限制,配置方法為max_input_time=-1

★ post_max_size:指定使用POST方法時允許傳輸?shù)淖畲髷?shù)據(jù)長度,此配置項會影響到文件上傳;如果上傳的數(shù)據(jù)超出本值,那么$_POST和$_FILES將會為空;如果要上傳大文件,本值應該大于upload_max_filesize配置項的值;如果啟用了內(nèi)存限制,那么本值應該小于memory_limit配置項的值。默認值為8MB,配置方法為post_max_size=8M

★ realpath_cache_size:指定PHP使用的realpath緩沖區(qū)大小,在PHP打開大量文件的系統(tǒng)上可以增大該值以便提高性能;默認值為16KB,配置方法為realpath_cache_size = 16KB

★ realpath_cache_ttl:指定realpath緩沖區(qū)中信息的有效時間,單位為秒;在對文件很少變動的系統(tǒng)上可以增大該值以提高性能;默認值為120,配置方法為realpath_cache_ttl=120

★ file_uploads:指定是否允許使用HTTP協(xié)議上傳文件,默認值為On,配置方法為file_uploads =On

★ upload_max_filesize:指定上傳文件的最大字節(jié)數(shù),默認值是2M字節(jié),配置方法為upload_max_filesize=2M

★ upload_tmp_dir:指定文件上傳后存放文件的臨時目錄,注意此目錄必須是PHP進程可寫的目錄,如果未指定則使用系統(tǒng)默認的臨時目錄,默認值為空,配置方法為upload_tmp_dir=路徑名

★ default_mimetype:指定PHP輸出的默認HTTP頭"Content-Type:text/html",默認值為text/html,配置方法為default_mimetype="text/html"

★ default_charset:指定PHP輸出的默認HTTP頭中的編碼選項,配合default_mimetype使用,如"Content-Type:text/html; charset=gb2312";默認值為gb2312,配置方法為default_charset= "gb2312"

★ extension:指定PHP啟動時加載的動態(tài)擴展庫,無默認值,配置方法為extension=mysqli. so,其中"="之后只能使用動態(tài)擴展庫的文件名,而不能包含路徑,路徑信息必須在extension_dir配置項中配置;在Windows上已經(jīng)內(nèi)置下列擴展:bcmath;calendar;com_dotnet;ctype;session;filte r;ftp;hash;iconv;json;odbc;pcre;Reflection;date;libxml;standard;tokenizer; zlib;SimpleXML;dom;SPL;wddx;xml;xmlreader;xmlwriter

★ extension_dir:指定存放動態(tài)擴展庫的目錄,PHP在此目錄中尋找動態(tài)擴展庫,配置方法為extension_dir = "/path/php"

★ include_path:指定require()、include()、fopen_with_path()函數(shù)尋找文件的目錄列表,其格式和系統(tǒng)的PATH環(huán)境變量類似:UNIX下用冒號分隔,Windows下用分號分隔;如UNIX: "/路徑名1:/路徑名2",Windows: "\路徑名1;\ 路徑名2",配置方法為include_path= ".:/路徑名1:/ 路徑名2"

★ doc_root:指定PHP所在的根目錄,它只有在非空時有效;如果開啟安全模式safe_mode=On,則此目錄之外的文件將被拒絕訪問,默認值為空,配置方法為doc_root=路徑名

★ cgi.force_redirect:指定是否啟用CGI強制重定向,建議打開它為PHP以CGI方式運行時提供安全保護,默認值為On,配置方法為cgi.force_redirect=On

★ fastcgi.logging:指定是否記錄通過FastCGI進行的連接,默認值為On,配置方法為fastcgi. logging=On

★ async_send:指定是否啟用異步發(fā)送數(shù)據(jù),默認值為Off,配置方法為async_send=Off

★ gd.jpeg_ignore_warning:指定是否忽略JPEG解碼器的警告信息,比如無法識別圖片格式等,默認值為Off,配置方法為gd.jpeg_ignore_warning=Off

★ memcache.allow_failover:指定是否在遇見錯誤的時候透明地向其他服務器進行故障轉(zhuǎn)移。說明:memcache是一個高性能分布式的內(nèi)存對象緩存系統(tǒng),通過在內(nèi)存中維護一個統(tǒng)一的巨大的hash表來存儲各種格式的數(shù)據(jù),如圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等,默認值為On,配置方法為memcache.allow_failover=On

★ memcache.chunk_size:配置在memcache中數(shù)據(jù)進行轉(zhuǎn)移時的塊大小,如果此值越小則所需的額外網(wǎng)絡傳輸越多,如果發(fā)現(xiàn)異常地速度降低,可以嘗試將此值增加到32768,配置方法為memcache.chunk_size=8192

★ memcache.default_port:指定連接到memcache服務器的默認TCP端口,配置方法為memcache.default_port=11211

★ memcache.max_failover_attempts:指定連接到memcache服務器失敗后的重試次數(shù),配置方法為memcache.max_failover_attempts=20

★ output_buffering:指定輸出緩沖區(qū)大小,單位為字節(jié);輸出緩沖允許在輸出正文內(nèi)容后再發(fā)送HTTP頭,包括cookies;其結(jié)果是輸出層減慢一點速度;設置輸出緩沖可以減少寫入,但是這個參數(shù)的實際效果取決于使用的Web服務器以及腳本的內(nèi)容;建議值為4096~8192,配置方法為output_buffering=0

★ output_handler:指定所有腳本的輸出重定向到一個輸出處理函數(shù),如果此配置項指定了輸出處理函數(shù),輸出緩沖output_buffering將被自動啟用。

注意:

此配置項只能使用PHP內(nèi)置的函數(shù),自定義函數(shù)必須腳本中調(diào)用ob_start()函數(shù);可移植腳本不能依賴該配置項,而應使用ob_start()函數(shù)明確指定輸出處理函數(shù);不能同時使用"mb_output_handler""ob_iconv_handler"兩個輸出處理函數(shù),也不能同時使用"ob_gzhandler"輸出處理函數(shù)和zlib.output_compression配置項;如果使用zlib.output_handler配置項開啟zlib輸出壓縮,本項必須設置為空。

默認值為空,配置方法為output_handler=函數(shù)名

★ zlib.output_compression:指定是否使用zlib庫壓縮腳本并輸出結(jié)果,如果啟用該配置項,當瀏覽器發(fā)送"Accept-Encoding:gzip(deflate)"頭時,"Content-Encoding:gzip(deflate)"和"Vary:Accept-Encoding"頭將加入到應答頭當中,可以在應答頭輸出之前使用ini_set()函數(shù)在腳本中啟用或禁止這一特性。

注意:

壓縮率會受壓縮緩沖區(qū)大小的影響,如果需要得到更好的壓縮質(zhì)量,需要指定一個較大的壓縮緩沖區(qū);如果啟用了zlib輸出壓縮,output_handler配置項必須為空,同時必須設置zlib.output_handler配置項的值。

本配置項的值可以設置為Off、On或者壓縮緩沖區(qū)大小(默認為4096字節(jié)),其默認值為Off,配置方法為zlib.output_compression = Off

★ zlib.output_compression_level:指定zlib的壓縮級別,取值范圍為0~9,0表示不壓縮;值越高效果越好,但CPU占用越多,建議使用1~5;默認值為-1,表示使用zlib內(nèi)部的默認值(6),配置方法為zlib.output_compression_level=-1

★ zlib.output_handler:指定在啟用zlib.output_compression配置項的情況下使用的輸出處理函數(shù);啟用本配置項后必須將output_handler配置項設置為空。默認值為空,配置方法為zlib. output_handler=函數(shù)名

★ safe_mode:指定PHP是否啟用安全模式;如果啟用PHP將檢查當前腳本的擁有者是否和被操作的文件的擁有者相同,相同則允許操作,不同則拒絕操作。默認值為Off,配置方法為safe_mode=Off

★ safe_mode_gid:指定PHP在安全模式下是否在訪問文件時做GID比較檢查,關(guān)閉本配置項時PHP將做更為嚴格的UID比較檢測。默認值為Off,配置方法為safe_mode_gid = Off

★ safe_mode_allowed_env_vars:指定在安全模式下,用戶只可以更改的環(huán)境變量的前綴列表,用逗號對列表進行分隔;注意允許用戶設置某些環(huán)境變量,可能會導致潛在的安全漏洞。配置方法為safe_mode_allowed_env_vars = "PHP_"; 注意: 如果這一參數(shù)值為空,PHP將允許用戶更改任意環(huán)境變量!

★ safe_mode_protected_env_vars:指定在安全模式下用戶不能更改的環(huán)境變量列表,用逗號對列表進行分隔;在本列表中的變量如果又在safe_mode_allowed_env_vars被設置了,那么對于safe_mode_allowed_env_vars這些變量無效。配置方法為safe_mode_protected_env_vars ="LD_LIBRARY_PATH"

★ safe_mode_include_dir:指定在安全模式下,本配置項中組目錄和其子目錄下的文件被包含時,將跳過UID/GID檢查,如果此配置項的值為空,任何UID/GID不符合的文件都不允許被包含;這里設置的目錄必須是已經(jīng)存在于include_path中或者用完整路徑來包含;其中Windows下用分號來隔開多個目錄,而在Linux下則用冒號;默認值為空,配置方法為safe_mode_include_dir =目錄列表

★ safe_mode_exec_dir:指定在安全模式下,只有本配置項中的目錄下的可執(zhí)行程序才允許被以下函數(shù)調(diào)用:system,escapeshellarg,escapeshellcmd,exec,passthru,proc_close,proc_get_status, proc_nice,proc_open,proc_terminate,shell_exec。配置方法為safe_mode_exec_dir="/usr/local/php/bin"

★ sql.safe_mode:指定是否使用SQL安全模式;默認值為Off,配置方法為sql.safe_mode=Off

★ mysqli.max_links:指定調(diào)用mysqli_connect()函數(shù)連接MySQL數(shù)據(jù)庫時每個進程中允許的最大連接數(shù),說明:PHP5中提供一個對mysql庫改進后的庫——mysqli庫,mysqli_connect()便是其中的一個庫函數(shù)。默認值為-1,代表無限制,配置方法為mysqli.max_links=-1。

★ mysqli.default_port:指定調(diào)用mysqli_connect()函數(shù)連接MySQL數(shù)據(jù)庫時使用的默認TCP端口號;默認值為3306,配置方法為mysqli.default_port=3306

★ mysqli.default_socket:指定調(diào)用mysqli_connect()函數(shù)連接MySQL服務器時使用的默認套接字名;沒有指定則使用內(nèi)置的MqSQL默認值;默認值為空,配置方法為mysqli.default_socket=TCP或者UDP等

★ mysqli.default_host:指定調(diào)用mysqli_connect()函數(shù)連接MySQL數(shù)據(jù)庫時使用的默認主機;安全模式下無效,出于安全考慮建議不要在此設置主機名;默認值為空,配置方法為mysqli. default_host=主機名或者主機IP

★ mysqli.default_user:指定調(diào)用mysqli_connect()函數(shù)連接MySQL數(shù)據(jù)庫時使用的默認用戶名;安全模式下無效,出于安全考慮建議不要在此設置用戶名;默認值為空,配置方法為mysqli. default_user=用戶名

★ mysqli.default_pw:指定調(diào)用mysqli_connect()函數(shù)連接MySQL數(shù)據(jù)庫時使用的默認密碼;注意安全模式下此密碼無效,出于安全考慮建議不要在此設置密碼;默認值為空,配置方法為mysqli.default_pw=密碼

★ mysqli.reconnect:指定PHP是否允許對MySQL進行重新連接,默認值為Off,配置方法為mysqli.reconnect=Off

注意:

這里只是介紹了php.ini中常用的配置項,關(guān)于Session、Error和舊版本MySQL函數(shù)的常用配置項將在以后相關(guān)的章節(jié)中詳細介紹。

主站蜘蛛池模板: 左权县| 大荔县| 长顺县| 红桥区| 类乌齐县| 曲麻莱县| 抚州市| 湖北省| 满城县| 布拖县| 应城市| 蓝山县| 泾阳县| 郑州市| 东辽县| 湖南省| 云林县| 韶山市| 安塞县| 南郑县| 赫章县| 宁陕县| 资阳市| 天水市| 龙川县| 岳阳市| 临沭县| 禄丰县| 双江| 阿城市| 宿州市| 正安县| 大城县| 密山市| 延津县| 太保市| 建始县| 石家庄市| 康保县| 新源县| 西宁市|