前言
工欲善其事,必先利其器。当你使用PHP编程,就需要对它的运行状况有所了解,否则事倍功半。
从今天起,和大家聊一聊 phpinfo() 函数所展示的信息含义。
phpinfo() 有什么用
它是一个系统函数,你可以直接编写代码 <?php 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 的版本等几项,是我们日常开发中需要用到的。其余的,大家有兴趣可以自己行了解。
明天开始,介绍第二部分:各种扩展库。