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…...
像素幻梦·创意工坊应用场景:独立音乐人专辑封面像素艺术生成流程
像素幻梦创意工坊应用场景:独立音乐人专辑封面像素艺术生成流程 1. 引言:像素艺术在音乐视觉中的价值 在数字音乐时代,专辑封面依然是艺术家表达音乐理念的重要载体。对于独立音乐人而言,独特的视觉风格往往能成为作品的标志性符…...
SM4算法在嵌入式平台的轻量化移植与优化实践
1. SM4算法与嵌入式平台适配挑战 SM4作为我国自主设计的商用分组密码标准,在物联网设备安全领域应用广泛。但直接将OpenSSL中的SM4实现移植到STM32等嵌入式平台时,开发者常会遇到三大难题: 代码体积膨胀:OpenSSL的SM4实现依赖大量…...
Mac用户福音:Qwen3-TTS声音克隆在ComfyUI上的M芯片优化方案
Mac用户福音:Qwen3-TTS声音克隆在ComfyUI上的M芯片优化方案 1. 为什么Mac用户需要特别优化方案 苹果M系列芯片凭借其出色的能效比和统一内存架构,已经成为许多创意工作者的首选。然而,在运行AI模型时,特别是像Qwen3-TTS这样的语…...
长上下文与RAG
读到一篇探讨RAG技术的文章,很受用,遂记录一下。核心结论:RAG不会被无限上下文取代。 原文地址:LLM无限上下文了,RAG(Retrieval Augmented Generation)还有意义吗? - 今日头条 以下…...
Python 3.14 JIT架构深度拆解(含官方未发布IR层流程图+Hot Code Path决策树)
第一章:Python 3.14 JIT编译器演进背景与设计哲学Python 长期以来以解释执行和动态灵活性著称,但性能瓶颈在数值计算、实时服务与高吞吐系统中日益凸显。CPython 解释器的字节码执行模型虽稳定可靠,却难以突破单线程 GIL 与逐指令解释带来的固…...
DevOps工具链集成:GitLab CI、Jenkins与Argo CD如何选?
DevOps工具链集成:GitLab CI、Jenkins与Argo CD如何选? 在DevOps实践中,工具链的选型直接影响交付效率与系统稳定性。GitLab CI、Jenkins和Argo CD作为主流工具,分别覆盖持续集成(CI)、持续交付࿰…...
毕业设计实战:基于SSM+JSP的家纺用品销售管理系统设计与实现全攻略
毕业设计实战:基于SSMJSP的家纺用品销售管理系统设计与实现全攻略 在开发“家纺用品销售管理系统”这套毕设时,我曾因“订单管理与商家库存脱节”踩过一个关键坑。初期设计时,我将“用户下单”和“商家库存扣减”视为两个独立操作,…...
GUI-Guider工具:LVGL嵌入式GUI开发实战指南
1. GUI-Guider工具概述GUI-Guider是恩智浦公司专为LVGL图形库开发的一款可视化设计工具。作为一名长期从事嵌入式GUI开发的工程师,我亲身体验到这款工具如何彻底改变了传统的手写代码开发模式。它通过拖拽式操作界面,让开发者能够快速构建出精美的用户界…...
3个创新特性让开发者解决Linux存储管理难题
3个创新特性让开发者解决Linux存储管理难题 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 一、诊断存储瓶颈 识别隐形存储占用 当系统提示磁盘空…...
5个维度解析LimeReport:Qt框架下的高效全能报表生成解决方案
5个维度解析LimeReport:Qt框架下的高效全能报表生成解决方案 【免费下载链接】LimeReport Report generator for Qt Framework 项目地址: https://gitcode.com/gh_mirrors/li/LimeReport 在企业级应用开发中,报表功能往往是连接数据与决策的关键纽…...
