---
title: 怎样在centos6上安装PHP 8.0
date: 2023-10-12 13:10:00 +0800
categories: [PHP]
tags: [php8.0]
pin: false
---
## 一、概述
我需要在公司的测试环境的一台机器需要安装一个 `php 8.0` 版本,然而公司测试环境是 `centos 6` 系统,由于系统比较老旧,很多依赖难以解决。经过一番折腾,以下是顺利在 `centos 6` 上安装好 `php 8.0.30` 的实际步骤。
> 但如果不是迫不得已,不建议在旧系统上使用新软件,如果有需求,更建议在新的稳定操作系统上实现。
## 二、准备依赖
### 2.1 更新yum
我们首先更新yum软件源,以便后续有需要时使用。
```shell
# yum
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos6_base.repo
# epel(RHEL6系列)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-6.repo
# 更新缓存
yum clean all
yum makecache
```
### 2.2 libicov
下载网址:
这里下载`1.16`版本,编译与安装命令如下
```shell
./configure --prefix=/usr/local/libiconv-1.16
make && make install
```
### 2.3 libxml2
下载网址:
这里下载`2.9`版本,编译与安装命令如下
```shell
./configure --prefix=/usr/local/libxml2-2.9.14 --with-history --with-python=/usr/bin --docdir=/usr/local/libxml2-2.9.14/doc
make && make install
```
### 2.4 openssl
下载网址:
这里下载`1.1.1w`版本,编译与安装
```shell
./Configure no-shared linux-x86_64 no-md2 no-mdc2 no-rc5 no-rc4 enable-ssl2 enable-ssl3 --prefix=/usr/local/openssl-1.1.1w
make && make install
```
### 2.5 sqlite
下载网址:
这里下载的版本是`3.40.1`,编译与安装的命令如下
```shell
./configure --prefix=/usr/local/sqlite3-3.40.1
make && make install
```
### 2.6 curl
下载网址:
这里下载的是`7.83.0`版本,编译与安装的命令如下
```shell
./configure --prefix=/usr/local/curl-7.83.0 --with-ssl=/usr/local/openssl-1.1.1w
make && make install
```
### 2.7 oniguruma
下载网址:
这里下载的`6.9.8`版本,编译与安装的命令如下
```shell
./configure --prefix=/usr/local/onig-6.9.8
make && make install
```
### 2.8 libpng16
下载网址:
这里下载的是`1.6.37`版本,编译与安装命令如下
```shell
./configure --prefix=/usr/local/libpng-1.6.37
make && make install
```
### 2.9 gd
下载网址:
这里下载的是`2.3.3`版本,编译与安装命令如下
```shell
./configure --prefix=/usr/local/libgd-2.3.3 --with-png=/usr/local/libpng-1.6.37
make && make install
```
### 2.10 cmake
下载网址:
这里下载的版本是`3.23.2`,下载后直接安装
```shell
mv cmake-3.23.2-linux-x86_64 /usr/local/cmake-3.23.2
```
### 2.11 libzip
下载网址:
这里下载的版本是`1.10.1`,编译与安装命令如下,下面使用`cmake`来编译
```shell
/usr/local/cmake-3.23.2/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/libzip-1.8.0
make
make install
```
## 三、安装php
在撰写此文章的时候,php 8.0 的最新版本是`8.0.30`,我们先下载 `php 8.0.30` 的源代码,编译与安装过程如下
```shell
# 配置编译参数
./configure \
--prefix=/usr/local/php-8.0.30 \
--with-config-file-path=/usr/local/php-8.0.30/etc \
--with-zlib-dir \
--enable-mbstring \
--with-curl \
--with-zlib \
--with-freetype=/usr/local/freetype-2.9/ \
--disable-rpath \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--with-pdo-mysql \
--with-mysqli \
--with-openssl \
--enable-fpm \
--with-pdo-mysql \
--enable-ftp \
--enable-gd \
--without-iconv \
LIBXML_CFLAGS=-I/usr/local/libxml2-2.9.14/include/libxml2 \
LIBXML_LIBS="-L/usr/local/libxml2-2.9.14/lib -lxml2" \
OPENSSL_CFLAGS=-I/usr/local/openssl-1.1.1w/include \
OPENSSL_LIBS="-L/usr/local/openssl-1.1.1w/lib -lcrypto -lssl" \
SQLITE_CFLAGS=-I/usr/local/sqlite3-3.40.1/include \
SQLITE_LIBS="-L/usr/local/sqlite3-3.40.1/lib -lsqlite3" \
CURL_CFLAGS=-I/usr/local/curl-7.83.0/include \
CURL_LIBS="-L/usr/local/curl-7.83.0/lib -lcurl" \
ONIG_CFLAGS=-I/usr/local/onig-6.9.8/include \
ONIG_LIBS="-L/usr/local/onig-6.9.8/lib -lonig" \
GD_CFLAGS=-I/usr/local/libgd-2.3.3/include \
GD_LIBS=-L/usr/local/libgd-2.3.3/lib \
PNG_CFLAGS=-I/usr/local/libpng-1.6.37/include \
PNG_LIBS="-L/usr/local/libpng-1.6.37/lib -lpng" \
LIBZIP_CFLAGS=-I/usr/local/libzip-1.8.0/include \
LIBZIP_LIBS=-L/usr/local/libzip-1.8.0/lib64
# 编译,-j根据你CPU的线程数,设置合理的值
make -j14
# 安装
make install
```