0

0

php怎么安装源码_php源码安装依赖与环境配置指南

雪夜

雪夜

发布时间:2025-12-04 08:45:11

|

472人浏览过

|

来源于php中文网

原创

必须预先配置编译环境与依赖库,否则PHP源码编译将失败。首先安装GCC、make、autoconf等工具链并验证版本;接着安装openssl-devel、libcurl4-openssl-dev、zlib1g-dev、libpcre3-dev等核心开发库;根据需要安装libjpeg-dev、mariadb-devel、libsasl2-dev等扩展依赖;通过PKG_CONFIG_PATH、LD_LIBRARY_PATH等环境变量配置库路径;最后运行buildconf、检查configure选项并确保目录权限正确,完成依赖验证与准备。

php怎么安装源码_php源码安装依赖与环境配置指南

如果您打算从源码编译安装 PHP,必须预先配置好基础构建环境与必要依赖库,否则 configure 脚本将无法通过检测或编译过程会中止。以下是完成 PHP 源码安装所必需的依赖检查与环境准备步骤:

一、安装基础编译工具

PHP 源码编译依赖 GNU 编译器集合(GCC)、make 构建工具以及 autoconf 等自动化配置工具。缺少任一组件会导致 configure 命令失败或生成无效的 Makefile。

1、执行 yum groupinstall "Development Tools"(CentOS/RHEL)或 apt-get install build-essential(Ubuntu/Debian)安装核心编译套件。

2、单独安装 autoconf automake libtool m4,确保 autogen.sh 或 configure 生成流程可正常运行。

立即学习PHP免费学习笔记(深入)”;

3、验证 GCC 版本是否满足要求:运行 gcc --version,确认版本不低于 4.8(PHP 7.4+ 推荐 GCC 5.3+)。

二、安装核心依赖库

PHP 扩展模块(如 OpenSSL、cURL、GD、XML、JSON)在编译时需链接对应开发头文件与静态/动态库。仅安装运行时库(如 openssl)不足以支持编译,必须安装带 -devel 或 -dev 后缀的开发包。

1、安装 OpenSSL 开发包:yum install openssl-devel(CentOS)或 apt-get install libssl-dev(Ubuntu)。

2、安装 cURL 开发支持:yum install curl-develapt-get install libcurl4-openssl-dev

3、安装 zlib 支持:yum install zlib-develapt-get install zlib1g-dev,用于启用 gzip 压缩与 Phar 包支持。

4、安装 PCRE 库:yum install pcre-develapt-get install libpcre3-dev,保障正则表达式函数(preg_*)可用。

三、安装可选但常用的扩展依赖

若需启用 GD 图像处理、MySQLi/PDO MySQL、LDAP、iconv、bzip2 等功能,须提前安装对应开发包,否则 configure 将自动禁用相关扩展且不报错,易被忽略。

1、GD 扩展依赖:yum install libjpeg-devel libpng-devel freetype-develapt-get install libjpeg-dev libpng-dev libfreetype6-dev

Magic AI Avatars
Magic AI Avatars

神奇的AI头像,获得200多个由AI制作的自定义头像。

下载

2、MySQLi/PDO MySQL 依赖:yum install mysql-devel(旧版)或 yum install mariadb-devel(推荐),Ubuntu 上为 libmysqlclient-dev

3、LDAP 支持:yum install openldap-develapt-get install libsasl2-dev

4、iconv 与 bzip2:yum install libiconv-devel bzip2-devel(部分系统需手动编译 libiconv);Ubuntu 默认含 libiconv,仅需 apt-get install libbz2-dev

四、配置系统级环境变量与路径

configure 脚本可能无法自动识别非标准路径下的库或头文件(例如自定义安装的 OpenSSL)。需通过环境变量显式声明搜索路径,避免“not found”错误。

1、设置 export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig",确保 pkg-config 可定位已安装库的 .pc 文件。

2、设置 export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"(临时生效),用于运行时链接测试阶段。

3、若 OpenSSL 安装至 /usr/local/ssl,则添加:export OPENSSL_DIR="/usr/local/ssl" 并在 configure 中使用 --with-openssl=$OPENSSL_DIR

五、验证依赖完整性与权限准备

在执行 ./configure 前,必须确认当前用户对源码目录、目标安装路径及临时构建目录具有完整读写权限,同时确保所有依赖库的头文件实际存在于指定路径中,否则 configure 将静默跳过模块或报错退出。

1、运行 ./buildconf --force 重新生成 configure 脚本(适用于从 Git 克隆的源码)。

2、执行 ./configure --help | grep -E "(openssl|curl|gd|mysql)" 确认关键选项可见,表明依赖探测机制已就绪。

3、创建独立安装目录并授权:mkdir -p /usr/local/php8 && chown $USER:$USER /usr/local/php8

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

686

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

513

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

287

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

519

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

267

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

392

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

542

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

668

2023.08.14

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 848人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号