php8.3.0安装及扩展安装

php8.3.0安装及扩展安装

部署环境及版本

系统版本:CentOS Linux release 7.9.2009
php版本:8.3.0

部署前准备

1、关闭自带防火墙,安装iptables

# 关闭SELinux
setenforce 0 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config# 关闭Firewalld并禁止自启动
systemctl stop firewalld
systemctl disable firewalld# 安装iptables
yum install -y iptables-services# 启动iptables服务,并设置开机自启动(修改规则在/etc/sysconfig/iptables)
systemctl start iptables
systemctl enable iptables.service

2、时间同步

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-timezone Asia/Shanghai
ntpdate -u time.nist.gov
date

一、安装php8.3.0

1、安装依赖

#安装epel源
yum -y install epel-release
#更新yum源
yum -y update
#安装依赖包
yum install -y gcc gcc-c++ freetype-devel bzip2-devel curl-devel autoconf libxml2-devel libjpeg-devel libpng-devel libxslt-devel libzip-devel libmcrypt mhash wget sqlite-devel oniguruma oniguruma-devel
#安装work用户
useradd work

2、创建安装目录并解压

#创建存放安装包目录
mkdir -pv /server/tools
#下载安装包
cd /server/tools
wget https://www.php.net/distributions/php-8.3.0.tar.gz
#解压安装包
tar xvf php-8.3.0.tar.gz

3、升级openssl

#卸载centos自带1.0.2版本的openssl
yum remove openssl-1.0.2k-26.el7_9.x86_64
#下载新版openssl包 (如果下载不下来,windows下载,上传到服务器)
cd /server/tools
wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
#解压缩包
tar xvf openssl-1.1.1i.tar.gz
#检验系统环境及依赖
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared zlib
#编译、安装
make && make install
#测试新安装openssl
cd /usr/local/openssl/bin && ./openssl version
#如果报错提示error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory,则执行下面命令
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/
#测试新安装openssl正常

3、编译安装php8.3.0

#进入安装目录
cd /server/tools/php-8.3.0
#检验当前系统环境,是否满足安装软件所必需的条件
./configure --prefix=/data/php --with-fpm-user=work --with-fpm-group=work --with-curl  --with-gettext --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl=/usr/local/openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-fpm --enable-ctype
#执行后,可能会遇到下面问题
#configure: error: Package requirements (krb5-gssapi krb5) were not met:
#No package 'krb5-gssapi' found No package 'krb5' found
yum install krb5-devel krb5-libs krb5-workstation -y
#安装完后再进行编译
#configure: error: Package requirements (openssl >= 1.0.2) were not met:
#No package 'openssl' found
升级openssl,重新检测还是不行的话
mkdir -pv /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig
vim ~/.bash_profile
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source ~/.bash_profile
pkg-config --list-all #查看有openssl后,算是成功
#重新检测系统环境
./configure --prefix=/data/php --with-fpm-user=work --with-fpm-group=work --with-curl  --with-gettext --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl=/usr/local/openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-fpm --enable-ctype
#编译安装
make && make install

4、配置环境变量

sed -i 's/PATH=.*/&:\/data\/php\/bin/g' ~/.bash_profile
source ~/.bash_profile

5、修改配置文件

cp /server/tools/php-8.3.0/php.ini-production /data/php/lib/php.ini
cp /data/php/etc/php-fpm.conf.default /data/php/etc/php-fpm.conf
ln -s /data/php/sbin/php-fpm /usr/local/bin/php
cp /data/php/etc/php-fpm.d/www.conf.default /data/php/etc/php-fpm.d/www.conf
sed -i 's/;listen.mode = 0660/listen.mode = 0660/g' /data/php/etc/php-fpm.d/www.conf
sed -i '/^pm.max_children/s/5/25/' /data/php/etc/php-fpm.d/www.conf
sed -i '/^pm.start_servers/s/2/5/' /data/php/etc/php-fpm.d/www.conf
sed -i '/^pm.min_spare_servers/s/1/2/' /data/php/etc/php-fpm.d/www.conf
sed -i '/^pm.max_spare_servers/s/3/10/' /data/php/etc/php-fpm.d/www.conf
sed -i '/pm.max_requests/s/;pm.max_requests = 500/pm.max_requests = 10000/' /data/php/etc/php-fpm.d/www.conf
sed -i 's/;rlimit_files = 1024/rlimit_files = 1024/g' /data/php/etc/php-fpm.d/www.conf
sed -i 's/;slowlog = log\/$pool.log.slow/slowlog = log\/$pool.log.slow/g' /data/php/etc/php-fpm.d/www.conf

