PHP.INI 檔案配置



在你的機器上安裝PHP軟體後,php.ini檔案會在安裝目錄下建立。對於XAMPP,php.ini檔案位於c:\xamm\php資料夾中。它是一個重要的配置檔案,用於控制性能並設定所有與PHP相關的引數。

phpinfo() 函式顯示PHP、Apache、MySQL以及Web伺服器安裝的其他部分的不同引數及其當前值的列表。

執行以下程式碼以顯示設定,其中一個設定顯示“php.ini”檔案的路徑

<?php
   echo phpinfo();
?>

已載入的配置檔案

找到顯示php.ini檔案位置的“已載入的配置檔案”設定

C:\xampp\php\php.ini

PHP行為的各個方面都由大量引數(稱為指令)配置。“php.ini”檔案的大多數行都以分號(;)開頭,表示該行已註釋。未註釋的行實際上是有效的指令及其值。換句話說,要啟用併為特定指令賦值,請刪除前面的分號。

directive = value

指令名稱是*區分大小寫的*。指令是用於配置PHP或PHP擴充套件的變數。請注意,沒有名稱驗證,因此如果找不到預期的指令,將使用預設值,該值可以是字串、數字、PHP常量(例如E_ALL或M_PI)、INI常量之一(On、Off、True、False、Yes、No和None)。

實際上,C:\XAMPP\PHP資料夾包含兩個INI檔案,一個用於生產環境,另一個用於開發環境。

php.ini-development.ini與其生產版本非常相似,只是在錯誤處理方面更為詳細。在開發階段,將其複製為php.ini以便追蹤程式碼中的錯誤。程式碼準備好部署後,使用php.ini-production.ini檔案作為有效的php.ini檔案,這實際上會在很大程度上抑制錯誤訊息。

php.ini中的指令分為不同的類別,例如錯誤處理、資料處理、路徑和目錄、檔案上傳、PHP擴充套件和模組設定。

以下是“php.ini”檔案中一些重要指令的列表

short_open_tag = Off

短標籤如下所示:<? ?>。如果要使用XML函式,則必須將此選項設定為Off。

safe_mode = Off

如果將其設定為On,則可能使用--enable-safe-mode標誌編譯了PHP。安全模式與CGI用途最相關。請參閱本章前面“CGI編譯時選項”部分中的說明。

safe_mode_exec_dir = [DIR]

此選項僅在安全模式開啟時才相關;它也可以在Unix構建過程中使用--with-exec-dir標誌設定。處於安全模式的PHP僅從此目錄中執行外部二進位制檔案。預設為/usr/local/bin。這與提供普通的PHP/HTML網頁無關。

safe_mode_allowed_env_vars = [PHP_]

此選項設定使用者在安全模式下可以更改的環境變數。預設情況下,只有以“PHP_”開頭的變數。如果此指令為空,則大多數變數都是可更改的。

safe_mode_protected_env_vars = [LD_LIBRARY_PATH]

此選項設定使用者在安全模式下無法更改的環境變數,即使safe_mode_allowed_env_vars設定得很寬鬆也是如此。

disable_functions = [function1, function2...]

PHP4配置中一個受歡迎的補充,並在PHP5中延續,就是能夠出於安全原因停用選定的函式。以前,這需要手工編輯PHP的C程式碼。檔案系統、系統和網路函式可能是首先要停用的,因為允許透過HTTP寫入檔案和更改系統從來都不是一個好主意。

max_execution_time = 30

在安全模式下,`set_time_limit()` 函式無效,因此這是在安全模式下使指令碼超時的主要方法。在 Windows 系統中,必須根據最大記憶體消耗而不是時間來中止指令碼。如果使用 Apache,也可以使用 Apache 的超時設定來實現超時,但這也會應用於站點上的非 PHP 檔案。

error_reporting = E_ALL & ~E_NOTICE

預設值為 E_ALL & ~E_NOTICE,即除通知之外的所有錯誤。開發伺服器至少應設定為預設值;只有生產伺服器才應考慮使用更低的值。

error_prepend_string = [""]

