当前位置: 首页 > news >正文

PHP8编译安装

CentOS8编译安装PHP8

PHP,全称Hypertext Preprocessor(超文本预处理器),是一种通用开源脚本语言。它特别适合于web开发,并能嵌入HTML中。现在主要用于PHP网站中实现动态网站功能,常规我们使用nginx、apache部署的是html静态网页,可以通过.php编写动态页面实现。

一、下载

# 创建文件夹用来安装php
mkdir /www/php80

#
 官网下载然后上传到服务器或者wget下载到对应文件夹
wget https://www.php.net/distributions/php-8.1.7.tar.gz

#
 解压文件
tar -zxvf php-8.1.7.tar.gz

#
 修改文件夹用户和组,防止没有权限执行
chown -R root php-8.1.7
chgrp -R root php-8.1.7
cd php-8.1.7

二、安装配置

# 和nginx编译安装类似,使用.configure进行配置
# --prefix:php.ini文件路径位置
# --with-config-file-path : 配置文件
./configure --prefix=/www/php8 --with-config-file-path=/www/php8/etc --with-curl --with-freetype --enable-gd --with-jpeg  --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql  --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib --with-zip -with-bz2 --with-iconv  --enable-fpm --enable-pdo  --enable-bcmath  --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl  --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd

报错处理:

1.libxml

问题:
Package 'libxml-2.0', required by 'virtual:world', not found
解决方法:
yum install libxml2-devel

2.sqlite3

问题:
Package 'sqlite3', required by 'virtual:world', not found
解决方法:
yum install sqlite-devel

3.Bzip2

问题:
configure: error: Please reinstall the BZip2 distribution
解决方法:
yum -y install bzip2-devel

4.libcurl

问题:
Package 'libcurl', required by 'virtual:world', not found
解决方法:
yum install libcurl-devel

5.libpng

问题:
Package 'libpng', required by 'virtual:world', not found
解决方法:
yum install libpng libpng-devel

6.libjpeg

问题:
Package 'libjpeg', required by 'virtual:world', not found
解决方法:
yum install libjpeg-devel

7.freetype2

问题:
Package 'freetype2', required by 'virtual:world', not found
解决方法:
yum install freetype-devel

8.icu

问题:
Package 'icu-uc', required by 'virtual:world', not found
Package 'icu-io', required by 'virtual:world', not found
Package 'icu-i18n', required by 'virtual:world', not found
解决方法:
yum install -y libicu-devel.x86_64

9.oniguruma

问题:
Package 'oniguruma', required by 'virtual:world', not found
解决方法:
1.下载安装包
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz 
2.解压
tar -zxvf oniguruma-6.9.4.tar.gz 
3.进入文件夹进行编译安装
cd oniguruma-6.9.4
4.安装依赖
yum install autoconf automake libtool
5.编译到/usr目录下
./autogen.sh && ./configure --prefix=/usr
6.安装
make && make install

10.libxslt

问题:
Package 'libxslt', required by 'virtual:world', not found
解决方法:
yum -y install libxslt-devel

11.libzip

问题:
Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found
Package 'libzip', required by 'virtual:world', not found
解决方法:
yum install libzip-devel

终于完成了,出现下面的提示:

Generating files
configure: patching main/php_config.h.in
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

安装:

make && make install

完成:
Don't forget to run 'make test'.

Installing shared extensions:     /www/php8/lib/php/extensions/no-debug-non-zts-20210902/
Installing PHP CLI binary:        /www/php8/bin/
Installing PHP CLI man page:      /www/php8/php/man/man1/
Installing PHP FPM binary:        /www/php8/sbin/
Installing PHP FPM defconfig:     /www/php8/etc/
Installing PHP FPM man page:      /www/php8/php/man/man8/
Installing PHP FPM status page:   /www/php8/php/php/fpm/
Installing phpdbg binary:         /www/php8/bin/
Installing phpdbg man page:       /www/php8/php/man/man1/
Installing PHP CGI binary:        /www/php8/bin/
Installing PHP CGI man page:      /www/php8/php/man/man1/
Installing build environment:     /www/php8/lib/php/build/
Installing header files:          /www/php8/include/php/
Installing helper programs:       /www/php8/bin/
  program: phpize
  program: php-config
Installing man pages:             /www/php8/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /www/php8/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.14
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.14 is not the recommended version 1.4.4
[PEAR] PEAR           - installed: 1.10.13
Wrote PEAR system config file at: /www/php8/etc/pear.conf
You may want to add: /www/php8/lib/php to your php.ini include_path
/www/php-8.1.7/build/shtool install -c ext/phar/phar.phar /www/php8/bin/phar.phar
ln -s -f phar.phar /www/php8/bin/phar
Installing PDO headers:           /www/php8/include/php/ext/pdo/

