PHP实战技巧(15)通过phpinfo()了解你的PHP配置状况(一)

前言
工欲善其事,必先利其器。当你使用php编程,就需要对它的运行状况有所了解,否则事倍功半。
从今天起,和大家聊一聊 phpinfo() 函数所展示的信息含义。
phpinfo() 有什么用
它是一个系统函数,你可以直接编写代码,然后通过网页访问它,就能看到一个类似于这样的网页。
该网页包含了当前php的各种配置信息、扩展模块的信息等。以前有一种软件叫“探针”,专门用来探测服务器当前的php相关信息,现在随着虚拟主机的没落,已经越来越少人用啦。
如何阅读 phpinfo 的信息?
整个网页内容非常多,但主要分为四个部分
基本信息,也就是最顶部的内容。配置信息(configuration)各种模块的信息php credits,荣誉名单,记录对php语言有帮助的人php license 版权许可说明
基本配置
本文和大家说说基本信息中,各项内容的含义。(以我当前使用的php版本为例)
php 版本
最顶端:php version 7.2.3,就是我们当前php的版本。
system
darwin mac.local 17.5.0 darwin kernel version 17.5.0: fri apr 13 19:32:32 pdt 2018; root:xnu-4570.51.2~1/release_x86_64 x86_64
运行此php的操作系统信息(我是mac机)
build date
mar 19 2018 11:50:19
编译时间
configure command
'./configure' '--prefix=/usr/local/opt/php723' '--exec-prefix=/usr/local/opt/php723/' '--enable-debug' '--enable-fpm' '--with-iconv=/usr/' '--with-config-file-path=/usr/local/etc/php723' '--with-openssl=/usr/local/opt/openssl' '--enable-bcmath' '--with-curl' '--enable-exif' '--with-gd' '--with-mysqli' '--with-pdo-mysql' '--enable-zip' '--with-libzip' '--enable-mysqlnd' '--enable-sockets' '--enable-mbstring' '--enable-soap' '--with-freetype-dir=/usr/local/opt/freetype' '--with-xmlrpc' '--with-jpeg-dir=/usr/local/opt/jpeg' '--with-png-dir=/usr/local/opt/libpng' '--with-libxml-dir=/usr/local/opt/libxml2' '--without-gmp'
编译时,使用的各项配置信息。
server api
fpm/fastcgi
当前采用的服务模式为 fcgi(快速通用网关接口协议),实现该协议的服务为 fpm(也就是php-fpm),与 nginx 搭配的时候,基本都是通过它来进行通讯的,以后有机会和大家细聊。
virtual directory support
disabled
虚拟目录支持,目前是禁用状态(disabled)也就是不支持。
configuration file (php.ini) path
/usr/local/etc/php723
php.ini 的所在目录。
loaded configuration file
/usr/local/etc/php723/php.ini
php.ini 所在的完整文件路径。
scan this dir for additional .ini files
(none)
additional .ini files parsed
(none)
php api
20170718
php核心版本,一般大版本变更时,此日期会随之变化(应该是核心版本的发布或编译日期)
其他
剩下的就不一一说明了,需要额外提醒的是,此处出现的 zend 是php解释器名字,你也可以认为它就是php核心,除此之外还有 zend框架、zend代码混淆、zend代码编辑器,注意不要把自己弄混了。
总结
今天先和大家介绍下基本信息,其中像php版本、configure的编译配置、php.ini的路径、php api 的版本等几项,是我们日常开发中需要用到的。其余的,大家有兴趣可以自己行了解。
明天开始,介绍第二部分:各种扩展库。