6、配置systemctl启动php

cd /usr/lib/systemd/system/
cat>php-fpm.service<<EOF
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target[Service]
Type=forking
#PIDFile=/var/run/php-fpm.pid
ExecStart=/data/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start php-fpm
systemctl enable php-fpm

二、安装amqp扩展

1、安装rabbitmq-c

1)安装cmake
1、安装必备依赖库
yum install -y gcc gcc-c++ make automake wget
2、下载安装包
cd /server/tools
wget https://cmake.org/files/v3.26/cmake-3.26.3.tar.gz
3、解压并安装
tar xvf cmake-3.26.3.tar.gz
cd cmake-3.26.3
./bootstrap
gmake
gmake install
4、检测是否安装成功
cmake --version
2)安装rabbitmq-c
#下载安装包 (如果下载不下来,windows下载,上传到服务器)
wget https://github.com/alanxz/rabbitmq-c/archive/v0.14.0.tar.gz
#解压安装包
tar zxvf v0.14.0.tar.gz
#创建build子目录并进入子目录
cd rabbitmq-c-0.14.0
mkdir build && cd build
#创建Makefile文件到build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..
#安装rabbitmq-c库
cmake --build .  --target install
3)安装amqp
#下载安装包
wget https://pecl.php.net/get/amqp-2.1.2.tgz
#解压安装包
tar zxvf amqp-2.1.2.tgz
#phpize编译,生成configure文件
cd /server/tools/amqp-2.1.2
/data/php/bin/phpize
#检查系统环境
./configure --with-php-config=/data/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c
#编译安装
make && make install
#编译安装报错:
#/usr/bin/ld: cannot find -lrabbitmq
#collect2: error: ld returned 1 exit status
#make: *** [amqp.la] Error 1
yum install -y librabbitmq-devel
#重新编译安装
make && make install
#修改php.ini文件配置amqp扩展
vim /data/php/lib/php.ini
extension=amqp.so
#重启php-fpm
systemctl restart php-fpm
#查看扩展
php -m

2、安装gd扩展

1)安装zlib
#下载安装包
cd /server/tools
wget https://www.zlib.net/fossils/zlib-1.2.11.tar.gz
#解压安装包
tar xzvf zlib-1.2.11.tar.gz
#检测系统环境
cd zlib-1.2.11
./configure
#编译安装
make && make install
2)安装freetype
#下载安装包
cd /server/tools
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.gz
#解压安装包
tar -xzvf freetype-2.9.tar.gz
#检测系统环境
cd freetype-2.9
./configure --prefix=/usr/local/lib/freetype
#编译安装
make && make install
3)安装libpng
#下载安装包
cd /server/tools
wget https://nchc.dl.sourceforge.net/project/libpng/libpng16/1.6.43/libpng-1.6.43.tar.gz
#解压安装包
tar -xzvf  libpng-1.6.43.tar.gz
#检测系统环境
cd libpng-1.6.43
./configure --prefix=/usr/local/lib/libpng
#编译安装
make && make install
4)安装libjpeg
#下载安装包
cd /server/tools
wget https://www.ijg.org/files/jpegsrc.v9f.tar.gz
#解压安装包
tar -xzvf jpegsrc.v9f.tar.gz
#检测系统环境
cd jpeg-9f
./configure --prefix=/usr/local/lib/libjpeg --enable-shared
#编译安装
make && make install
5)安装GD
#进入php的ext文件,phpize编译,生成configure文件
cd /server/tools/php-8.3.0/ext/gd
/data/php/bin/phpize
#检查系统环境
./configure --with-php-config=/data/php/bin/php-config --with-jpeg --with-freetype
#编译安装
make && make install
#修改php.ini文件配置gd扩展
vim /data/php/lib/php.ini
extension=gd.so
#重启php-fpm
systemctl restart php-fpm
#查看扩展
php -m

3、安装redis扩展

