服务器测评网
我们一直在努力

Linux下PHP5.5怎么安装,依赖包怎么解决

在 Linux 环境下安装 PHP 5.5,由于该版本已停止官方支持(EOL)且主流 Linux 发行版(如 CentOS 7/8, Ubuntu 18.04+)的默认软件源均已移除该版本,直接通过包管理器(如 yum 或 apt)安装通常不可行或极其困难,最专业且可靠的解决方案是采用源码编译安装,这种方式不仅能精确控制安装路径和功能模块,还能有效解决依赖库缺失的问题,确保在遗留系统维护中环境的稳定性,以下将详细阐述在 Linux 系统中从源码编译安装 PHP 5.5 的完整流程及关键配置。

Linux下PHP5.5怎么安装,依赖包怎么解决

环境准备与依赖库安装

在进行源码编译之前,必须确保系统具备编译环境及 PHP 运行所需的基础依赖库,这是编译成功的基础,也是最容易出错的环节,以 CentOS 系统为例,首先需要安装编译工具链和常用库文件。

核心依赖包包括:gcc、make、autoconf、libxml2-devel、openssl-devel、libcurl-devel、libjpeg-devel、libpng-devel、freetype-devel 等。 这些库分别对应 PHP 的 XML 处理、加密通信、网络请求、图像处理等核心功能,如果缺少这些库,后续的 configure 步骤将会报错中断。

执行以下命令可以完成基础环境的搭建(以 CentOS 为例):

yum install gcc make autoconf libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel gd-devel libmcrypt-devel

注意:在较新的 Linux 发行版(如 CentOS 8 或 Ubuntu 20.04)上,libmcrypt 可能需要通过 EPEL 源或手动编译安装,因为官方源已不再提供。

下载 PHP 5.5 源码包

为了确保软件的完整性和安全性,建议从 PHP 官方归档站点下载源码包,虽然 PHP 5.5 已是旧版本,但使用官方源码能避免第三方源可能包含的恶意篡改。

使用 wget 命令下载:

wget http://museum.php.net/php5/php-5.5.38.tar.gz

下载完成后,执行解压命令并进入目录:

tar -zxvf php-5.5.38.tar.gz
cd php-5.5.38

选择 PHP 5.5.38 是因为它是 5.5 系列的最后一个稳定版本,修复了此前版本中的已知漏洞和 Bug。

预编译配置

这是安装过程中最关键的一步,通过 ./configure 脚本定制 PHP 的功能模块,合理的参数配置能够优化性能并满足业务需求。

核心配置参数建议如下:

Linux下PHP5.5怎么安装,依赖包怎么解决

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--enable-sockets \
--enable-zip

参数解析与专业建议:

  • --prefix=/usr/local/php:将 PHP 安装到独立目录,便于管理和升级,避免与系统自带的 PHP(如果有)冲突。
  • --enable-fpm:PHP-FPM(FastCGI Process Manager)是管理 PHP 进程的最佳方式,尤其适用于 Nginx 或高负载环境。
  • --with-mysqlnd:PHP 5.5 及以上版本推荐使用 mysqlnd 原生驱动,它比旧的 libmysql 客户端库性能更好,且无需额外安装 MySQL 客户端库。
  • --with-gd 及相关图像库参数:确保验证码、图片缩放等图像处理功能可用。

如果在执行过程中报错提示缺少某些库,请根据错误信息安装对应的 devel 包,然后重新运行 configure,直到提示 “Thank you for using PHP”。

编译与安装

配置通过后,即可进行编译,编译过程的时间取决于服务器的性能。

执行编译命令:

make

为了确保代码无误,建议在安装前执行 make test 进行测试,但这在非开发环境下通常可以跳过以节省时间。

安装编译好的文件到系统目录:

make install

配置 PHP 与 PHP-FPM

安装完成后,需要进行初始化配置。

  1. 配置 php.ini
    源码目录提供了两个模板:php.ini-development(开发环境)和 php.ini-production(生产环境)。出于安全性和性能考虑,生产环境务必使用 production 模板。

    cp php.ini-production /usr/local/php/etc/php.ini

    编辑 /usr/local/php/etc/php.ini,根据需求调整参数,如 date.timezone(设置为 PRC 或 Asia/Shanghai)、disable_functions(禁用危险函数如 exec, shell_exec 等)、upload_max_filesize 等。

  2. 配置 PHP-FPM

    Linux下PHP5.5怎么安装,依赖包怎么解决

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm

    编辑 php-fpm.conf,确保 pid 文件路径和 error_log 路径正确,并监听正确的端口(默认 9000)或 socket 文件。

启动服务与验证

将 PHP-FPM 加入系统服务并启动:

chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start

验证安装是否成功:
执行 /usr/local/php/bin/php -v,如果输出显示 PHP 5.5.38 版本信息,则说明 CLI 环境安装成功,若要配合 Web 服务器(如 Nginx),需在 Nginx 配置中设置 fastcgi_pass 指向 PHP-FPM 的监听地址,并创建包含 <?php phpinfo(); ?> 的测试文件进行访问测试。

常见问题与专业解决方案

在安装过程中,开发者常会遇到依赖库版本不兼容的问题,在 CentOS 8 或 Ubuntu 20.04 等较新系统上,OpenSSL 版本过高可能导致 PHP 5.5 编译失败。强制降级系统的 OpenSSL 是不推荐的,因为这会破坏系统的安全性。 更专业的解决方案是:如果业务允许,建议升级 PHP 版本;如果必须使用 PHP 5.5,应考虑使用 Docker 容器技术,在基于 CentOS 6 或 Ubuntu 14.04 的旧镜像中进行编译和运行,从而实现环境隔离,避免污染宿主机系统。

相关问答

Q1:在编译 PHP 5.5 时提示 “Don’t know how to define struct flock on this system” 错误怎么办?
A1: 这是一个常见的兼容性错误,通常出现在较新的 Linux 发行版或 glibc 版本中,解决方法是修改源码文件,编辑 ext/fileinfo/libmagic/magic.h 文件,在文件开头(大约第 100-120 行之间,结构体定义之前)添加一行 #define _GNU_SOURCE,保存后重新运行 make 即可解决。

Q2:PHP 5.5 安装后无法连接 MySQL 数据库,提示 “Can’t connect to MySQL server on…”?
A2: 首先确认编译时使用了 --with-mysqlnd 参数,如果编译参数正确,问题可能出在 php.ini 配置上,检查 mysqli.default_socket 的路径是否与 MySQL 实际的 socket 文件路径一致(通常位于 /var/lib/mysql/mysql.sock/tmp/mysql.sock),如果路径不一致,请在 php.ini 中手动修正为正确路径。

希望这份详细的安装指南能帮助您顺利完成 PHP 5.5 在 Linux 环境下的部署,如果您在操作过程中遇到其他报错,欢迎在评论区留言,我们将共同探讨解决方案。

赞(0)
未经允许不得转载:好主机测评网 » Linux下PHP5.5怎么安装,依赖包怎么解决