配置文件
php.ini : 對於服務器模塊版本的PHP,僅在web服務器啓動時讀取一次,對於CGI和CLI版本,每次調用都會讀取。
CGI :「公共網關接口」(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行「交談」的一種工具,
其程序須運行在網絡服務器上。以CGI方式運行時,webserver將用戶請求 以消息的方式轉交給PHP獨立進程,
PHP與web服務之間無從屬關係。純粹調用--返回結果的形式通信。而模塊方式,則是將PHP作爲web-server的子進程控制,二者有從屬關係
最明顯的例子就是在CGI模式下,若是修改了PHP.INI的配置文件,不用重啓web服務即可生效,而模塊模式下則須要重啓web服務。
CLI :「 命令行界面」(Command Line Interface),可在用戶提示符下鍵入可執行指令的界面。CLI則是命令行接口,用於在操做系統
命令行模式下執行PHP,好比能夠直接在win的cmd或Linux的shell模式下直接輸入 php a.php 來獲得結果。它與CGI模式最大的不一樣的
地方在於既不會輸出HTTP頭信息(CGI模式除了輸出用戶能看到的結果外,還會輸出用戶不能直接看到的HTTP 頭信息),拋出的信息也直接以
文本方式而不以 HTML方式給出,好比新建一個 test.php,寫入內容 <?php phpinfo();?>在瀏覽器中能夠看到以HTML表格描述的信息,
而在命令行輸入 phptest.php則會直接看到純文本的輸出。
.user.ini:自PHP5.3開始。PHP支持基於每一個目錄的.htaccess風格的INI文件,此類文件僅被CGI/FastCGI SAPI處理。此功能是PECL的htaccess擴展做廢。若是使用Apache,則用.htaccess文件有一樣效果。能夠再httpd.conf中覆蓋php.ini的值。
複製代碼
配置命令
directive = value
啓用全局變量: register_globals=off
啓動爲ON,php會講$_POST,$_GET,$_COOKLE,$_ENV,$SESSION數組中的$key=>$value直接註冊爲變量,好比$_POST['USEname'] 則會註冊爲$USEname。
新版本廢棄,安全問題:變量之間互相覆蓋,引發沒必要要的麻煩。
短標籤:short_open_tag=on
容許用縮寫的方式寫php ,這個設置主要是決定是否容許使用PHP代碼開始標誌的縮寫形式(<??>)。若是禁用了,必須使用PHP代碼開始的標誌的完整形式(<?php ?>)
也影響到縮寫形式<?= 這個和<?echo 等價 所以避免文件上傳分析特徵<?php ?>被繞過關閉此函數
安全模式:safe_mode=off
被移除。5.4.0,以前版本可使用
禁用類/函數
disable_classes=,disable_functions=,disable_functions=opendir,readdir,scandir,fopen,unlink
禁用某些類,進制某些函數,接受逗號分隔函數名列表做爲參數。只能再php.ini配置
上傳文件 :file_uploads=on
上傳文件大小:upload_max_filesize=8m
文件上傳臨時目錄:upload_tmp_dir=
用戶訪問目錄限制:open_basedir=.:/tmp/
設置此選項能夠控制php腳本只能訪問只能目錄,這樣避免訪問不該被訪問的目錄,必定程度限制了phps
hell危害。咱們通常能夠設置只能訪問網站目錄(php腳本文件所在目錄和/tmp/目錄),表示容許訪問 目錄。
防止php木馬跨站運行。
錯誤信息控制:display_error=on
是否將錯誤信息做爲輸出的一部分,站點發布後應該關閉這項功能,以避免暴露信息。調試的時候打開
設置錯誤報告級別:error_reporting=E_ALL
這個設置將錯誤級別設置爲最高,能夠顯示全部問題。方便查錯。
錯誤日誌:error_log=
錯誤日誌的位置。不定義寫到web服務器的錯誤日誌中去
log_errors=on
將錯誤日誌輸出到文件而不是前端。
log_errors_max_length=1024
錯誤日誌關聯信息的最大長度。設爲0表示無限長度
魔術引號:magic_quotes_gpc=on
magic_quotes_runtime=off
爲GPC(GET/POST/Cookie)操做設置magic_quotes狀態。當magic_quotes爲on,全部的'"\和null被一個反斜槓自動轉義"
是否容許打開遠程文件:allow_url_fopen=on
是否容許包含遠程文件:allow_url_include=off複製代碼