三、文件设置

1.php-ini,将源码目录下的php.ini-production复制到自己的目录下

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

2.生成www配置文件,将目录下的模板文件重命名

cd /www/php8/etc/php-fpm.d/
cp www.conf.default www.conf

3.生成php-fpm配置文件

cd /www/php8/etc/
cp php-fpm.conf.default php-fpm.conf

4.生成php-fpm可执行文件

# 创建存放配置文件的目录
mkdir php-fpm

#
 从源码中复制一份fpm可执行脚本
cp /www/php-8.1.7/sapi/fpm/init.d.php-fpm /www/php8/etc/php-fpm/php-fpm

#
 修改可执行文件的权限
chmod 740 php-fpm

四、进程启用管理

# 使用可执行文件进行启动
cd /www/php8/etc/php-fpm/
./php-fpm start
# 正常启动:
Starting php-fpm  done
# ps查看进程是否启动
ps -aux | grep php-fpm
# 查看php-fpm进程占用的端口,正常应该是9000
netstat -nltp
# 查看php版本
cd /www/php8/bin/
./php -v

使用systemctl管理服务

# 修改/php/etc/php-fpm.conf
[global]
; Pid file
; Note: the default prefix is /www/php8/var
; Default Value: none
; pid = run/php-fpm.pid # 将前面分号删除

vim /usr/lib/systemd/system/php-fpm.service
# 添加下面内容,目录要配置自己的对应目录
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# 保存文件

#
 使用systemctl管理
systemctl daemon-reload # 刷新systemctl
systemctl start php-fpm # 启动进程
systemctl stop php-fpm  # 结束进程
systemctl enable php-fpm# 开机启动

五、模块功能更新

1.进入源码目录进行编译安装

# php -m输出php的功能模块,在源码包的ext里面可以看到相应的模块,这些是自带的模块
cd /www/php-8.1.7/ext/

#
 查看模块
ls

#
 测试exif
cd exif

#
 进入文件夹,使用phpize生成configure文件进行编译安装
cd /www/php8/bin/phpize

#
 编译时指定配置文件
./configure --with-php-config=/www/php8/bin/php-config

#
 安装
make && make install

#
 安装完成之后会出现一个目录,里面包含了exif.so文件
# 修改php.ini,在最后添加上添加模块的路径
vim /www/php8/etc/php.ini
extension=/www/php8/lib/php/extensions/no-debug-non-zts-20210902/exif.so
# 保存,重启php-fpm进程
# 通过php -m 查看模块功能已经添加

本文由 mdnice 多平台发布

相关文章:

PHP8编译安装

CentOS8编译安装PHP8 PHP,全称Hypertext Preprocessor(超文本预处理器),是一种通用开源脚本语言。它特别适合于web开发,并能嵌入HTML中。现在主要用于PHP网站中实现动态网站功能,常规我们使用nginx、apache…...

3D Gaussian Splatting for Real-Time Radiance Field Rendering(慢慢啃,还是挺复杂的)

三个关键要素 从相机配准的过程中得到的稀疏点云开始,使用3D Gaussian表示场景; 3D Gaussian: 是连续体积辐射场能够防止不必要的空空间优化。对 3D Gaussion进行交叉优化和密度控制: 优化各向异性血方差对场景精确表示。使用快速可视感知渲染算法来进行快速的训练…...

二叉树<II>:二叉树的四种遍历方式代码实现Python3

今天我们来介绍的是二叉树的「前序」、「中序」、「后序」、「层序」四种遍历方式如何用代码实现。 还不知道这四种遍历方式原理的可以看另一篇文章:二叉树<I>:概念及二叉树的前序遍历、中序遍历、后序遍历原理 1. 相关题目 这…...

vite ts vue 项目提示 . Projects must list all files or use an include pattern.

