本着折腾的原则,本站所用的LNMP都是最新版,但是安装PHP-7.3.8的时候出现了很多报错,本文就最新版PHP-7.3.8进行编译安装的过程进行记录一下。
1、准备工作
1.1、安装EPEL源
yum -y install epel-release.noarch
1.2、安装相关依赖包:
yum -y install gcc gcc-c++ make cmake perl autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel pcre pcre-devel libtool pcre-devel libAIo-devel libaio bzip2-devel libcurl-devel gd-devel bison bison-devel mhash
2、安装CMake和libzip
2.1先移除自带的libzip和Cmake
yum remove cmake* libzip*
2.2、安装CMake二进制包,因为如果先编译安装libzip最新版会提示CMake版本太低。
wget https://cmake.org/files/v3.15/cmake-3.15.2-Linux-x86_64.tar.gz
tar xf cmake-3.15.2-Linux-x86_64.tar.gz
export CMAKE_HOME=/usr/local/src/cmake-3.15.2-Linux-x86_64 (这是我的个人习惯,我习惯在/usr/local/src文件夹下放置软件)
export PATH=$PATH:$CMAKE_HOME/bin
source /etc/profile
###CMake到此就算安装完毕。
2.3、编译安装libzip
wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar xf libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build/
cmake ..
make && make install
###libzip到此就算安装完毕。
2.4、配置环境变量
vim /etc/ld.so.conf
#添加如下几行
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
#保存退出
:wq
ldconfig -v # 使之生效
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
###环境变量配置完毕。
3、安装PHP-7.3.8,这里有个小技巧,如果你编译安装过PHP-7.x的版本,在你以前安装的PHP-7.x的包里面会生成一个config.nice
文件,你只需要把此文件,复制到PHP-7.3.8文件夹内,并执行./config.nice && make && make install
命令即可,不需要重复编写编译参数,注意:此方法仅限于不修改任何编译参数的情况下使用,当然你也可以编写config.nice文件来进行编译参数修改。
###config.nice文件的内容如下:
#! /bin/sh
#
# Created by configure
'./configure'
'--prefix=/usr/local/php'
'--exec-prefix=/usr/local/php'
'--bindir=/usr/local/php/bin'
'--sbindir=/usr/local/php/sbin'
'--includedir=/usr/local/php/include'
'--libdir=/usr/local/php/lib/php'
'--mandir=/usr/local/php/php/man'
'--with-config-file-path=/usr/local/php/etc'
'--with-MySQL-sock=/var/lib/mysql/mysql.sock'
'--with-mhash'
'--with-openssl'
'--with-mysqli=shared,mysqlnd'
'--with-pdo-mysql=shared,mysqlnd'
'--without-sqlite3'
'--without-pdo-sqlite'
'--with-gd'
'--with-iconv'
'--with-zlib'
'--enable-zip'
'--enable-inline-optimization'
'--disable-debug'
'--disable-rpath'
'--enable-shared'
'--enable-xml'
'--enable-bcmath'
'--enable-shmop'
'--enable-sysvsem'
'--enable-mbregex'
'--enable-mbstring'
'--enable-ftp'
'--enable-pcntl'
'--enable-sockets'
'--with-xmlrpc'
'--enable-soap'
'--without-pear'
'--with-gettext'
'--enable-session'
'--with-curl'
'--with-jpeg-dir'
'--with-freetype-dir'
'--enable-opcache'
'--enable-fpm'
'--with-fpm-user=nobody'
'--with-fpm-group=nobody'
'--without-gdbm'
'--enable-fast-install'
'--disable-fileinfo'
"$@"
###创建php-fpm控制脚本,此脚本PHP-7.3.8已经自带了,位于PHP-7.3.8包的sapi/fpm下。
CENTOS 6
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
CENTOS 7
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/