摘要:安装原生扩展以为例,这是国际化的扩展。将会把源码编译成将会把移动到当前安装的的扩展目录。安装第三方扩展将以这个扩展为例,这个扩展主要实现了识别条形码的功能。
本文参考
一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。
安装PHP扩展最简单的办法就是
sudo apt-get install php5-xxx
但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。
这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。
现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。
配置编译环境我们需要安装一些编译必须的库,还有 php-dev 版本
Ubuntusudo apt-get install php5-dev php5-mysql gcc libpcre3-devFedora
sudo yum install php-devel php-mysqlnd gcc libtoolRHEL
sudo yum install php-devel php-mysql gcc libtoolSuse
yast2 -i php5-pear php5-devel php5-mysql gcc安装扩展
PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。
下面依次介绍两种扩展的安装方法:
安装之前我们需要一份和当前机器上相同版本的PHP源码
cd code wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2 tar xvjf php-5.5.9.tar.bz2 cd php-5.5.9
前往此处 下载相应的源码包。
在 /ext 目录下面可以看到所有PHP原生的扩展。
安装原生扩展以 PHP-intl 为例,这是PHP国际化的扩展。
为了安装这个扩展我们需要先安装ICU 库
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安装成功之后进入/ext/intl 目录:
cd intl phpize ./configure --enable-intl make sudo make install
下面解释一下上面的每个命令:
phpize : 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
./configure --enable-intl: 配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。
make: 将会把源码编译成 intl.so
make install : 将会把 intl.so 移动到当前安装的 PHP 的扩展目录。
接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。
安装第三方扩展将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。
先安装必要的依赖
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver cd mongo-php-driver phpize ./configure make sudo make install
将会生成一个文件,将其拷贝到PHP的扩展目录下面。
启用扩展在php.ini中启用扩展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。
也可以多带带建一个ini文件,然后在php.ini中包含这些文件就可以了。
下面介绍一下第二种方法:
cd `/etc/php5/mods-available`
这个目录里可以放新建的ini文件,然后执行
sudo touch mongo.ini echo "extension=mongo.so" | sudo tee -a mongo.ini sudo touch intl.ini echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令将会创建ini文件,并且写如相应的配置信息。
然后执行下面的命令启用扩展即可(需要安装 php5enmod 工具):
sudo php5enmod mongo sudo php5enmod intl
如果未安装 php5enmod 工具,则需要手动配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最后在执行一下重启操作就可以了:
sudo service nginx restart sudo service php5-fpm restart
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30204.html
摘要:独立的扩展可以独立于源码之外进行分发。定义一个新扩展我们给示例扩展命名为。对于一个独立扩展来说,你只需要做一些宏调用即可。通过以上的步骤,你已经有了一个独立的扩展了。 本文翻译自 PHP 源码中的 README.SELF-CONTAINED-EXTENSIONS。文中标记了 注 的内容均为自己添加。内容有点老,也挺啰嗦,没讲什么深入的内容,但是可以作为入门学习参考。 独立的 PHP 扩...
摘要:这里看到,表明你的扩展已经加载成功了,现在就可以调用这个扩展函数了。是不是很简单更多上面的例子还比较简单,只是编写了一个扩展函数。 PHP-X是我在2017年年初创建的一个新项目。这个项目的目标就是让有一定工作经验的PHP程序都能够具备扩展开发的能力。 0x00 初衷 从2012年开始编写swoole,现在算来已经有5个年头了。我发现编写一个 PHP 扩展这个工作非常艰难。PHP 程序...
摘要:最近手里有个项目需要用用缓存,权衡之下选择,没想到这里面水还挺深。说明是独立于语言的,如果用操作的话,自然要安装扩展,但是在环境下和自己配置的环境是不一样的,里面源码是残缺的,具体原因我也没查,所以需要自己下载源码编译。 最近手里有个项目需要用用缓存,权衡之下选择redis,没想到这里面水还挺深。 说明 Redis是独立于语言的,如果用PHP操作的话,自然要安装PHP Redis扩展,...
摘要:的包管理器是,用来浏览并搜索查看最新发行版下载。的包管理器是下一代的,使用编写,以格式发布。二发布时间轴三安装与使用安装主要是安装和这两个包管理器,然后通过包管理器安装其他。 PHP社区提供了几个管理扩展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情况下去使用这些工具必然会出现困惑,所以下面就简单介绍下这几个管理工具。 一、简介 下面简要介绍 Pear、P...
阅读 2919·2021-11-22 15:25
阅读 2221·2021-11-18 10:07
阅读 999·2019-08-29 15:29
阅读 459·2019-08-29 13:25
阅读 1483·2019-08-29 12:58
阅读 3153·2019-08-29 12:55
阅读 2893·2019-08-29 12:28
阅读 475·2019-08-29 12:16