vite ts vue 项目提示 . Projects must list all files or use an include pattern. 在引用一个 ts 的时候,提示如下: 需要在 tsconfig.node.json 文件中添加: {"compilerOptions": {"composite": true,"skipLibC…...

鲸鱼优化算法改进风储机组一次调频出力分配系数,以频率偏差最小为目标优化函数,结合鲸鱼算法WOA捕食过程,改进风储出力分配系数simulink与matlab联合

simulink与matlab联合 风机模糊控制 改善后的系统频率 simulink.采用风储联合数学模型...

C语言经典面试题目(七)

1、C语言中如何进行内存对齐和字节对齐? 在C语言中,内存对齐和字节对齐是为了优化内存访问速度和提高系统性能而进行的一种策略。内存对齐是指数据在内存中的存放位置必须是某个值的倍数,通常是数据类型的大小。字节对齐是指数据在内存中的存…...

2024华为春招Django面试题大全,最全知识点揭秘,面试必备!

为了帮助广大求职者更好地准备即将到来的面试,本文精心编撰了一系列涵盖InnoDB存储引擎关键知识点的面试题。这些问题不仅覆盖了InnoDB的基础知识,如其ACID特性、索引设计、锁机制等,还涵盖了性能优化、备份恢复策略等高级话题,旨…...

搜维尔科技:使用SenseGlove Nova手套操纵其“CAVE”投影室中的虚拟对象

创造了一种基于 PC 的创新型多边沉浸式环境,让参与者完全被虚拟图像和声音包围。 需要解决的挑战: 传统的 VR 系统往往缺乏真实的触摸反馈,限制了用户的沉浸感。AVR Japan 旨在通过将触觉技术融入到他们的 CAVE 系统中来应对这一挑战&#x…...

独立服务器的优势

独立服务器的优势 高性能 独立服务器提供了卓越的性能,因为它们不与其他用户共享资源。这使得您的网站或应用程序能够快速响应访问请求,并处理大量数据。 安全性 由于没有其他租户在同一服务器上,独立服务器的安全性更高。您可以更好地控制…...

前端框架vue的样式操作,以及vue提供的属性功能应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

【自动化测试】如何在jenkins中搭建allure

相信大家在做自动化测试过程中,都会用到自动化测试环境,目前最常见的就是通过容器化方式部署自动化测试环境,但对于一些测试小白,不是很会搭建持续集成环境,特别是从0-1的过程,需要自行搭建很多依赖环境&am…...

2.域控如何强制转移操作主机角色?使用命令如何强制转移域控的操作角色?

1.实验环境介绍 实验1:模拟5种操作主机都在DC01上的域控宕机了 (1)实验先决条件 (2)测试的方向 实验2:域控夺权实验操作 方式1:AD用户和计算机工具转移操作主机角色 (1)RID角色转移: (2)PDC角色转移 (3)基础结构操作主机角色转移 方式2:powshell命令强制…...

C# event的使用

在C#中,事件(Event)是一种特殊的成员,它允许类或对象以类型安全的方式向外界发出通知,表明某个特定的行为或状态变化已经发生。 订阅该事件的其他类可以定义处理方法来响应这些通知。 事件主要基于委托机制实现&…...

外包干了9天,技术退步明显。。。。。

先说一下自己的情况,本科生,2018年我通过校招踏入了南京一家软件公司,开始了我的职业生涯。那时的我,满怀热血和憧憬,期待着在这个行业中闯出一片天地。然而,随着时间的推移,我发现自己逐渐陷入…...

Android Framework 之 Python

当然可以,我会尽量提供更详细的内容,并增加更多的例子和解释。以下是更详细的Python语言教程: Python语言教程 一、Python简介 Python是一种高级编程语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于…...

【Fitten Code】“吊打“Github Copilot的国内免费代码辅助插件

🌻个人主页:相洋同学 🥇学习在于行动、总结和坚持,共勉! 目录 1.Github Copilot 2.Fitten Code 2.1 对话体验: 2.2 代码补全体验: 2.3 Pycharm安装方法: 2.4 Vscode安装方法…...

Git中的换行符CRLF和LF问题

目录 第一章、问题分析1.1)Git报错提示1.2)报错分析 第二章、解决方式2.1)在Windows上开发并需要与Unix或macOS上的开发人员协作2.1)在Unix或macOS开发并需要与Windows上的开发人员协作2.3)不需要与其他操作系统的开发…...

go语言文件操作

标准流的操作 从标准输入中查找重复的行 // 从标准输入中查找重复的行 func main() {counts : make(map[string]int, 0)scanner : bufio.NewScanner(os.Stdin) for scanner.Scan() {counts[scanner.Text()]}for key, value : range counts {if value > 1 {fmt.Println(&quo…...

七月论文审稿GPT第3.2版和第3.5版:通过paper-review数据集分别微调Mistral、gemma

前言 我司第二项目组一直在迭代论文审稿GPT(对应的第二项目组成员除我之外,包括:阿荀、阿李、鸿飞、文弱等人),比如 七月论文审稿GPT第1版:通过3万多篇paper和10多万的review数据微调RWKV七月论文审稿GPT第2版:用一万…...

QML 自定义时间编辑控件

一.展示效果 qml自定义时间编辑控件 二.主界面调用 //main.qml import QtQuick 2.12 import QtQuick.Controls 2.5 import QtQuick.Window 2.12 import "./qml"Window {visible: truewidth: 400height: 300title: qsTr("Hello World")property date origi…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

windows系统MySQL安装文档

概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

Vue ③-生命周期 || 脚手架

生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...