Centos编译安装PHP8

2021-01-15T23:24:00

最近把服务器进行一下安全更新,好奇逛了一下PHP的主页,也在近期推送了PHP的稳定版本8.0.1。晚上刚好有空就把现在的PHP环境给更新到PHP8。现在的环境是Centos7的最小化版本,会缺少一部分工具包,本着能少则少的原则。

安装EPEL

EPEL的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。

yum install -y yum-utils
package-cleanup --cleandupes
yum install -y epel-release
# 如果提示找不到epel-release包,可以运行下面来安装
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

安装PHP所需依赖

yum -y install wget bzip2-devel libxml2-devel curl-devel db4-devel libjpeg-devel libpng-devel freetype-devel pcre-devel zlib-devel sqlite-devel libmcrypt-devel unzip bzip2 m4 autoconf mhash-devel openssl-devel gcc gcc-c++ libtool-ltdl libtool-ltdl-devel oniguruma oniguruma-devel

下载PHP

PHP下载页面:https://www.php.net/downloads.php

mkdir –p /usr/work/php8 # 创建工作目录
cd /usr/work/php8
wget https://www.php.net/distributions/php-8.0.1.tar.gz
tar -zxvf php-8.0.1.tar.gz
cd php-8.0.1

编译PHP

查看可配置的PHP参数

./configure --help

编译安装,可以根据自己的需求来搭配适合自己的安装配置

./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8 --with-config-file-scan-dir=/usr/local/php8/etc/php.d/ --with-libdir=lib64 --enable-mysqlnd --enable-pdo --enable-fastcgi --with-mysql --with-mysqli --with-pdo-mysql --with-iconv --with-freetype --with-jpeg --with-zlib --with-libxml --enable-xml --disable-fileinfo --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --enable-mbregex --enable-mbstring --enable-ftp --enable-gd --enable-gd-jis-conv --with-openssl --enable-pcntl --enable-sockets --enable-soap --with-pear --with-gettext --enable-calendar --with-openssl --enable-opcache --enable-xml --enable-cli --enable-pcntl --enable-sockets --enable-soap --with-pear --with-gettext --enable-calendar

# 编译安装

make -j2 && make install

常见参数

--prefix 指安装程序存放目录
--with-config-file-pathphp.ini配置文件存放目录
--with-config-file-scan-dirphp.ini 的扩展目录

测试安装结果

/usr/local/php8/bin/php -v

# 如果只安装一种PHP环境

php -v

添加环境变量

vim /etc/profile
PATH=$PATH:/usr/local/php8/bin/
export PATH
# 保存并退出
:wq
# 生效配置
source /etc/profile

复制配置文件

从php源码目录复制文件到编译配置参数指定的目录,方便修改备份

# php.ini
cp /usr/work/php/php.ini-development /usr/local/php/lib/php.ini
# php-fpm 配置文件
cp /usr/work/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# php-fpm 扩展配置文件
cp /usr/work/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# 开机自动启动脚本
cp /usr/work/php/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# 给php-fpm 添加可执行权限
chmod +x /etc/init.d/php-fpm

开启JIT编译

打开 php.ini 找到 zend_extension=opcache 给去掉注释

[opcache] 下面添加以下两项内容

开启opcache PHP性能优化组件
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=192
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=60
;opcache.save_comments=0
opcache.fast_shutdown=1
opcache.consistency_checks=0
;opcache.optimization_level=0
开启JIT编译器
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=128M
opcache.jit=1255
运行脚本
service php-fpm start # 检验服务启动
service php-fpm stop # 检验服务关闭
chkconfig php-fpm on # 配置开机启动php-fpm
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »