VM-CentOS-8+Linux8中编译安装php-8.0.9无错详解教程

本文档详细介绍了在VM-CentOS-8+Linux8环境下,如何无错编译安装php-8.0.9,包括系统环境、依赖安装、编译配置以及支持Apache和Nginx的过程。涵盖了从安装前准备到编译安装libxml2、libmcrypt、mhash、mcrypt、jpeg6、libpng、freetype、php-8.0.9等,再到配置php-fpm、Apache和Nginx支持php的每一步骤,最后还涉及了安装PHP扩展和管理工具Composer。
摘要由CSDN通过智能技术生成

VM-CentOS-8+Linux8中编译安装php-8.0.9无错详解教程

php编译安装教程

P-01) 系统 &环境

运行环境:实验室虚拟环境

系统型号:CtenOS-8.4-x86_64

Linux版本:linux-8-x86_64

CPU&内存:4H + 4GB

系统内核:

uname -r
4.18.0-305.10.2.el8_4.x86_64
P-02) 安装前准备
  1. 1 已安装 Apache ,查看安装的版本。源码编译安装【Apache】的方法请参阅……
apachectl -v
#Server version: Apache/2.4.37 (centos)
#Server built:   May 20 2021 04:33:06
#或者...
httpd -v
  1. 2 已安装 Nginx ,查看安装的版本。源码编译安装【Ninux】的方法请参阅……
nginx -v
#nginx version: nginx/1.20.1
  1. 3 已安装 MySQL ,查看安装的版本。源码编译安装【MySQL】的方法请参阅……
mysql -V
#mysql  Ver 8.0.25 for Linux on x86_64 (Source distribution)
#或者...登录数据库...
status
  1. 4 更新 CentOS-8* 软件包:
dnf update 
yum install epel-release
  1. 5 新建 php 源码包 & 扩展文件存放目录:
mkdir lanmpp
cd /root/lanmpp
mkdir php8
cd php8/
P-03) 编译安装【oniguruma】
  • 安装 oniguruma 所需的工具&依赖:
yum -y install autoconf automake libtool make gcc gcc-c++ vim wget
  • 下载 oniguruma
wget https://github.com/kkos/oniguruma/archive/refs/tags/v6.9.7.1.tar.gz -O oniguruma-6.9.7.1.tar.gz
  • 编译安装 oniguruma
tar -xf oniguruma-6.9.7.1.tar.gz
rm -rf oniguruma-6.9.7.1.tar.gz
cd oniguruma*/
./autogen.sh && ./configure --prefix=/usr
make && make install
P-04) 编译安装【libzip】
  • 安装 libzip-devel 不用指定安装目录:
cd ..
wget https://libzip.org/download/libzip-1.8.0.tar.gz
tar -xvf libzip-1.8.0.tar.gz
rm -rf libzip-1.8.0.tar.gz
cd libzip*/
  • 由于是最新版的 libzip ,需要用 cmake 的方式才能编译安装,所以,得先安装上 cmake3
yum -y install cmake3
#===安装后cmake3的版本确认===#
cmake --version
cmake version 3.20.2
  • 使用 cmake3 编译安装 libzip
mkdir build && cd build
cmake3 ..
make && make install
  • 配置 libzip 环境变量
echo export PATH=$PATH:/usr/local/bin/zipcmp >>/etc/profile
source /etc/profile                     # 让配置生效...
P-05) 安装依赖
yum -y install bzip2 bzip2-devel curl curl-devel nano net-tools lsof gmp-devel libcurl libcurl-devel libXpm-devel libc-client-devel libicu-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel  libicu-devel libxslt libxslt-devel  libxml2-devel libedit openldap openldap-devel openssl openssl-devel postgresql-devel  net-snmp-devel  readline readline-devel unixODBC-devel mysql-devel sqlite-devel 
  • 说明:有几包扩展主包采用的编译安装,所以,在依赖安装列表中没有显示,若你不采取编译安装,则需要添加进去…
