您好,登錄后才能下訂單哦!
怎樣透析PHP的配置文件php.ini,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
PHP.INI文件相信每位PHP愛好者都不會陌生,在PHP的上一個(gè)版本PHP3.0中它被命名為PHP3.INI。用NOTEPAD打開它,文件通常在操作系統(tǒng)的Windows目錄下。下面億速云小編來講解下怎樣透析PHP的配置文件php.ini?
怎樣透析PHP的配置文件php.ini
大家都看到,PHP.INI文件里面有很多分號“”,和Windows系統(tǒng)一樣,這些分號用來表示注解,也就是說為了配置文件清晰易懂,開發(fā)者在分號后面對每個(gè)配置功能做了簡短說明,系統(tǒng)處理時(shí)會忽略這些注解行。當(dāng)然,另外一個(gè)好處是,當(dāng)PHP系統(tǒng)配置有變化的時(shí)候,我們可以對某些行加上或去掉注解就行了,簡單又方
便。
auto_prepend_filestring可以指定一個(gè)文件自動(dòng)地在讀取所有php文件之前解析執(zhí)行,可以為PHP、ASP、HTML等任何文件(不過圖像文件可不行),在特殊時(shí)候倒是很有用。比如你想在每個(gè)PHP頁面上增加一段廣告,又假設(shè)你在開發(fā)一個(gè)網(wǎng)站,想讓所有訪問者在讀取任何PHP頁面之前進(jìn)行身份驗(yàn)證,你就可以把你的驗(yàn)證代碼作成單獨(dú)文件,然后在這里設(shè)置string為該文件名就行啦。細(xì)心的讀者要問了:如果我只是某些文件需要這些功能,可怎么辦呀,開動(dòng)腦筋吧,舉個(gè)例子:
myprefix.php文件
if(strstr(strtoupper(PHP_SELF),"/PHPTEST/"))
echo"我的廣告!
";
?>
這樣只要設(shè)置:auto_prepend_file=“myprefix.php”,那么所有phptest目錄下的PHP文件就都包含你的廣告頭啦!還需要說明的是這個(gè)文件應(yīng)該放在include_path所指的路徑里面,不然可能會出錯(cuò)的,下面就會提到它。
auto_append_filestring和上面功能類似,只是自動(dòng)加在PHP文件末尾,而且PHP程序用exit()退出時(shí)就不管用了。有了這個(gè)功能,我們可以易如反掌地添加公司地址的腳注了!
include_pathstring這個(gè)參數(shù)的作用是讓include()、require()等函數(shù)在這里所定義的路徑中查找文件,是不是有點(diǎn)象DOS時(shí)代里用的SETPATH命令?這個(gè)參數(shù)可以提供一個(gè)路徑列表,不過在UNIX中路徑間用冒號分隔,在NT中用分號,而且斜杠的方向也不相同。如:
UNIX例:include_path=.:/home/lib
NT例:include_path=".:c:homeib"其中“.”表示當(dāng)前目錄。
gpc_orderstring
GPC是GET/POST/COOKIE三種變量的第一個(gè)字母,它的順序體現(xiàn)系統(tǒng)處理三種變量的優(yōu)先級別,從左到右,優(yōu)先權(quán)依次遞增。默認(rèn)設(shè)置為GPC,這樣當(dāng)有其中任兩種或三種名稱相同變量傳遞到服務(wù)器時(shí),系統(tǒng)會按優(yōu)先權(quán)排序,只讀取優(yōu)先權(quán)較高的變量。又比如設(shè)定成“GP”表示忽視cookie,并在存取方法(method)相同時(shí),以POST取代GET。當(dāng)然,我們在編程過程中應(yīng)當(dāng)盡量避免同時(shí)用不同的方式傳遞名稱相同的變量,否則程序的可讀性會變壞,而且在配置不同的系統(tǒng)里可能會有不同的輸出結(jié)果。
magic_quotes_gpcboolean這個(gè)參數(shù)能確定包含在GET/POST/COOKIE這三種變量中的特殊字符:單引號、雙引號、斜杠,是否加轉(zhuǎn)義字符反斜杠(就是C語言里常用的“”)?因?yàn)樵赑HP數(shù)據(jù)庫等系統(tǒng)中,單引號等字符通常有特殊意義,為了和真正的字符區(qū)分,我們可以設(shè)置magic_quotes_gpc=on,這樣如果我們從用戶端得到的變量中有單引號時(shí),會在前面加轉(zhuǎn)義符,然后我們可以根據(jù)需要用函數(shù)stripslashes(stringstr);(該函數(shù)可去掉字串中的反斜杠轉(zhuǎn)義符“”。若是連續(xù)二個(gè)反斜杠,則去掉一個(gè),留下一個(gè)。若只有一個(gè)反斜杠,就直接去掉。)來去掉轉(zhuǎn)義符“”,我們可以比較一下:
怎樣透析PHP的配置文件php.ini
echoa;
?>
讓我們分別在magic_quotes_gpc=on和off的情況下,在文本框中輸入單引號、雙引號,然后提交,看看有什么區(qū)別?
SMTPstring指定郵件發(fā)送服務(wù)器的域名或IP地址,這樣我們就可以發(fā)信啦,比起微軟的ASP來,PHP的這個(gè)功能簡單方便得多了,有人要問,如果我沒有配備郵件服務(wù)器怎么辦?很簡單,只要填上當(dāng)?shù)豂SP的郵件服務(wù)器就行了。其實(shí)收發(fā)郵件服務(wù)器就像我們現(xiàn)實(shí)生活中的郵局一樣,在哪個(gè)郵局都能發(fā)信,而收信是在固定郵局。
mysql.default_hoststring
mysql.default_userstring
mysql.default_passwordstring
用過ODBC的讀者們都知道,設(shè)置ODBC的時(shí)候總需要設(shè)置數(shù)據(jù)庫所在及其默認(rèn)的登錄用戶名和口令,這幾個(gè)參數(shù)也是這個(gè)意思,不過是用在MYSQL里面罷了。為了安全起見,我們還有必要在MYSQL里對該用戶的權(quán)力做一些限定,千萬不要偷懶用“root“啊!如果為了方便而設(shè)置了這些參數(shù),那我們就能直接用函數(shù)mysql_connect()來連接數(shù)據(jù)庫了,注意這里可以不用任何參數(shù)!
大家可能在想,雖然這樣很方便,同時(shí)也很危險(xiǎn)呀!別急,在PHP的安全模式里這些參數(shù)是無效的,下面我們來看看安全模式的設(shè)置吧。
Safemodeboolean這可不是WINDOWS98的安全模式啊。當(dāng)PHP系統(tǒng)處于安全模式下時(shí),我們就能對PHP程序的行為進(jìn)行一定的控制,這時(shí)候一些數(shù)據(jù)庫比如MYSQL、INFOMIX等的默認(rèn)數(shù)據(jù)庫主機(jī)、用戶名、口令等設(shè)置無效,非法用戶就不能輕易連接數(shù)據(jù)庫了。而且在安全模式下safe_mode_allowed_env_varsstring該項(xiàng)設(shè)置表示什么類型的系統(tǒng)環(huán)境變量可以被程序更改,若設(shè)置成safe_mode_allowed_env_vars=PHP_則表示只有PHP_打頭的系統(tǒng)環(huán)境變量可以被修改,例如這時(shí)如果在程序中企圖使用putenv("windir=UUU");來修改環(huán)境變量,系統(tǒng)就會提示一個(gè)安全模式的保護(hù)錯(cuò)誤。還有,安全模式對系統(tǒng)命令system()等有一定限制,如只能在指定目錄運(yùn)行等,這樣能對系統(tǒng)文件有一定的保護(hù)作用。
log_errorsboolean這個(gè)參數(shù)指定PHP程序出錯(cuò)時(shí)是否要將錯(cuò)誤信息記錄在LOG文檔中。在NT系統(tǒng)中如果我們同時(shí)設(shè)置error_log=syslog的話,我們就能在事件查看器的應(yīng)用程序日志里看到PHP所發(fā)生過的錯(cuò)誤信息,這對測試一個(gè)大型的系統(tǒng)有些幫助。
error_prepend_string=""
error_append_string=""
這兩個(gè)設(shè)置參數(shù)更有意思啦,按如上設(shè)置,那么我們一眼就能看到:我們的程序是否出錯(cuò)了!因?yàn)樗墓δ苁前殉鲥e(cuò)信息設(shè)置成顯眼的紅顏色了。
至于其它的很多選項(xiàng),有的一看便知,有興趣大家自己試試吧!
關(guān)于怎樣透析PHP的配置文件php.ini問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。