安装PHP扩展时解压官方 tgz 文件后没有 configure 文件
在安装PHP的时候,我们经常需要安装一些扩展,在安装的过程中,我们有时会遇到官方 tgz 文件没有 configure 文件的情况。这时就需要了解一些基础知识,来进行安装。
1. tgz 文件的结构
在解压 tgz 文件时,我们先来看其结构。一般 tgz 文件的结构如下:
php-7.4.14.tar.gz
├── configure
├── ext
├── ...
├── main
├── ...
├── sapi
├── ...
└── Zend
├── ...
其中 configure 文件是用来编译安装的,ext 目录存放扩展,main、sapi、Zend 等目录是 PHP 源代码的各个部分。
2. 安装扩展的方法
当我们要安装一个扩展时,我们需要首先解压得到一个包含 ext 目录的 tgz 文件,例如 phpredis。
$ tar -xzvf phpredis-5.3.2.tgz
解压后,我们可以看到 ext 目录,进入该目录并运行 phpize;
$ cd phpredis-5.3.2/ext/
$ /usr/local/php/bin/phpize
这时会生成 configure 文件,然后我们运行 configure。
$ ./configure --with-php-config=/usr/local/php/bin/php-config
configure 脚本一般用于检查系统环境和生成 Makefile,如果一切正常,我们可以继续进行编译。
$ make && make install
编译完成后,我们需要在 php.ini 文件中添加扩展:
extension=redis
最后重启 PHP 生效。
3. 没有 configure 文件怎么办?
当我们在解压 tgz 文件时,发现里面并没有 configure 文件怎么办?我们可以从已经安装的 PHP 中获得相应的 phpize 和 php-config 工具,从而重新生成 configure 文件。
首先,我们需要查找 phpize 和 php-config 工具的安装路径。
$ whereis phpize
$ whereis php-config
然后将其复制到当前目录下。
$ cp /usr/local/php/bin/phpize .
$ cp /usr/local/php/bin/php-config .
接下来,我们运行 phpize,就可以生成 configure 文件。
$ ./phpize
运行 configure 和 make 的方法同上。
4. 总结
当解压 tgz 文件后没有 configure 文件时,我们可以通过已经安装的 PHP 中的 phpize 和 php-config 工具生成 configure 文件,然后进行编译安装。不过,需要注意的是,由于 PHP 版本的差异可能会导致生成的 configure 文件无法编译通过。因此,为了避免这种情况,我们在安装 PHP 时应该尽量选择官方提供的二进制版本。