php.ini配置文档詳解

字號+ 編輯: 国内TP粉 修訂: 面向ICU 來源: ThinkPHP 2023-09-11 我要說兩句(0)

陳列一下php.ini的歷史配置解釋, 便於你來搜索一下, 不知道還有沒有參考價值。php的歷史包袱非常的重, 很多東西早就沒人用了, 但是刪了參考文章也可惜了。筆者遇到過在北京電視台制作在線包節目時,合作方需要用php+mssql進行即時大量數據處理的情況。如果對你有點用處就行,先湊合看。

命令行查看php.ini, 例如:

[root@localhost ~]# grep -v “;” /usr/local/php/etc/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_syba

se = 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代碼必須用標準<?php…?>標記括起來。

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會增加一個包含信息的隱藏字段否則就是在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]

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • PHP的換行符是什麽

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯繫商家解決

我要說說
網上賓友點評