#下载安装包
cd /server/tools
wget https://pecl.php.net/get/redis-5.3.4.tgz
#解压安装包
tar xvf redis-5.3.4.tgz
#phpize编译,生成configure文件
cd /server/tools/redis-5.3.4
/data/php/bin/phpize
#检查系统环境
./configure --with-php-config=/data/php/bin/php-config
#编译安装
make && make install
#修改php.ini文件配置gd扩展
vim /data/php/lib/php.ini
extension=redis
#重启php-fpm
systemctl restart php-fpm
#查看扩展
php -m

部署问题总结

./configure --prefix=/data/php --with-fpm-user=work --with-fpm-group=work --with-curl  --with-gettext --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-fpm --enable-ctype
#执行后,可能会遇到下面问题
#configure: error: Package requirements (krb5-gssapi krb5) were not met:
#No package 'krb5-gssapi' found No package 'krb5' found
yum install krb5-devel krb5-libs krb5-workstation -y
#安装完后再进行编译
#configure: error: Package requirements (openssl >= 1.0.2) were not met:
#No package 'openssl' found
升级openssl,重新检测还是不行的话
mkdir -pv /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/openssl.pc /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig
ln -s /usr/local/openssl/lib/pkgconfig/libssl.pc /usr/local/lib/pkgconfig
vim ~/.bash_profile
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source ~/.bash_profile
pkg-config --list-all #查看有openssl后,算是成功#升级openssl后,执行./openssl version报错提示./openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/#执行报错:cmake: command not found
安装cmake#/usr/bin/ld: cannot find -lrabbitmq
#collect2: error: ld returned 1 exit status
#make: *** [amqp.la] Error 1
yum install -y librabbitmq-devel

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/458006.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python计算相对强弱指数(RSI)进阶

使用Python计算相对强弱指数&#xff08;RSI&#xff09;进阶 废话不多说&#xff0c;直接上主题&#xff1a;> 代码实现 以下是实现RSI计算的完整代码&#xff1a; # 创建一个DataFramedata {DATE: date_list, # 日期CLOSE: close_px_list, # 收盘价格 }df pd.DataF…

基于丑萌气质狗--C#的sqlserver学习

#region 常用取值 查询List<string> isName new List<string> { "第一", "第二", "第三", "第四" }; List<string> result isName.Where(m > m "第三").ToList();MyDBContext myDBnew MyDBContext(…

【数据分享】中国汽车市场年鉴(2013-2023)

数据介绍 在这十年里&#xff0c;中国自主品牌汽车迅速崛起。吉利、长城、比亚迪等品牌不断推出具有竞争力的车型&#xff0c;在国内市场乃至全球市场都占据了一席之地。同时&#xff0c;新能源汽车的发展更是如日中天。随着环保意识的提高和政策的大力支持&#xff0c;电动汽车…

CSS伪元素以及伪类和CSS特性

伪元素&#xff1a;可以理解为假标签。 有2个伪元素 &#xff08;1&#xff09;::before &#xff08;2&#xff09;::after ::before <!DOCTYPE html> <html> <head><title></title><style type"text/css">body::before{con…

Android简单控件实现简易计算器

学了一些Android的简单控件&#xff0c;用这些布局和控件&#xff0c;设计并实现一个简单计算器。 计算器的界面分为两大部分&#xff0c;第一部分是上方的计算表达式&#xff0c;既包括用户的按键输入&#xff0c;也包括计算结果 数字&#xff1b;第二部分是下方的各个按键&a…

【redis】初识非关系型数据库——redis

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 初识 Redis Redis是⼀种基于键值对&#xff08;key-value&#xff09;的NoSQL数据库&#xff0c;与很多键值对数据库不同的是&#xff0c;Redis 中的值可以是由string&#xff08;字符串&#xff09;、hash&#xff0…

基于协同过滤算法的个性化课程推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

AndroidStudio部署多渠道打包环境(一)

对于游戏来说&#xff0c;需要上架国内很多家应用商店&#xff0c;还有一些小的渠道SDK&#xff0c;大大小小加起来也有几十家了&#xff0c;那么我们部署了多渠道打包环境之后就很方便了。 一 、配置游戏基本参数&#xff1a;在app下面的build.gradle文件里编辑&#xff0c; …

Java全栈经典面试题剖析4】JavaSE高级 -- 包装类,String, 类方法

