php拓展安装
⑴ Docker php安装扩展步骤详解
Docker 中的PHP容器安装扩展的方式有
1、通过pecl方式安装
2、通过php 容器中自带的几个特殊命令来安装,这些特殊命令可以在Dockerfile中的RUN命令中进行使用。
docker-php-source extract | delete
参数说明:
案例:
命令格式:
docker-php-ext-install “源码包目录名”
注意点:
案例:
⑵ 如何安装php的扩展bcmath
安装php的扩展bcmath具体步骤如下(以下操作均在wdcp 2.4的环境中):
1、ssh登陆vps控制台后,进入要安装的扩展的源码目录:cd /root/lanmp/php-5.2.17/ext/bcmath
2、运行phpize,这是wdcp中的路径
configuring for:
php api version:
20041225
zend mole api no: 20060613
zend extension api no: 220060519
3、编译安装:
./configure --with-php-config=/www/wdlinux/php/bin/php-config
make
make install
4、增加到配置文件php.ini里
vi /www/wdlinux/etc/php.ini
在最后增加:extension=bcmath.so
5、重启服务
service httpd restart
service nginxd restart
然后就大功告成
⑶ PHP单独添加扩展 无需重启服务器
问题
php自身提供了很多扩展,比如curl,gmp, mbstring等等。我们在编译安装php时未必安装了所有扩展。那么在安装完php后,如果想单独安装某个php自身的扩展怎么办呢?
我们以curl扩展模块的安装为例说明如何单独添加扩展。
步骤
1.进入php源码的扩展目录。本例中我的源码对应目录如下:
/search/src/php-7.0.14/ext
1
2.进入模块目录,我们安装的是curl扩展,所以进入curl目录。此时,我们所在的目录是
/search/src/php-7.0.14/ext/curl
1
3.执行phpize。注意,如果你的机器上有多个php版本,一定要执行你准备安装扩展的php版本对应的phpize。比如,我的机器上同时有php7和php5.3.3。我当前准备为php7安装curl扩展。所以执行php7对应的phpize
1 /usr/local/php70/bin/phpize
2
3 结果类似:
4 Configuring for:
5 PHP Api Version: 20151012
6 Zend Mole Api No: 20151012
7 Zend Extension Api No: 320151012
4.执行
./configure --with-php-config=/usr/local/php70/bin/php-config
1
说明:如果你的机器上只有一个php版本,大多时候不需要特别使用–with-php-config指明相应的php-config所在位置。
5.执行make,之后会在./moles/目录下生成curl.so文件
6.执行make install
结果类似:
Installing shared extensions: /usr/local/php70/lib/php/20151012/
1
2
执行结果告诉你将curl.so安装到了哪个目录。
一般情况,如果你正确的指定了php-config或者你的机器只有一个php版本,so都会被正确安装到相应php的extension_dir。如果执行make install后,extension_dir目录下没有相应的so,可以手动将第5步中生成的so文件cp过去。
要查看具体extension_dir,可以执行如下命令。
php -i| grep extension_dir
结果类似
extension_dir => /usr/local/php70/lib/php/20151012/ => /usr/local/php70/lib/php/20151012/
1
2
3
7.在php.ini中增加
extension=curl.so
1
如果不知道php.ini的具体位置,可以通过如下命令查看
php --ini
1
8.执行如下命令,查看是否安装成功
php -m | grep curl
1
如果你看到了curl, 恭喜你,安装成功!
⑷ 如何安装新的PHP扩展模块
php安装好后,可能在初次安装时,会有些模块会有遗漏,但是我们又不想重新编译php,因为耗时是比较长的。我们可不可以在不重新编译安装php的情况下,来为php单独添加某一个模块呢?查找资料,发现还是有方法的,重点就是phpize了,于是写了这篇文章.
下面我们就以单独为php加载mysqli模块为例,演示如何动态为php添加模块。
1、找到php原码安装文件
2、cd /home/php/ext/myslqi
3、运行 /usr/local/php/bin/phpize
4、/configure –with-php-config=/usr/local/php/bin/php-config
5、make && make install
6、安装完成之后会在系统/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/这个目录下面生成mysqli.so的库文件
7、编辑php.ini文件,指定php到哪人目录读取模块
vi /usr/local/php/etc/php.ini
extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″
extension=mysqli.so
8、重启php服务 /usr/local/php/sbin/php-fpm restart
7、/usr/local/php/bin/php -m|grep mysqli 查看mysqli.so是否存在
如果步骤正确,你的人口也不差的情况下,应该这样php的动态模块加载就完成了。
⑸ 如何编译安装PHP扩展
一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。
安装PHP扩展最简单的办法就是
sudo apt-get install php5-xxx
但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。
这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。
现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。
配置编译环境
我们需要安装一些编译必须的库,还有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
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
⑹ 如何安装php的扩展bcmath
为了让网站成功运行,就需要在php中增加bcmath这个扩展(其实默认的php中已经存在bcmath扩展,但是没有安装编译)
安装php的扩展bcmath具体步骤如下(以下操作均在wdcp 2.4的环境中):
1、ssh登陆vps控制台后,进入要安装的扩展的源码目录:cd /root/lanmp/php-5.2.17/ext/bcmath
2、运行phpize,这是wdcp中的路径: /www/wdlinux/php/bin/phpize
出现如下提示:
configuring for:
php api version:
20041225
zend mole api no: 20060613
zend extension api no: 220060519
3、编译安装:
./configure --with-php-config=/www/wdlinux/php/bin/php-config
make
make install
4、增加到配置文件php.ini里
vi /www/wdlinux/etc/php.ini
在最后增加:extension=bcmath.so
5、重启服务
service httpd restart
service nginxd restart
然后就大功告成
⑺ php 怎么安装扩展
在windows平台上,主要是三个步骤:
1、下载php扩展库文件;
一般在http://pecl.php.net/上就有下载信息。
2、解压缩文件,将*.dll文件复制到PHP程序主目录下的“ext”或者“extension”目录。
3、打开php.ini文件,在“Dynamic Extensions”配置段中加上“extension=*.dll”,关闭文件,重新启动一下服务器就可以加载成功了。
⑻ php安装mqtt扩展【Mosquitto】
没有安装mosquitto的可以看一下链接先安装一下
MQTT服务器搭建-mosquitto1.4.4安装指南
然后我们来安装php扩展
如果你已经使用预先建立的软件包来安装Mosquitto,你需要确保你已经安装了开发头文件。在红帽派生的系统上,这可能是叫做libmosquitto-devel,在基于 Debian的系统上叫做libmosquitto-dev。
你可以使用pecl来来安装这个拓展包:
pecl install Mosquitto-alpha
1
或者,你也可以使用常规的安装拓展的方法来安装:
phpize
./configure --with-mosquitto=/path/to/libmosquitto
make
make install
1
2
3
4
然后添加extension=mosquitto.so到你的PHP配置文件php.ini中。
--with-mosquitto
1
是可选参数,只有当安装程序找不到libmosquitto拓展包,才需要添加这个参数
⑼ cenos怎么安装php的拓展
Centos下,PHP有多种方式来安装拓展, 主要有 包管理式的yum安装、pecl安装, 以及底层的源码编译安装。
包管理式的安装卸载尤为方便,而源码编译式的安装则方便参数调优。
一般的搭建本机开发环境推荐包管理式的安装,节约时间。而线上部署环境则推荐编译安装, 方便调优。
yum安装
## yum方式安装能自动安装拓展的.so动态库,并配置好php.ini
# 如安装mysql拓展
yum search mysql|grep php #我们搜索到拓展名为 php-mysql.x86_64
sudo yum install php-mysql #这样php-mysql拓展便安装好了
# 如果出现拓展版本和php版本冲突问题, 可安装如下任意yum源:
sudo yum install atomic-release.noarch
sudo yum install webtatic-release.noarch
# 这些源提供了其他版本的php拓展,同时每个源针对特定拓展都会提供多个版本,你只需安装一个源即可。如:
atomic源下能搜索到5.4版的mysql拓展 atomic-php54-php-mysql.x86_64
webtatic源下能搜索到5.5版本的mysql拓展 php55w-mysql.x86_64
pecl安装
# 我们需要先从pear官网下载 go-pear 工具
# 这个工具将帮我们同时安装 pecl包管理器(管理php的C拓展) pear包管理器(管理php类库)
wget http://pear.php.net/go-pear.phar
# 安装工具
# 安装过程除非特别指定,否则默认将工具安装到 /home/用户名/pear/bin 目录下
php go-pear.phar
# 将工具目录添加到环境变量中
# 编辑/etc/profile 追加一行配置
export PATH=$PATH:/home/用户名/pear/bin
# 加载环境配置
source /etc/profile
# 配置工具的php_ini选项,这样安装拓展时pecl工具就能帮我们自动配置php.ini文件了
# vim /home/用户名/pear/share/pear/PEAR/Config.php
# 搜索php_ini, default键修改为你的php.ini文件路径:
'php_ini' => array(
'type' => 'file',
'default' => '/etc/php.ini',
'doc' => 'location of php.ini in which to enable PECL extensions on install',
'prompt' => 'php.ini location',
'group' => 'File Locations (Advanced)',
),
#确认一下,配置起效
pecl config-get php_ini #配置成功将显示 /etc/php.ini
# 搜索mysql拓展
pecl search mysql
# 这时一般会提示我们更新工具, 则我们依据提示进行更新
sudo pecl channel-update pecl.php.net
# 再次搜索mysql拓展, 成功
pecl search mysql
# 安装拓展
pecl install mysql
源码编译安装
# 概略讲解, 下次补充
# 下载拓展源码,进入源码目录, 执行phpize指令生成 configure 编译检测脚本,
# 执行 configure脚本 结合参数 生成 编译配置文件makefile
# make & make install 生成该拓展的动态库
# 迁移生成的拓展动态库 .so 文件到php.ini中配置好的extension_dir中
# php.ini 增加一个节区该拓展的配置信息
检查mysql拓展是否安装成功
php -i | grep mysql
成功安装后上面命令将显示一个节区的mysql拓展状态信息。
但拓展加载到运行环境中还需要你重启 web服务 亦或是 php-fpm
⑽ PHP8、FPM及部分扩展编译安装
本着能懒则懒的原则,之前我都是宝塔、lnmp脚本等“一键”
再不济也得来个 apt/yum install php
什么?源码 make install ? 编译参数一言难尽,劝退劝退...我只是想要个开发环境而已
没关系!我来整理一下常用模块以及参数!环境为 ubuntu/debian
检查压缩包的完整性,与官网 sha256比较
安装以下包
官方的拓展分类
根据需要的模块添加其后对应的参数
包含常用模块,可以直接使用
编译并安装后
复制 php.ini 到默认目录 /usr/local/lib/
检查 php安装是否正确
复制 fpm 配置文件、运行服务文件
www.conf php-fpm.conf php-fpm.service
修改 fpm 用户和组,默认为nobody
修改服务文件,取消只读 不然日志不能读写无法启动
设置自启动并运行
本地起服务测试
No package 'libxml-2.0' found
No package ‘sqlite3‘ found
configure: WARNING: unrecognized options: –with-gd
No package 'zlib' found
No package 'libpng' found
No package 'oniguruma' found
No package 'libcurl' found
No package 'libsystemd' found
No package 'openssl' found
No package 'libzip' found