PHP:CentOS Linux环境下源码编译安装PHP8.0

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: PHP:CentOS Linux环境下源码编译安装PHP8.0

系统环境

cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

查看可用版本

https://www.php.net/releases/

预先安装必要的依赖

yum install -y \
wget \
gcc \
gcc-c++ \
autoconf \
automake \
libtool \
make \
libxml2 \
libxml2-devel \
openssl \
openssl-devel \
sqlite-devel

1、下载解压

wget https://www.php.net/distributions/php-8.0.24.tar.gz && \
tar -zxvf php-8.0.24.tar.gz  && \
cd php-8.0.24

2、设置安装参数

我们可能会安装多个PHP版本,所以提前规划好安装目录

例如:

所有的PHP解释器都安装到一个PHP目录下,按照版本取划分目录

/usr/local/php/8.0.24
/usr/local/php/7.1.0

configure

# 可查看帮助
./configure --help

配置

./configure --prefix=/usr/local/php/8.0.24 \
--with-config-file-path=/usr/local/php/8.0.24/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-zlib \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--enable-ftp \
--enable-gd-jis-conv \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--enable-soap \
--with-gettext \
--enable-fileinfo \
--enable-opcache \
--with-pear \
--with-ldap=shared \
--without-gdbm

安装

# 执行安装
make && make install
# 测试
make test

创建快捷方式

# 创建软链接
ln -s /usr/local/php/8.0.24/bin/php /usr/local/bin/php8
# 测试
php8 -v
PHP 8.0.24 (cli) (built: Nov  4 2022 14:13:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.24, Copyright (c) Zend Technologies

修改配置文件

# 源码包 php-8.0.24
cp php.ini-production /usr/local/php/8.0.24/etc
cd /usr/local/php/8.0.24/etc
cp php.ini-production php.ini
cd /usr/local/php/8.0.24/etc
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php/8.0.24/etc/php-fpm.d
cp www.conf.default www.conf
# 修改www.conf文件 
# 监听方式为sock
;listen = 127.0.0.1:9000
listen = php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0666

开机自启

# 源码包 php-8.0.24/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm-8.0.24.service
# 启动服务
systemctl enable supervisord
# 验证一下是否为开机启动
systemctl is-enabled supervisord 
systemctl start supervisord
systemctl status supervisord
systemctl stop supervisord

Nginx 部署 Laravel

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /srv/example.com/public;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    index index.php;
    charset utf-8;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    error_page 404 /index.php;
    location ~ \.php$ {
        fastcgi_pass unix:/usr/local/php/8.0.24/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

需要给 php-fpm.sock 访问权限

chown www:www /usr/local/php/8.0.24/php-fpm.sock

报错及解决

报错1

configure: error: Cannot find ldap libraries in /usr/lib
cp -frp /usr/lib64/libldap* /usr/lib/

报错2

make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
--disable-fileinfo

或者

内存不够使用,可以先使用交换分区来解决

dd if=/dev/zero of=/swapfile bs=64M count=16
mkswap /swapfile
swapon /swapfile

安装完成后取消

swapoff /swapfile
rm /swapfile

参考


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
前端开发 关系型数据库 MySQL
PHP外链网盘系统网站源码
> 本文将详细介绍如何从零构建一个基于PHP和MySQL的文件管理系统,分解项目代码并剖析每个模块的功能。我们将以`index.php`、`config.php`和`api.php`这三个核心文件为例,详细展示如何设计文件列表、数据库配置和文件上传接口,从而实现一个完整的文件管理系统。该文章可以作为学术研究和代码实现的参考。
137 98
|
13天前
|
关系型数据库 MySQL PHP
免登录游客卡密发放系统PHP网站源码
这是一个简单易用的卡密验证系统,主要功能包括: 卡密管理和验证,多模板支持,响应式设计,验证码保护,防刷机制,简洁的用户界面, 支持自定义模板,移动端优化,安全性保护,易于部署和维护。
132 77
|
16天前
|
移动开发 小程序 Linux
PHP仿WX即时聊天源码,支持视频语音聊天
PHP仿WX即时聊天源码,支持视频语音聊天
105 65
|
29天前
|
Linux PHP 数据安全/隐私保护
2024授权加密系统PHP网站源码
2024授权加密系统PHP网站源码
110 58
|
14天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
123 18
|
1月前
|
前端开发 PHP 数据安全/隐私保护
知识付费系统源码 PHP
在数字经济背景下,知识付费成为新兴领域,尤其在线教育平台的兴起,使更多教育者通过知识付费系统销售课程,实现数字化转型与收入提升。开发此类平台需考虑众多技术细节和业务需求,如使用PHP语言实现支付功能,确保安全性、性能和可扩展性,选择合适的技术方案至关重要。
52 4
知识付费系统源码 PHP
|
21天前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
103 3
|
2月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
59 3
01 入门PHP就来我这-安装phpstudy
|
2月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
2月前
|
PHP
20241125易支付PHP网站源码
PHP74,上传源码后解压访问域名/install 进行安装 安装完成 之后一定要设置伪静态 源码里面nginx.txt 就是伪静态 然后复制粘贴到伪静态里面保存即可
54 2