目录 面试题3.1 什么是自动装箱与拆箱&#xff1f;用什么方式来装箱与拆箱&#xff1f; 面试题3.2 int和Integer有什么区别&#xff1f; 面试题3.3 Integer常量池 面试题3.4 字符串常量池 面试题3.5 这句代码创建了几个对象? String str1 new String("xyz");…

【AI大模型】深入解析 存储和展示地理数据(.kmz)文件格式:结构、应用与项目实战

文章目录 1. 引言2. 什么是 .kmz 文件&#xff1f;2.1 .kmz 文件的定义与用途2.2 .kmz 与 .kml 的关系2.3 常见的 .kmz 文件使用场景 3. .kmz 文件的内部结构3.1 .kmz 文件的压缩格式3.2 解压缩 .kmz 文件的方法3.3 .kmz 文件的典型内容3.4 .kml 文件的结构与主要元素介绍 4. 深…

python对文件的读写操作

任务:读取文件夹下的批量txt数据&#xff0c;并将其写入到对应的word文档中。 txt文件中包含&#xff1a;编号、报告内容和表格数据。写入到word当中&#xff1a;编号、报告内容、表格数据、人格雷达图以及对应的详细说明&#xff08;详细说明是根据表格中的标识那一列中的加号…

安徽对口高考Python试题选:输入一个正整数,然后输出该整数的3的幂数相加形式。

第一步&#xff1a;求出3的最高次幂是多少 guoint(input("请输入一个正整数:")) iguo a0 while i>0: if 3**i<guo: ai break ii-1print(a)#此语句为了看懂题目&#xff0c;题目中不需要打印出最高幂数 第二步…

开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用

一、前言 学习Qwen2-VL &#xff0c;为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野&#xff0c;更让我们站在科技发展的潮头&#xff0c;紧跟时代的步伐。 Qwen2-VL 具有卓越的图…

ELK日志收集

目前&#xff0c;各个微服务系统的日志都保存在各自指定的目录中&#xff0c;如果这些微服务部署在不同的服务器上&#xff0c;那么日志文件也是分散在各自的服务器上。分散的日志不利于我们快速通过日志定位问题&#xff0c;我们可以借助ELK来收集各个微服务系统的日志并集中展…

智能台灯设计(一)原理图设计

1. 前言 作者最近突发奇想&#xff0c;想自己做一个小台灯&#xff0c;设想的功能有&#xff1a;带锂电池可充电、可以调节亮度&#xff0c;后续通过增加WIFI模块实现手机控制开关功能。目前先实现最简单的功能&#xff0c;有时间再一步步完善吧。 2. 原理图设计 充电芯片使用…

B端产品常用组件及设计规则 原型图 Axure原型图 交互设计

B端产品常用组件及设计规则 本作品总结整理了B端产品原型设计时常用的组件、设计指南、常用模板等。为原型设计人员提供实用的组件和指南&#xff0c;帮助他们快速灵活地构建出更加美观、高质量的产品原型&#xff0c;更加高效地完成原型设计工作。 原型演示地址&#xff1a;…

【笔记】软件测试09——接口测试

九、接口测试 一)接口测试的概念 1)接口测试 通过数据包的方式观察客户端向服务器发送了什么请求,模拟这些请求的过程 接口测试是测试系统组件间数据交互的一种方式。 接口测试是通过测试不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应 的功能性、…

鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元

目录 前言 HarmonyOS NEXT&#xff1a;下一代操作系统的愿景 1、核心特性和优势 2、如何推动应用生态的发展 3、对开发者和用户的影响 华为云服务在鸿蒙原生应用开发中的作用 1、华为云ECS C系列实例 &#xff08;1&#xff09;全维度性能升级 &#xff08;2&#xff…

人工智能进程;算子加速的具体计算部分;大模型GPT5:参数18万亿;大模型面临问题

目录 人工智能进程 算子加速的简单理解,举例说明 一、简单理解 二、举例说明 一、算子加速的具体计算部分 二、举例说明 三、算子加速是否仅针对GPU 大模型GPT5:参数18万亿 大模型面临问题 算力集群设计框架 人工智能进程

论文阅读(二十六):Dual Attention Network for Scene Segmentation

文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文&#xff1a;Dual Attention Network for Scene Segmentation   论文链接&#xff1a;Dual Attention Network for Scene Segmentation   代码链接&#xff1a;Github 1.Intr…