php配置文件詳解

優化php性能的時候,優化配置文件這個是首當其衝的。下邊跟你們分享下我總結的關於php.ini配置文件裏的每一行的解釋,但願能幫助你們進一步瞭解php。php

[ipv6@ipv6 ~]# grep -v ";" /etc/php5/apache2/php.ini [PHP] engine = On ---> 是否啓用PHP解析引擎 short_open_tag = Off ---> 是否使用簡介標誌 asp_tags = Off ---> 不容許asp類標誌 precision = 14 ---> 浮點型數據顯示的有效期 y2k_compliance = On ---> 是否強制打開2000年適應(可能在非Y2K適應的瀏覽器中致使問題)。 output_buffering = 4096 ---> 輸出緩衝區大小(字節)。建議值爲4096~8192。 zlib.output_compression = Off ---> 是否開啓zlib輸出壓縮 implicit_flush = Off ---> 是否要求PHP輸出層在每一個輸出塊以後自動刷新數據 這等效於在每一個 print()、echo()、HTML塊 以後自動調用flush()函數。打開這個選項對程序執行的性能有嚴重的影響,一般只推薦在調試時使用。在CLI SAPI的執行模式下,該指令默認爲 On 。 unserialize_callback_func = serialize_precision = 17 ####將浮點型和雙精度型數據序列化存儲時的精度(有效位數)。默認值可以確保浮點型數據被解序列化程序解碼時不會丟失數據。 allow_call_time_pass_reference = Off ####是否強迫在函數調用時按引用傳遞參數(每次使用此特性都會收到一條警告)。 ; php反對這種作法,並在未來的版本里再也不支持,由於它影響到了代碼的整潔。 ; 鼓勵的方法是在函數聲明裏明確指定哪些參數按引用傳遞。 ; 咱們鼓勵你關閉這一選項,以保證你的腳本在未來版本的語言裏仍能正常工做。 safe_mode = Off ---> 安全模式 safe_mode_gid = Off safe_mode_include_dir = #在安全模式下,該組目錄和其子目錄下的文件被包含時,將跳過UID/GID檢查。換句話說,若是此處的值爲空,任何UID/GID不符合的文件都不容許被包含。這裏設置的目錄必須已經存在於include_path指令中或者用完整路徑來包含。多個目錄之間用冒號(Win下爲分號)隔開。指定的限制其實是一個前綴,而非一個目錄名。 safe_mode_exec_dir = ---> 安全模式下的可執行文件存放目錄 safe_mode_allowed_env_vars = PHP_ ####在安全模式下,用戶僅能夠更改的環境變量的前綴列表(逗號分隔)。容許用戶設置某些環境變量,可能會致使潛在的安全漏洞。注意: 若是這一參數值爲空,PHP將容許用戶更改任意環境變量。 safe_mode_protected_env_vars = LD_LIBRARY_PATH ####在安全模式下,用戶不能更改的環境變量列表(逗號分隔)。這些變量即便在safe_mode_allowed_env_vars指令設置爲容許的狀況下也會獲得保護。 disable_functions = ---> 該指令接受一個用逗號分隔的函數名列表,以禁用特定的函數。 disable_classes = ---> 該指令接受一個用逗號分隔的類名列表,以禁用特定的類 zend.enable_gc = On ——→ expose_php = On ---> 在網頁頭部顯示php信息 max_execution_time = 30 ---> 每一個腳本最大執行秒數 max_input_time = 60 ---> 每一個腳本用來分析請求數據的最大限制時間 memory_limit = 128M ---> 每一個腳本執行的內存限制 error_reporting = E_ALL & ~E_DEPRECATED display_errors = Off ---> #顯示失誤(該關閉,換成日誌顯示) display_startup_errors = Off ---> #顯示啓動失誤 log_errors = On ---> 生成錯誤錯誤日誌顯示 log_errors_max_len = 1024 ---> 設定error_log最大長度 ignore_repeated_errors = Off ---> 打開後,不記錄重複的信息 ignore_repeated_source = Off ---> 打開後當記錄重複的信息時忽略來源 report_memleaks = On ---> 報告內存泄露,僅在debug編譯模式下有效 track_errors = Off ---> ####在$php_errormsg中保存最後一次錯誤/警告消息 (邏輯值).永遠不要再生產環境中使用此特性:html_errors 會顯示php錯誤所在的html標籤 html_errors = Off ---> 是否開啓靜態網頁錯誤提示 variables_order = "GPCS" ---> ####此指令描述了PHP註冊GET, POST, Cookie, 環境 和 內置變量的順序 (各自使用G, P, C, E 和 S , 通常使用 EGPCS 或 GPC). 註冊使用從左往右的順序, 新的值會覆蓋舊的值. request_order = "GP" ####此指令描述的順序PHP註冊GET,POST和COOKIE變量_REQUEST數組。註冊是由左到右,新的值將覆蓋舊值。若是這個指令沒有設置,variables_order中使用$_REQUEST內容。請注意,默認分配的php.ini文件中不包含'C'餅乾,出於安全方面的考慮。 register_globals = Off ---> ##是否打開register全局變量 register_long_arrays = Off ####是否註冊老形式的輸入數組, HTTP_GET_VARS 和相關數組;若是你不使用他們,建議爲了提升性能關閉他們. register_argc_argv = Off ####此指令讓PHP確認是否申明 argv&argc 變量 (這些變量會包含GET信息). ;若是你不使用這些變量,爲了提高性能應該關閉此選項. auto_globals_jit = On ####當打開此項, SERVER 和 ENV 變量將在第一次被使用時而不是腳本一開始時建立(運行時);若是這些變量在腳本中沒有被使用過, 打開此項會增長一點性能.;爲了使此指令有效,PHP指令 register_globals, register_long_arrays,;以及 register_argc_argv 必須被關閉. post_max_size = 8M ---> #PHP能夠接受的最大的POST數據大小 magic_quotes_gpc = Off ---> #針對GET/POST/Cookie數據打開Magic quotes. magic_quotes_runtime = Off ####針對實時產生的數據打開Magic quotes,例如從SQL獲取的數據, 從exec()返回的數據等等. magic_quotes_sybase = Off ##使用 Sybase 風格的 magic quotes (使用"來引導'替代\'). auto_prepend_file = ---> #在任何PHP文檔以前或以後自動增長文件 auto_append_file = ####兩個有趣的變量是auto_prepend_file以及auto_append_file。這些變量指定PHP自動添加到任何PHP文檔文件頭或文件尾的其餘文件。這對於爲PHP產生的頁面添加頁眉或頁腳很是有用,能夠節省爲每一個PHP文檔添加代碼的時間。但須要注意這裏的指定文件將會添加到全部的PHP文檔中,因此這些變量必須適合單應用程序(single-application)的服務器。所包含的文件要麼是PHP腳本,要麼是普通的HTML文檔。嵌入式PHP代碼必須用標準&lt;?php...?&gt;標記括起來。 default_mimetype = "text/html" ---> #PHP內建默認爲text/html doc_root = ---> #PHP的"根目錄"。僅在非空時有效。 ; 若是safe_mode=On,則此目錄以外的文件一律被拒絕。 ; 若是編譯PHP時沒有指定FORCE_REDIRECT,而且在非IIS服務器上以CGI方式運行, ; 則必須設置此指令(參見手冊中的安所有分)。 ; 替代方案是使用的cgi.force_redirect指令 user_dir = ####告訴php在使用 /~username 打開腳本時到哪一個目錄下去找,僅在非空時有效。 也就是在用戶目錄之下使用PHP文件的基本目錄名,例如:"public_html" enable_dl = Off ####是否容許使用dl()函數。dl()函數僅在將PHP做爲apache模塊安裝時纔有效。 禁用dl()函數主要是出於安全考慮,由於它能夠繞過open_basedir指令的限制。 在安全模式下始終禁用dl()函數,而無論此處如何設置。 file_uploads = On ---> 是否開啓上傳功能 upload_max_filesize = 2M ---> #最大可上傳文件,2M max_file_uploads = 20 ---> 最大同時能夠上傳20個文件 allow_url_fopen = On ---> #是否容許打開遠程文件 allow_url_include = Off ---> #是否容許include/require遠程文件 default_socket_timeout = 60 ---> 默認的socket超時時間 [Date] ---> 日期 [filter] [iconv] [intl] [sqlite] [sqlite3] [Pcre] [Pdo] [Pdo_mysql] pdo_mysql.cache_size = 2000 ---> Ped_mysql的緩存大小 pdo_mysql.default_socket= ---> 默認的socket時間 [Phar] [Syslog] define_syslog_variables = Off ---> 是否認義各類的系統日誌變量 [mail function] ---> 郵件功能 SMTP = localhost ---> 本地做爲郵件服務器 smtp_port = 25 郵件端口號默認是25 mail.add_x_header = On ---> 是否開啓最大的header [SQL] sql.safe_mode = Off ####是否使用SQL安全模式。若是打開,指定默認值的數據庫鏈接函數將會使用這些默認值代替支持的參數。對於每一個不一樣數據庫的鏈接函數,其默認值請參考相應的手冊頁面。 [ODBC] odbc.allow_persistent = On ---> 容許或阻止持久鏈接. odbc.check_persistent = On ---> 在重用前檢查鏈接是否可用 odbc.max_persistent = -1 ---> 持久鏈接的最大數目,-1意味着沒有限制. odbc.max_links = -1 ---> 最大鏈接數(持久 + 非持久).-1意味着沒有限制. odbc.defaultlrl = 4096 ---> 長字段處理.返回變量的字節數.0 意味着略過. odbc.defaultbinmode = 1 ####二進制數據處理.0意味着略過,1按照實際返回,2轉換到字符.;查看odbc_binmode和odbc_longreadlen 的文檔來獲取針對uodbc.defaultlrl和uodbc.defaultbinmode的解釋 [Interbase] ---> Interbase數據庫 ibase.allow_persistent = 1 ——→ 容許或組織持久鏈接。 ibase.max_persistent = -1 ---> 持久鏈接的最大數目,-1意味着沒有限制. ibase.max_links = -1 ---> 最大鏈接數(持久 + 非持久).-1意味着沒有限制. ibase.timestampformat = "%Y-%m-%d %H:%M:%S" ---> 數據庫時間記錄模式 ibase.dateformat = "%Y-%m-%d" ibase.timeformat = "%H:%M:%S" [MySQL] mysql.allow_local_infile = On ---> 是否容許本地文件鏈接數據庫 mysql.allow_persistent = On ---> 容許或禁止 持久鏈接 mysql.cache_size = 2000 ---> mysql緩存大小 mysql.max_persistent = -1 ---> 持久鏈接的最大數目. -1 意味着沒有限制. mysql.max_links = -1 ---> 鏈接的最大數目(持久和非持久)。-1 表明無限制 mysql.default_port = ####mysql_connect() 使用的默認端口,如不設置,mysql_connect() ;將使用變量 $MYSQL_TCP_PORT,或在/etc/services 下的mysql-tcp 條目(unix), ;或在編譯是定義的 MYSQL_PORT(按這樣的順序) ;Win32環境,將僅檢查MYSQL_PORT。 mysql.default_socket = ####用於本地 MySql 鏈接的默認的套接字名。爲空,使用 MYSQL 內建值 mysql.default_host = ---> mysql_connect() 默認使用的主機(安全模式下無效) mysql.default_user = ---> mysql_connect() 默認使用的用戶名(安全模式下無效) mysql.default_password = ---> mysql_connect() 默認使用的密碼(安全模式下無效 mysql.connect_timeout = 60 ---> 鏈接超時時間,默認是60s mysql.trace_mode = Off [MySQLi] mysqli.max_persistent = -1 ---> 持久鏈接的最大數目. -1 意味着沒有限制. mysqli.allow_persistent = On ---> 容許或拒絕之久鏈接 mysqli.max_links = -1 ---> 最大鏈接數. -1 意味着沒有限制. mysqli.cache_size = 2000 ---> 鏈接緩存大小 mysqli.default_port = 3306 ---> 鏈接端口號 ####mysqli_connect()默認的端口號.若是沒有設置, mysql_connect() 會使用 $MYSQL_TCP_PORT;或者 位於/etc/services的 mysql-tcp 入口或者編譯時定義的MYSQL_PORT 值(按照此順序查找).;Win32 只會查找MYSQL_PORT值. mysqli.default_socket = ####對於本地MySQL鏈接的默認socket名稱. 若是爲空, 則使用MySQL內建默認值. mysqli.default_host = ####mysqli_connect()的默認host值(在安全模式中不會生效) mysqli.default_user = ####mysqli_connect()的默認user值(在安全模式中不會生效). mysqli.default_pw = ####mysqli_connect() 的默認password值(在安全模式中不會生效). ; 注意在此文件中保存密碼通常來講是 *糟糕* 的主義. ; *任何* 使用PHP的用戶能夠執行 echo get_cfg_var("mysqli.default_password") ; 而且獲取到此密碼! 並且理所固然, 任何有對此文件讀權限的用戶均可以獲取到此密碼. mysqli.reconnect = Off ---> 容許或阻止持久鏈接 [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = Off [OCI8] [PostgreSQL] pgsql.allow_persistent = On ---> 容許或阻止持久鏈接. pgsql.auto_reset_persistent = Off ####老是在 pg_pconnect() 時檢測斷開的持久鏈接.;自動重置特性會引發一點開銷. pgsql.max_persistent = -1 ---> 持久鏈接的最大數目. -1 意味着沒有限制. pgsql.max_links = -1 ---> 最大鏈接數 (持久 + 非持久). -1 意味着沒有限制 pgsql.ignore_notice = 0 ---> 是否忽略 PostgreSQL 後端通告消息.;通告消息記錄會須要一點開銷. pgsql.log_notice = 0 ####是否記錄 PostgreSQL 後端通告消息.;除非 pgsql.ignore_notice=0, 不然模塊沒法記錄通告消息。 [Sybase-CT] sybct.allow_persistent = On ---> 容許或阻止持久鏈接. sybct.max_persistent = -1 ---> 持久鏈接的最大數目. -1 意味着沒有限制. sybct.max_links = -1 ---> 最大鏈接數 (持久 + 非持久). -1 意味着沒有限制. sybct.min_server_severity = 10 ---> 顯示出的錯誤最小嚴重程度. sybct.min_client_severity = 10 ---> 顯示出的消息最小嚴重程度 [bcmath] bcmath.scale = 0 ---> #用於全部bcmath函數的10十進制數數字的個數 [browscap] [Session] session.save_handler = files ---> 用於保存/取回數據的控制方式 session.use_cookies = 1 ---> 是否使用cookies session.use_only_cookies = 1 ####這個選項容許管理員去保護那些在URL中傳送session id的用戶免於被攻擊;默認是0. session.name = PHPSESSID ---> session 的名字(同時做爲cookie的名稱 session.auto_start = 0 ——→ 在請求開始時初始化 session session.cookie_lifetime = 0 ---> cookie的存活秒數,若是爲0,則是直到瀏覽器從新啓動 session.cookie_path = / ---> cookie的有效路徑 session.cookie_domain = ---> cookie的有效域名 session.cookie_httponly = ####是否將httpOnly標誌增長到cookie上, 增長後則cookie沒法被瀏覽器的腳本語言(例如JavaScript)存取. session.serialize_handler = php 用於序列化數據的處理器. php是標準的PHP序列化器. session.gc_probability = 1 ####; 定義'垃圾回收'進程在每次session初始化時開始的比例. ; 比例由 gc_probability/gc_divisor來得出, ; 例如. 1/100 意味着在每次請求時有1%的機會啓動'垃圾回收'進程. session.gc_divisor = 1000 session.gc_maxlifetime = 1440 ####在這裏數字所指的秒數後,保存的數據將被視爲'碎片(garbage)'並由gc進程清理掉。 session.bug_compat_42 = Off ####PHP 4.2 和更早版本有一個未公開的 特性/bug , 此特性容許你在全局初始化一個session變量,即使 register_globals已經被關閉.;若是此特性被使用,PHP 4.3 和更早版本會警告你.;你能夠關閉此特性而且隔離此警告. 這時候,若是打開bug_compat_42,那此警告只是被顯示出來. session.bug_compat_warn = Off session.referer_check = ####檢查HTTP Referer來防止帶有id的外部URL.;HTTP_REFERER 必須包含從session來的這個字段纔會被認爲是合法的. session.entropy_length = 0 ---> 今後文件讀取多少字節 session.cache_limiter = nocache ####設置爲{nocache,private,public,}來決定HTTP緩衝的類型;留空則防止發送anti-caching頭. session.cache_expire = 180 ---> 文檔在n分鐘以後過時. session.use_trans_sid = 0 ####trans sid 支持默認關閉. ;使用 trans sid 可能讓你的用戶承擔安全風險.;使用此項必須當心.; - 用戶也許經過email/irc/其餘途徑發送包含有效的session ID的URL給其餘人.; - 包含有效session ID的URL可能被存放在容易被公共存取的電腦上.; - 用戶可能經過在瀏覽器歷史記錄或者收藏夾裏面的包含相同的session ID的URL來訪問你的站點. session.hash_function = 0 ---> 選擇hash方法;0:MD5(128 bits);1:SHA-1(160 bits) session.hash_bits_per_character = 5 ; 當轉換二進制hash數據到可讀形式時,每一個字符保存時有幾位. ; 4 bits: 0-9, a-f; 5 bits: 0-9, a-v; 6 bits: 0-9, a-z, A-Z, "-", "," url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" URL rewriter會在已經定義的一組HTML標籤內查找URL.; form/fieldset 是特殊字符; 若是你在這裏包含他們, rewriter會增長一個包含信息的隱藏<input>字段不然就是在URL中附加信息.; 若是你你想遵照XHTML, 刪除form的入口.; 注意 全部合法的入口都須要一個"="符號, 甚至是沒有任何值的. [MSSQL] mssql.allow_persistent = On ---> 容許或阻止持久鏈接 mssql.max_persistent = -1 ---> 持久鏈接的最大數目. -1 意味着沒有限制. mssql.max_links = -1 ---> 最大鏈接數 (持久 + 非持久). -1 意味着沒有限制. mssql.min_error_severity = 10 ---> 顯示出的錯誤最小嚴重程度. mssql.min_message_severity = 10 ---> 顯示出的消息最小嚴重程度 mssql.compatability_mode = Off ---> PHP 3.0 老版本的兼容模式. mssql.secure_connection = Off ---> 當鏈接到服務器時使用NT驗證 [Assertion] [COM] [mbstring] [gd] [exif] [Tidy] ####當調用tidy時,默認指向tidy配置文件的路徑 tidy是否自動清除和修復輸出?; 警告: 不要在你產生非html內容時使用此項,例如產生動態圖片時 tidy.clean_output = Off 清除功能是否開啓,本文中爲關閉狀態 [soap] soap.wsdl_cache_enabled=1 ---> 打開或關閉WSDL緩衝特性. soap.wsdl_cache_dir="/tmp" ---> 設置SOAP擴展存放緩衝文件的目錄 soap.wsdl_cache_ttl=86400 ---> (存活時間)設置當緩衝文件被用來替換原有緩衝文件的秒數 soap.wsdl_cache_limit = 5 ---> 最小緩存 [sysvshm] [ldap] ldap.max_links = -1 [mcrypt] [dba] [xsl]
相關文章
相關標籤/搜索