Centos 7升级 PHP7 到 PHP8

安装环境请参考 博客:Linux 环境下 PHP 项目基础运行环境搭建(PHP 7.3.6 + MySQL 8.0.16...

更新系统软件

yum update

编译安装 php

下载最新版 php8 源码包

cd /root & wget -O php8.tar.gz https://www.php.net/distributions/php-8.0.0.tar.gz

解压源码包

tar -xvf php8.tar.gz

进入解压目录

cd php-8.0.0

编译配置的时候,这里如果上一步的某些依赖包没有安装好,就会遇到很多configure error,安装相关软件开发包即可;以下为可能需要安装的包:

yum install oniguruma-devel
yum install sqlite3-devel

开始编译
如果不需要原来的 PHP 版本,可以将编译配置中以下内容修改为单个 PHP 的设置

  • --prefix=/usr/local/php8 替换为 --prefix=/usr/local/php
  • --with-config-file-path=/etc/php8 替换为 --with-config-file-path=/etc/php
./configure \
--prefix=/usr/local/php8 \
--with-config-file-path=/etc/php8 \
--enable-fpm \
--with-fpm-user=nginx  \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared  \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir  \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets  \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

运行 make && make install 耐心等待编译安装成功

配置 php-fpm

cp php.ini-production /etc/php8/php.ini
cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php8-fpm
chmod +x /etc/init.d/php8-fpm

如果不需要原来的 PHP 版本,可以将编译配置中以下内容修改为单个 PHP 的设置

  • /usr/local/php8 替换为 /usr/local/php
  • /etc/php8 替换为 /etc/php
  • php8-fpm 替换为 php-fpm

启动 php-fpm

/etc/init.d/php8-fpm start

最后如果你的 Laravel 版本低于 8.0 的时候有可能会碰到一些奇怪的问题(比如可以查看 phpinfo(),但是不能正常打开网页之类的),可以先看看文档,如果解决不了,可以安装一个 Laravel 8 试试 :smile:

本作品采用《CC 协议》,转载必须注明作者和本文链接
www.haowuliaoa.com
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 1

不知道自己编译跟用 remi 源有啥区别

4年前 评论
22 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!