前期准备

假设开始目录在/home

更新下yum

yum update -y 

安装依赖

yum install -y \
bzip2 bzip2-devel \
libcurl-devel \
gd gd-devel \
gmp gmp-devel \
libmcrypt libmcrypt-devel \
libxml2 libxml2-devel \
xmlrpc-c xmlrpc-c-devel \
openssl openssl-devel \
readline readline-devel \
libxml2 libxml2-devel \
libxslt libxslt-devel \
zlib zlib-devel \
libevent libevent-devel \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel

即使更新完yum,libzip的版本也只能去到0.10.1-8,而PHP7.3需要0.11以上版本。
这里我选择用1.2.0的版本而非最新的1.6.1是因为libzip从1.5.0之后需要cmake安装,简化安装步骤。

wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install

复制一份libzip的配置到/usr/local/include目录(用软链接应该也可以),不然后面配置步骤会报错

cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

添加一个www用户,我的web server和php都是以该用户运行的

groupadd www 
useradd www -g www

切回至开始目录

cd /home

下载php7.3.16源码包

wget https://www.php.net/distributions/php-7.3.16.tar.gz

解压并进入文件夹

tar -zxvf ./php-7.3.16.tar.gz
cd ./php-7.3.16

安装PHP

配置PHP,根据需要选择需要的配置项。如果有增加,请确保安装对应的依赖软件

./configure \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--with-libxml-dir \
--with-xmlrpc \
--enable-mbstring \
--with-mysqli=mysqlnd \
--with-openssl \
--enable-pcntl \
--with-pcre-regex \
--with-pdo-mysql=mysqlnd \
--with-readline \
--enable-shmop \
--with-libxml-dir \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-xsl \
--enable-zip \
--with-zlib \
--with-iconv-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir 

如果没有错误信息的话,进行安装

make && make install

复制php.ini至/etc目录

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

复制php-fpm.conf至/usr/local/etc/目录

cp ./sapi/fpm/php-fpm.conf /usr/local/etc/

编辑php-fpm.conf

vim /usr/local/etc/php-fpm.conf

将最后一行
include=NONE/etc/php-fpm.d/*.conf
改为
include=etc/php-fpm.d/*.conf

使用www.conf.default作为默认配置

cp /usr/local/etc/php-fpm.d/www.conf.default  /usr/local/etc/php-fpm.d/www.conf

注册php-fpm至系统服务

cp ./sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service

测试

启动php-fpm服务并查看状态

systemctl start php-fpm.service
systemctl status php-fpm.service

查看php版本

php -v

标签: none

添加新评论