源码下载 之前写过一篇文章里面附带的有源码安装 php 的教程。 所以这里只需要下载 GMP 源码即可。 对于下载源码这件事,还是去官网(gmplib)比较好。 现在 GMP 的最新版本是 GMP 6.0.0. 然后在下载页面有三个压缩格式的文件。 我选择gmp-6.0.0a.tar.xz. 因为
之前写过一篇文章里面附带的有源码安装 php 的教程。
所以这里只需要下载 GMP 源码即可。
对于下载源码这件事,还是去官网(gmplib)比较好。
现在 GMP 的最新版本是 GMP 6.0.0.
然后在下载页面有三个压缩格式的文件。
我选择gmp-6.0.0a.tar.xz.
因为我的压缩工具只能解压缩这个文件。
对于 tar.xz 这中压缩文件我之前没有见过,不过还是有对应的压缩命令的。
我是在 CSDN 上找到的。
# -k 保持压缩文件 xz -k ***.tar.xz tar -xzvf ***.tar
安装命令也是在官网安装教程页看到的。
简单说就是
./configure make make install
在 php 官网的 gmp 安装教程页 可以看到编译 php 的时候加上 --with-gmp
参数即可。
./configure --enable-shmop make make install
安装完之后重启一下服务器即可。
编译 php 时指定需要用的模块扩展肯定可以成功,但是大多数时候我们并不想再次编译php源码。
而且我们也不记得当时编译的时候的参数了。
即使记得那些参数,编译一次也要很长时间,我们也不想等那个时间。
于是动态添加模块扩展这个需求必须要解决。
然后我在 php 的官网上随便找了一个扩展, 比如 pecl .
在目录中的最后一行可以看到 Compiling PECL extensions statically into PHP.
大概意思就是将扩展编译到php中去。
然后在第四和第五行可以看到 Compiling shared PECL extensions with the pecl command 和 Compiling shared PECL extensions with phpize.
大概意思就是 php 有两种方法动态添加模块扩展,一种是使用 pecl 命令, 另一种是使用 phpize.
接下来我们分别来看看。
在 pecl页面有简单的说明。
只需要下面一条命令,就会自己下载对应的模块源码,并自己安装到php中。
但是我这既然选择了源码安装,肯定不是为了显摆自己多牛X, 而是环境本身没有网络。
于是这个方法行不通了。
pecl install extname
幸好,pecl 行不通, phpize 可以离线安装需要的扩展。
前面我们下载了源码,在编译安装前先执行 phpize ,然后正常安装就可以使用扩展了。
cd extname phpize ./configure make make install
当然,安装完后需要配置 php.ini 文件,加入安装的模块。
本文出自:http://tiankonguse.github.io, 原文地址:http://github.tiankonguse.com//blog/2014/11/20/php-source-install-gmp/, 感谢原作者分享。