关于php:使用源码编译安装PHP扩展

43次阅读

共计 1253 个字符,预计需要花费 4 分钟才能阅读完成。

近日 因为 brew 将 tap homebrew-php 废除 曾经无奈应用 brew install php70-xxx 来装置扩大,因而不得不应用下载源码编译的模式来装置

第一步 下载源码 php 所有扩大源码都能够在 pecl.php.net 上找到
以装置 redis 扩大为例
wget https://pecl.php.net/get/redis-4.0.1.tgz

第二步 解压源码压缩包
tar -zxvf redis-4.0.1.tgz
解压后进入源码目录 cd redis-4.0.1

第三步 执行 phpize
(phpize 命令是用来筹备 PHP 扩大库的编译环境的)

而后执行 ./configure
这里如果想要将扩大装置到目录有个参数十分重要
–with-php-config=/usr/local/opt/php@7.1/bin/php-config
php-config 中记录着 php.ini 中的相干配置 其中有个 extension-dir 的配置指定了 PHP 的扩大目录 这样扩大编译后将会装置到这个目录下 这样装置的扩大在 php.ini 中就只须要这样配置 extension=redis.so

第四步 执行 ./configure --with-php-config=/usr/local/opt/php@7.1/bin/php-config

第五步 执行 make 开始编译
第六步 执行 make install 失常会将 redis.so 装置到 php.ini 中配置的 extension-dir (如果 第四步有指定 php-config 的话)

在 php.ini 配置中开启 配置
extension=redis.so
如果没有的话须要本人填写

最初记得重启 php 过程

编译装置中遇到的问题

在装置 mongodb 扩大 执行 make 时 呈现一个谬误“’openssl/sha.h’ file not found”显示 openssl 的一个库文件没找到
在确认过本机装置过 openssl 之后依据网上搜寻到的解决方案 在 /usr/local/include 建设软连贯 -> /usr/local/opt/openssl@1.1/include/openssl/sha.h 谬误隐没然而产生了其余的谬误 编译还依赖 openssl 的其余库文件
于是我一时火气间接把 /usr/local/opt/openssl@/include/openssl 这个目录整个复制到了 mongodb 源码文件下的 include 目录下
过后执行的 cp -R /usr/local/opt/openssl@/include/openssl ~/java/mongodb-1.4.2/include
后果你猜怎么样? 编译通过了!GoGoGo~~
然而装置后发现并不能失常应用

xdebug 装置后呈现谬误正告 PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0
解决办法 xdebug 是 Zend 扩大 在 php.ini 中开启须要应用 zend_extension=xdebug.so 而不是 extension=xdebug.so

正文完
 0