Ubuntu18.04下源码编译php7.2扩展程序

本文详细介绍了如何在PHP中安装扩展,包括通过yum/apt仓库和源码编译的方式,重点讲解了以php-tidy扩展为例的源码编译步骤,涉及下载源码、配置、编译和配置文件修改等内容,以及解决常见编译错误的方法。

一、说明

php扩展安装一般有两种方式:yum/apt仓库安装和源码编译安装。无论哪种安装方式,最重要的一点是扩展的版本要和php版本相匹配才可以使用。

一般源码安装的php程序都需要相对应的源码编译扩展,PHP主程序源码项目自带了大部分的标准化扩展,如果你需要一个php扩展,应该优先查找找php源码自带的程序,其次才是去社区查找。

二、扩展编译(以php-tidy扩展为例)

1:下载对应版本的PHP源码
wget http://xxx.oss-cn-beijing.aliyuncs.com/oss/admin/php-7.2.17.tar.gz  
tar -zxvf php-7.2.17.tar.gz  
php-7.2.17.tar.gzicon-default.png?t=N7T8https://www.php.net/distributions/php-7.2.17.tar.gz
2:在PHP源码目录下找到扩展程序目录

3:进入到对应的扩展源程序目录
​​​​​​​cd php-7.2.17/ext/tidy  

4:编译扩展程序
phpize                                     //检测扩展目录是否生成相应的configure文件  
./configure  --with-php-config=php-config  //配置php-config程序的路径,扩展编译需要用php-config命令找到php主程序安装位置  

什么是phpize及其用法icon-default.png?t=N7T8https://blog.youkuaiyun.com/weixin_38674371/article/details/84714696

5:修改配置文件,添加扩展

PHP编译完成后的扩展会根据编译参数或者内部版本号,默认保存在类似这样的目录中:

添加配置信息,测试模块加载是否正常

vim php.ini                //将tidy扩展加入php配置文件  
...  
...
extension=tidy.so  
...  


php -m                     //查看php现有模块列表  

6:可能遇到的问题

问题:执行./configure进行编译的时候报错(no such file or directory),如下:

解决:先执行phpize程序生成configure文件,然后再执行./configure程序进行编译

Ubuntu 18.04上通过源码编译perf并适配ARM架构,可按以下步骤进行: ### 1. 安装必要的依赖 要确保系统中安装了编译所需的工具和库,可使用以下命令进行安装: ```bash sudo apt-get update sudo apt-get install build-essential libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf ``` ### 2. 获取内核源码 从官方内核网站下载适合的ARM架构内核源码,或者从Ubuntu内核仓库获取,以官方网站下载为例: ```bash wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.0.tar.xz tar -xvf linux-5.4.0.tar.xz cd linux-5.4.0 ``` ### 3. 配置编译环境 设置交叉编译工具链,需要安装ARM架构的交叉编译工具,以`arm-linux-gnueabihf`为例: ```bash sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf ``` 然后设置环境变量: ```bash export CROSS_COMPILE=arm-linux-gnueabihf- export ARCH=arm ``` ### 4. 配置内核 进入内核源码目录,配置内核选项,可使用默认配置: ```bash make defconfig ``` 也可以根据需求进行定制配置: ```bash make menuconfig ``` ### 5. 编译perf工具 在内核源码目录下,只编译perf工具: ```bash make tools/perf ``` ### 6. 移植编译好的perf到ARM设备 编译完成后,在`tools/perf`目录下会生成`perf`可执行文件,将其复制到ARM设备: ```bash scp tools/perf/perf user@arm_device_ip:/path/on/arm_device ``` ### 7. 验证 在ARM设备上运行以下命令验证`perf`是否正常工作: ```bash /path/on/arm_device/perf --version ``` 通过以上步骤,就可以在Ubuntu 18.04系统上通过源码编译出适配ARM架构的perf工具。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泪痕110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值