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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
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

参考


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
3月前
|
JavaScript Linux PHP
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
130 3
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
|
3月前
|
Linux 编译器 开发工具
在CentOS环境下升级GCC编译器的指南
总结:本文提供了一种方法来升级CentOS的GCC编译器,通过使用CentOS的软件集合和开发者工具集工具,可以比较平滑地进行升级。在整个过程中无需从源代码编译,这样既省去了复杂的编译过程,也避免了可能出现的与系统库不兼容的风险。请注意,使用第三方仓库可能会带来系统稳定性和安全性上的潜在影响。所有操作都应谨慎进行,并确保有相应的数据备份。
471 19
|
4月前
|
自然语言处理 测试技术 API
TCPDF库详解:功能、作用及多语言安装指南-tcpdf可不是只有php能用-优雅草卓伊凡
TCPDF库详解:功能、作用及多语言安装指南-tcpdf可不是只有php能用-优雅草卓伊凡
357 5
|
6月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
298 17
|
9月前
|
运维 JavaScript 应用服务中间件
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
本文介绍了OS Copilot在ECS上 Alibaba Cloud Linux的安装与使用,并对其多项参数进行了功能测评。OS Copilot是为操作系统提供智能化辅助的工具,支持自动化任务、智能推荐、故障排查等功能。安装时需检查是否已安装(`rpm -q os-copilot`),若未安装则用`yum install os-copilot`命令安装,并配置AccessKey信息连接阿里云服务。通过测试不同参数命令,如`-t`参数,展示了其自动化执行和智能生成回答的能力,显著提升运维效率。
os-copilot安装与多项功能测评,帮助开发人员PHP环境排查问题
|
6月前
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
197 6
|
8月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
200 20
|
9月前
|
网络协议 Java 应用服务中间件
centos7环境下tomcat8的安装与配置
本文介绍了在Linux环境下安装和配置Tomcat 8的详细步骤。首先,通过无网络条件下的文件交互软件(如Xftp 6或MobaXterm)下载并解压Tomcat安装包至指定路径,启动Tomcat服务并测试访问。接着,修改Tomcat端口号以避免冲突,并部署Java Web应用项目至Tomcat服务器。最后,调整Linux防火墙规则,确保外部可以正常访问部署的应用。关键步骤包括关闭或配置防火墙、添加必要的端口规则,确保Tomcat服务稳定运行。
|
11月前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
204 3
01 入门PHP就来我这-安装phpstudy
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
157 5