美文网首页PHP那些事儿
PHP扩展(extensions)

PHP扩展(extensions)

作者: 栋公子 | 来源:发表于2019-06-25 21:57 被阅读0次

    什么是PHP扩展?

    为PHP提供一些扩展的功能

    常见的PHP扩展

    mysql-----提供给PHP操作MySQL数据库的功能

    gd2----动态创建图像

    xdebug-----跟踪、调试和分析PHP程序的运行状况

    查看PHP扩展

    1.使用phpinfo探针

    phpinfo()---输出关于PHP配置的信息

    输出PHP当前状态的大量信息,包含了PHP编译选项、启用的扩展、PHP的版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path变量、配置选项的本地值和主值、HTTP头和PHP授权信息(license).

    以上是PHP官方对phpinfo()函数的解释,我们接下来用这个函数来做一个测试。

    首先新建一个文件

    <?php

    phpinfo();

    保存并在浏览器打开这个页面,浏览器会输出响应的信息,其中就包括了当前我们开启了哪些PHP的扩展

    2.使用get_loaded_extensions()

    该函数返回了PHP解析器里所有编译并加载的模块名(既已经开启的PHP扩展)

    新建文件夹

    <?php

    get_loaded_extensions();

    会在屏幕上打印并输入所有已经加载的PHP扩展,以所以数组返回值

    3.使用extension_loaded(string name)函数

    作用:检查一个扩展是否加载

    例如我们检查redis是否加载就可以这样写

    <?php

    extension_loaded("redis");

    返回值是bool类型,如果加载既返回TRUE,否则为FALSE

    4.命令行模式查看当前安装了哪些扩展

    php -m

    管理PHP扩展

    1.PHP扩展所在位置

    在我们最初安装PHP的时候,PHP扩展默认的位置在ext文件下,当然了我们也可以进行更改,更改的方式是通过修改PHP的配置文件来实现的

    打开PHP配置文件php.ini

    找到extension_dir="" 通过这个选项我们来自定义PHP扩展的文件所在目录

    以下为我Windows下的扩展截图

    2.如何开启已经安装但是并未开启的PHP扩展

    打开php.ini文件

    找到 Dynamic Extensions 模块

    下面没有开启的扩展前面都是有分号的,只要把分号删掉,重启Apache服务器或者Nginx服务器就可以了,响应的我们安装了某个扩展的时候,我们就可以直接这样书写

    extension=要开启的扩展名称

    然后重启服务器就可以了

    如何安装PHP扩展

    本次介绍包括Windows和Linux扩展的安装接收,但是在介绍之前我们先来认识一下PECL.

    什么是PECL?

    PECL 是PHP扩展的存储库,提供了所有已知扩展名和目录,用于下载和开发PHP扩展

    官网网址:

    pecl.php.net

    额外扩展网址:(以下网址只针对Windows系统)

    http://windows.php.net/downloads/pecl/releases/

    windows安装PHP扩展的流程

    1.到官方网址下载想要安装的PHP扩展,下载版本的时候要下载响应的版本扩展

    PHP版本 VC版本 nts/ts x64/x86

    以上的任何一个出错都可能导致意外的错误

    2.解压下载的文件

    解压时有的只会解压出一个php_xxx.dll,有的会解压出很多文件,但是无论哪种,我们只需要以.dll结尾的文件

    3.将解压出来的.dll文件放到我们在php.ini中配置的扩展目录下即可

    4.在php.ini中添加配置信息

    1)一般方式

    extension=php扩展的名称

    2)需要设置配置信息

    这个时候就需要根据说明开写入响应的配置信息了,根据每个扩展的不同会写入不同的配置信息

    5.重启Apache或者Nginx服务器

    这样经过这么几步我们就达到了Windows安装、配置、开启PHP扩展的目的

    Linux下安装PHP扩展

    Linux下安装PHP扩展有两种方式一种是直装,一种是编译安装,那么如何区分是直装还是编译安装呢?第一步:下载Linux版本的相对应PHP版本的PHP扩展,当我解压之后发现文件是以.so结尾的文件,那么我们就认为他是直装,直接把解压的.so文件复制到PHP的扩展目录下即可,以下为Linux扩展目录:

    lib/php/extensions/no-debug-non-zts-20131226

    之后我们按照Windows下的流程修改php.ini配置文件,重启服务器就可以了

    编译安装:

    当下载完相对应版本的扩展文件之后,解压之后发现是一堆以.c或者.h等等这些文件组成的,那么就需要编译安装了,简单介绍一下这些以.c或者.h结尾的文件到底是什么东东。其实对于有C语言基础的开发人员来说很明白这些文件就是c语言开发的源文件,我们可以直接用编译器打开这些代码,如果能力足够大的话甚至可以修改再重新开发。

    接下来进入加压目录执行一个phpize的命令,那么这个命令在哪里呢?在PHP目录下的bin目录下,但是由于每个LinuxPHP安装目录的不同,所以我就以我的本机目录为准来讲解了

    /usr/local/php/bin/phpize

    因为我的PHP是安装在/user/local/下面的,其他的根据各自情况来写bin目录前面的目录,执行完之后执行下面的命令,同样等号后面的目录根据实际情况而定

    ./configure --with-php-config=/usr/local/php/php-config

    这条命令的意思是自动编写配置文件,省去了我们手工编写的环节

    但是并不是所有运行这条命令的人都能够正确执行,有的人会出现error,那么这是什么原因呢?是因为没有安装autoconf,安装一下就好了

    centos/redhat下使用下面命令安装:

    yum install autoconf

    ubuntu下使用下面命令安装

    apt-get install autoconf

    但是也并是所有人运行上面之后也都够成功,如果提示错误,那么请按照下面的安装

    yum lsit  php-devel

    yum install php-devel.i686

    安装完成后重新运行上面的命令即可,之后可是编译和安装

    make && make install

    之后开启扩展,就是在php.ini中写入参数,然后重启服务器就可以了。

    其他扩展信息

    什么是phpize?

    phpize是用来扩展PHP扩展模块的,通过phpize可以建立PHP的外挂模块

    什么是autoconf?

    生成可以自动地配置软件源代码

    相关文章

      网友评论

        本文标题:PHP扩展(extensions)

        本文链接:https://www.haomeiwen.com/subject/selfcctx.html