此設定與其對應的 `error_append_string` 配合使用,允許您使錯誤訊息的顏色與其他文字不同,或進行其他設定。

warn_plus_overloading = Off

如果 `+` 運算子與字串一起使用(例如在表單值中),此設定會發出警告。

variables_order = EGPCS

此配置設定取代了 `gpc_order`。兩者現在都已棄用,`register_globals` 也已棄用。它設定不同變數的順序:環境變數 (Environment)、GET、POST、COOKIE 和 SERVER(又名內建變數)。您可以更改此順序。

變數將按從左到右的順序依次被覆蓋,最右邊的變數始終獲勝。這意味著,如果您保留預設設定,並碰巧為環境變數、POST 變數和 COOKIE 變數使用了相同的名稱,則在程序結束時,COOKIE 變數將擁有該名稱。在實際應用中,這種情況很少發生。

register_globals = Off

此設定允許您決定是否要將 EGPCS 變數註冊為全域性變數。此設定現已棄用,從 PHP 4.2 開始,此標誌預設設定為 Off。請改用超全域性陣列。本書中的所有主要程式碼清單都使用超全域性陣列。

magic_quotes_gpc = On

此設定轉義傳入的 GET/POST/COOKIE 資料中的引號。如果您使用了許多可能提交給自己或其他表單並顯示錶單值的表單,則可能需要將此指令設定為 On,或準備對字串型別資料使用 `addslashes()` 函式。

magic_quotes_runtime = Off

此設定轉義傳入的資料庫和文字字串中的引號。請記住,SQL 在儲存字串時會為單引號和撇號新增反斜槓,並在返回它們時不會去除反斜槓。如果此設定為 Off,則在輸出來自 SQL 資料庫的任何型別的字串資料時,需要使用 `stripslashes()` 函式。如果 `magic_quotes_sybase` 設定為 On,則此設定必須為 Off。

magic_quotes_sybase = Off

此設定使用 Sybase 風格的單引號而不是反斜槓來轉義傳入的資料庫和文字字串中的單引號。如果 `magic_quotes_runtime` 設定為 On,則此設定必須為 Off。

auto_prepend_file = [path/to/file]

如果在此處指定路徑,PHP 必須在每個 PHP 檔案的開頭自動包含它。包含路徑限制適用。

auto_append_file = [path/to/file]

如果在此處指定路徑,PHP 必須在每個 PHP 檔案的結尾自動包含它,除非您使用 `exit()` 函式進行轉義。包含路徑限制適用。

include_path = [DIR]

如果設定此值,則只允許包含或載入來自這些目錄的檔案。包含目錄通常位於您的文件根目錄下;如果您在安全模式下執行,則這是必需的。將其設定為 "." 以包含與指令碼位於同一目錄下的檔案。多個目錄用冒號分隔:".:/usr/local/apache/htdocs:/usr/local/lib"。

doc_root = [DIR]

如果您使用的是 Apache,則已在 `httpd.conf` 中為該伺服器或虛擬主機設定了文件根目錄。如果您使用的是安全模式,或者只想在站點的部分割槽域(例如,Web 根目錄中的一個子目錄)啟用 PHP,則在此處設定此值。

file_uploads = [on/off]

如果您將使用 PHP 指令碼上傳檔案,請啟用此標誌。

upload_tmp_dir = [DIR]

除非您理解 HTTP 上傳的含義,否則請勿註釋此行!

session.save_handler = files

除極少數情況外,您都不希望更改此設定。因此,請不要更改它。

ignore_user_abort = [On/Off]

此設定控制網站訪問者單擊瀏覽器“停止”按鈕時發生的情況。預設為 On,這意味著指令碼將繼續執行直到完成或超時。如果將此設定為 Off,則指令碼將中止。此設定僅在模組模式下有效,而不是 CGI 模式。

mysql.default_host = hostname

如果未指定其他主機,則連線到資料庫伺服器時使用的預設伺服器主機。

mysql.default_user = username

如果未指定其他名稱,則連線到資料庫伺服器時使用的預設使用者名稱。

mysql.default_password = password

如果未指定其他密碼,則連線到資料庫伺服器時使用的預設密碼。

廣告