说明
我这边用的是 Mac 操作系统
来演示, 下载的PHP版本 - 7.4.24
。
下载、解压
如果你本地有 wget
命令, 可以直接
wget https://www.php.net/distributions/php-7.4.24.tar.gz
当然, 你也可以 点击PHP官网 下载对应的PHP版本源码
下载完之后解压 tar -zxvf php-7.4.24.tar.gz
, 为了方便之后需要调试 PHP 的 C 源码
, 所以我把 php-7.4.24
文件夹复制放到 /Users/linshan/Container/C
目录下。
配置
PHP 初始的配置和安装过程被 configure
脚本中一系列命令行选项控制。可以通过 ./configure --help
命令了解 PHP 所有可用的编译选项及简短解释。
Linux 下安装软件的步骤:
./configure
执行配置选项(例如--prefix
可以指定安装位置),判断硬件及操作系统平台,生成Makefile
文件make
编译make install
安装
常用的配置选项
1. PHP 选项
–-prefix[=PREFIX]
安装路径的前缀,可以自定义,例如/mysoft/php
。默认安装在/usr/local
。–-with-config-file-path=PATH
设置php.ini
的搜索路径。默认安装在PREFIX/lib
。–-disable-short-tags
默认禁用短形式的开始标签<?
。--enable-debug
使用调试符号编译。
2. PHP 扩展
–-enable-mbstring
开启mbstring
多字节扩展–-with-gd[=DIR]
激活GD
支持,可以指定扩展位置。编译 GD 库需要libpng
和libjpeg
。–-with-pear
安装PEAR
扩展。–-with-zip[=DIR]
提供zip
支持,[DIR]
是ZZIPlib
库安装路径。建议通过 通过PECL
安装。--enable-posix
开启posix
扩展支持。
3. 进程控制扩展
–-enable-pcntl
开启pcntl
进程控制扩展,只能编译安装。
4. 网络相关扩展
–-with-openssl[=DIR]
开启OpenSSL
扩展,可以指定扩展位置–-enable-ftp
开启FTP
扩展–-with-curl
支持cURL
–-enable-sockets
开启socket
扩展–-enable-soap
支持SOAP
–-enable-fpm
激活FPM
支持
5. 数据库扩展
–-with-mysql=mysqlnd
–-with-mysqli=mysqlnd
–-with-pdo-mysql=mysqlnd
运行下配置, 用最简单的配置参数
./configure --prefix=/Users/linshan/Container/C/php-7.4.24/php74 --enable-debug --enable-mysqlnd --enable-posix --with-iconv=/usr/local/opt/libiconv
在此过程中可能会出现一些报错提示, 根据提示查看相关文档就能解决掉, 这里就不一一说明了。如果一切顺利, 大概会展示下图信息
编译、安装
运行如下命令
make && make install
不出意外, 你会看到如下输出:
此时, 编译安装完成!我们通过 PHP 命令验证下是否安装成功:
/Users/linshan/Container/C/php-7.4.24/php74/bin/php -v
源码安装 swoole 扩展
-
首先下载
swoole
源码, 你也可以到 https://github.com/swoole/swoole-srcgit
下载git clone git@github.com:swoole/swoole-src.git
-
进入
swoole-src
目录cd swoole-src
-
通过执行
phpize
命令生成swoole
安装的configure
文件/Users/linshan/Container/C/php-7.4.24/php74/bin/phpize
一切顺利的话, 会生成
configure
执行文件, 这样就可以配置swoole
选项了 -
接下来配置
swoole
./configure --with-php-config=/Users/linshan/Container/C/php-7.4.24/php74/bin/php-config
-
编译安装
make && make install
- 将扩展加入到
php.ini
配置文件, 由于编译安装后并没有设置php.ini
相关信息, 所以理论上应该是没有该文件的。可以先看看安装在哪个目录/Users/linshan/Container/C/php-7.4.24/php74/bin/php -i |grep php.ini
然后我们将 /Users/linshan/Container/C/php-7.4.24
目录下的 php.ini-development
或 php.ini-production
配置文件拷贝到 /Users/linshan/Container/C/php-7.4.24/php74/lib
目录下并重命名为 php.ini
。
打开 php.ini
文件, 将 swoole
扩展加入到配置中 => extension=swoole.so
。
我们看下是否有安装成功 swoole
扩展
/Users/linshan/Container/C/php-7.4.24/php74/bin/php -m
可以看到是安装成功的, 然后我们可以看看 swoole
相关信息
/Users/linshan/Container/C/php-7.4.24/php74/bin/php --ri swoole
到此, 整个源码编译安装就完成了, 相关的扩展也是类似方式, 安装过程中遇到的环境或软件扩展报错基本都不复杂, 相对容易解决。
评论一下?