P-06) 编译安装【libxml2】
cd /root/lnampp/php8
wget ftp://xmlsoft.org/libxml2/libxml2-2.9.12.tar.gz
tar -xvf libxml2-2.9.12.tar.gz
rm -rf libxml2-2.9.12.tar.gz
cd libxml2*/
./configure --prefix=/usr/local/libxml2/
make && make install
P-07) 编译安装【libmcrypt】
cd ..
wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -xvf libmcrypt-2.5.8.tar.gz
rm -rf libmcrypt-2.5.8.tar.gz
cd libmcrypt*/
./configure --prefix=/usr/local/libmcrypt/
make && make install
  • 安装【libltdl】源码就在【libmcrypt】源码目录中:
cd libltdl/
./configure --enable-ltdl-install
make && make install
P-08) 编译安装【mhash】
  • 不用指定安装目录
cd /root/lnampp/php8
wget https://jztkft.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar -xf mhash-0.9.9.9.tar.gz
rm -rf mhash-0.9.9.9.tar.gz
cd mhash*/
./configure
make && make install
P-09) 编译安装【mcrypt】
cd ..
wget https://udomain.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar -xvf mcrypt-2.6.8.tar.gz
rm -rf mcrypt-2.6.8.tar.gz
cd mcrypt*/
export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib               # 环境变量设置
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
make && make install
  • 说明:环境变量设置:【LD_LIBRARY_PATH】用于指定【libmcrypt】和【mhash】的库的位置
P-10) 编译安装【 jpeg6】
cd ..
wget http://ijg.org/files/jpegsrc.v9d.tar.gz
tar -xvf jpegsrc.v9d.tar.gz
rm -rf jpegsrc.v9d.tar.gz
cd jpeg-9d/
./configure --prefix=/usr/local/jpeg9/ --enable-shared --enable-static
make && make install
  • 说明:【–enable-shared】与【–enable-static】参数,分别为建立共享库和静态库使用的【libtool】。
P-11) 编译安装【libpng】
cd ..
wget https://nav.dl.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.gz
tar -xvf libpng-1.6.37.tar.gz 
rm -rf libpng-1.6.37.tar.gz 
cd libpng*/
./configure --prefix=/usr/local/libpng
make && make install
P-12) 编译安装【freetype】
cd ..
wget https://bigsearcher.com/mirrors/nongnu/freetype/freetype-2.11.0.tar.gz
tar -xvf freetype-2.11.0.tar.gz
rm -rf freetype-2.11.0.tar.gz
cd freetype*/
./configure --prefix=/usr/local/freetype/ 
make && make install

P-13) 编译安装【php-8.0.9】
  • 下载 & 解压 php 源码包:
cd ..
wget https://www.php.net/distributions/php-8.0.9.tar.gz      
tar -xvf php-8.0.9.tar.gz
rm -rf php-8.0.9.tar.gz
cd php*/
  • 预编译 & 生成配置(CentOS 原装镜像源下),应该会报错…
configure: error: Package requirements (libedit) were not met:
//配置:错误:未满足程序包要求(libedit):
  • 之前是有安装 libedit 的,只是其扩展包 libedit-devel ,由于系统源中无此包,只能通过国外镜像来解决…
dnf --enablerepo=powertools install libedit-devel
  • 预编译 & 生成配置 php
./configure --prefix=/usr/local/php \
  --with-config-file-path=/usr/local/php/etc \
  --with-apxs2=/usr/local/apache2/bin/apxs \
  --with-config-file-scan-dir=/usr/local/php/etc/conf.d \
  --with-config-file-scan-dir=/usr/local/php/etc/php.d \
  --with-libxml-dir=/usr/local/libxml2 \
  --with-jpeg-dir=/usr/local/jpeg9 \
  --with-png-dir=/usr/local/libpng \
  --with-freetype-dir=/usr/local/freetype \
  --with-mcrypt=/usr/local/libmcrypt \
  --with-pdo-mysql=/usr/local/mysql  \
  --with-pdo-mysql=mysqlnd 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值