nas php.ini,php.ini 配置文件常用详解
我們并不知道 php.ini 所在路徑,這時(shí)候就需要通過(guò)?命令來(lái)查一查在哪里。
/usr/local/php/bin/php -i |head
php.ini?中常用的配置有如下:
( 1) 配置 disable_function
disable_functions = ?eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chg
rp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsock
open,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,p
roc_close
說(shuō)明:在 php 中有非常多的函數(shù),在這些函數(shù)中有一些是不太安全的,所以有必要把它們禁掉。像 exec, shell_exec 都是在 php 代碼中執(zhí)行 linux shell 命令,很危險(xiǎn),要禁掉。
( 2)配置 error_log
作為一個(gè)運(yùn)維人員我們理應(yīng)學(xué)會(huì)簡(jiǎn)單的 php 錯(cuò)誤排查技能,其實(shí) php 的錯(cuò)誤跟 linux 下其他服務(wù)都是一樣的,遇
到錯(cuò)誤后要查看錯(cuò)誤日志,根據(jù)報(bào)錯(cuò)信息來(lái)判斷錯(cuò)誤的原因。那如何查看 php 的錯(cuò)誤信息呢?
第一種情況,可以直接把錯(cuò)誤信息顯示在瀏覽器中,配置方法是,在 php.ini 中找到 display_error=on,重啟apache 服務(wù)后,刷新網(wǎng)頁(yè),發(fā)現(xiàn)不再是白頁(yè),而是具體的錯(cuò)誤。這樣我們就可以根據(jù)錯(cuò)誤來(lái)調(diào)試 php 代碼了。這種情況適合臨時(shí)調(diào)試,但是這種情況不適合長(zhǎng)期配置,因?yàn)樗绣e(cuò)誤都會(huì)顯示在瀏覽器上,假如哪天 php 程序員不小心寫(xiě)錯(cuò)一段代碼,而且沒(méi)測(cè)試直接上傳到服務(wù)器上了,那么我們的用戶就會(huì)直接看到這些錯(cuò)誤,這樣是不合適的。
第二種情況,把錯(cuò)誤信息輸出到一個(gè)日志文件中,具體配置如下:
在 /usr/local/php/etc/php.ini 加入或者更改 :
display_error=off ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?把錯(cuò)誤不再瀏覽器顯示
log_errors=on ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??打開(kāi)錯(cuò)誤日志開(kāi)關(guān)
error_log=/usr/local/php/logs/error.log指定錯(cuò)誤日志的路徑,為了避免權(quán)限問(wèn)題不能自動(dòng)生成該文件,我們可以先創(chuàng)建該文件,并且修改權(quán)限為 777
error_reporting = E_ALL | E_STRICT ? ? ? ??定義錯(cuò)誤日志的級(jí)別
配置完成后記得要重啟 apache 服務(wù),才會(huì)生效。
( 3)配置 open_basedir
在 php 中是有這個(gè) open_basedir 概念的,它的意思是,把執(zhí)行 php 的用戶限定在指定的?路徑下,這樣通過(guò)權(quán)限縮小的方式達(dá)到安全目的。作為一個(gè)網(wǎng)站,其實(shí)我們只需要讓 php?用戶訪問(wèn)到網(wǎng)站的代碼即可,沒(méi)有必要讓它去訪問(wèn)其他目錄。那如何配置呢?
在 /usr/local/php/etc/php.ini 中加入或者更改
open_basedir = /dir1/:/dir2
說(shuō)明: /dir1 和/dir2 為我們?cè)试S php 可以訪問(wèn)的兩個(gè)目錄,同樣也可以是多個(gè),目錄之?間用:分隔。一旦限定后,如果 php 試圖去訪問(wèn)除/dir1 和/dir2 外的目錄下的文件時(shí),就會(huì)報(bào)錯(cuò)了。
除了在 php.ini 中定義 open_basedir 外,其實(shí)我們還可以在 apache 的配置文件中定義,因?yàn)橐粋€(gè) apache 下可能有多個(gè)站點(diǎn),我們要針對(duì)不同的站點(diǎn)限定不同的 open_basedir,配置如下:
# vim httpd.conf 或者虛擬主機(jī)配置文件,加入
php_admin_value open_basedir "/dir1/:/dir2/"
總結(jié)
以上是生活随笔為你收集整理的nas php.ini,php.ini 配置文件常用详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何配置php的ip地址吗,linux如
- 下一篇: nextcloud php工程师,教你如