linux 系统安装php 8.0.2

1. 安装包准备

https://www.php.net/distributions/php-8.0.22.tar.gz

我下载到 /usr/local/src 这个目录了

cd /usr/local/src

wget https://www.php.net/distributions/php-8.0.22.tar.gz
2. tar 解压   然后进到解压的文件夹
tar -zxvf php-8.0.22.tar.gz 
cd php-8.0.22
3. 先安装一些依赖包 可能会少很多错误
yum install \
gcc gcc-c++ make cmake autoconfig \
zlib zlib-devel pcre pcre-devel \
libxml2-devel libxslt-devel \
bzip2-devel curl-devel libzip-devel\
sqlite-devel \
systemd-devel \
openssl-devel \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel \
freetype-devel \
gmp-devel \
libldb-devel \
libc-client libc-client-devel \
openldap openldap-devel \
oniguruma oniguruma-devel \
net-snmp-devel readline-devel unixODBC-devel \
uw-imap uw-imap-devel uw-imap-static uw-imap-utils \
libicu-devel \
enchant2 enchant2-devel \
gd gd-devel \
libsodium libsodium-devel \
libtidy libtidy-devel
4. 运行 ./configure --help 命令来获得完整的可用选项清单 可以自己定义开启那些东西
./configure --help

然后运行 这些命令

./configure \
--prefix=/usr/local/php8 \
--enable-mbstring \
--enable-fpm \
--enable-gd \
--enable-dom \
--enable-phar \
--enable-posix \
--with-curl \
--with-gettext \
--with-iconv \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-zlib 

出现这个 就说明已经可以准备安装了

5. make 一下 然后 make install
make

然后运行

make install
6. 出现这个就表示安装好了

安装目录在

/usr/local/php8/
7. 设置配置文件
cp php.ini-development /usr/local/php8/php.ini

  创建 php-fpm的配置文件


cp /usr/local/php8/etc/php-fpm.conf.default  /usr/local/php8/etc/php-fpm.conf

 确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行

cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
vim /usr/local/php8/etc/php-fpm.d/www.conf

把 23,24行改成

user = www-data
group = www-data

 

如果想改php端口的话 也可以在这里修改

然后 esc+:

wq 保存退出

8. 创建 www-data用户 并且不允许 ssh登录
useradd -r -s /usr/sbin/nologin www-data
9. 启动php-fpm
/usr/local/php8/sbin/php-fpm 

然后 看一下 9000 端口号 如果自己修改了端口号就找一下 自己修改的端口号

 ps -aux | grep 9000

已经启动了

10. 在自己的项目目录创建一个php文件 比如 我的
cd /data/htdocs/test
echo "<?php phpinfo();" > index.php
11. 新增 nginx 的网站配置 写自己的

比如在 nginx 的 http 里增加个 server

打开  nginx.conf 文件

在 http 方法里增加

server {
    listen        80;
    # 改成自己的域名
    server_name  xxx.com;
    # 自己对应的目录
    root   "/data/htdocs/test";
    location / {
        index index.php index.html error/index.html;
        error_page 400 /error/400.html;
       if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
        }
        autoindex  off;
    }
    location ~ \.php(.*)$ {
        # 自己对应的地址和端口
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
}

然后 保存退出

重启nginx

12. 打开自己对应的域名

安装完成 

13. 设置环境变量 改成自己对应的路径
 export PATH=/usr/local/php8/bin:$PATH

重新加载一下配置信息  应该用一个就行

 source ~/.bashrc
 source /etc/environment 
php -v

这样就没问题

# 遇到的错误 

# No package 'libxml-2.0' found

configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met:

No package 'libxml-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

解决方法

 yum install libxml2-devel

# No package 'sqlite3' found

yum install sqlite-devel

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0101支付安全-支付模块-项目实战

文章目录 一、信息安全的基础-机密性1 相关概念2 对称加密和非对称加密 二、身份认证三 摘要算法四、数字签名五、数字证书结语 在支付过程中&#xff0c;设计多方的敏感信息&#xff0c;那么安全尤为重要。下面先简单介绍下&#xff0c;相关概念。 一、信息安全的基础-机密性 …

YOLOv8项目解析——一文搞定目标检测、语义分割、状态估计、目标追踪算法原理与模型部署

简介 Ultralytics YOLOv8是一种前沿的、最先进的&#xff08;SOTA&#xff09;模型&#xff0c;它在前代YOLO版本的成功基础上进行了进一步的创新&#xff0c;引入了全新的特性和改进&#xff0c;以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计&#xff0c;YO…

基于单片机的智能汽车防盗系统设计

摘要:本文介绍了一种以汽车专用单片机飞思卡尔MC68HC908QT4CPE 作为底层主控芯片,人体远红外热释传感器、防闯入光幕墙及振动传感器作为检测装置的汽车防盗系统。单片机将检测到的防盗传感器开关信号,通过数据分析,系统可以设置布防和解除布防模式,在布防模式下,当检测到…

【AI+编程】使用chatGPT AI工具Python语言从0到1完成pdf转docx小工具

昨天运营同学问我一个问题&#xff0c;能不能把一个pdf转换成 docx 。 我给他提供了2种方式。一是用 PDF Reader PRO软件&#xff0c; 一个是WPS会员&#xff08;普通用户只能转换3页&#xff09;。 休息间隙&#xff0c;脑海里冒出一个想法。能不能用python写一个pdf转换do…

免杀对抗-C2远控篇CC++SC转换格式UUID标识MAC物理IPV4地址减少熵值

参考文章&#xff1a; https://github.com/INotGreen/Bypass-AMSI https://mp.weixin.qq.com/s/oJ8eHdX8HGuk6dZv0kmFxg https://kyxiaxiang.github.io/2022/12/14/AMSIandEtw https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell 文章参考&#xff1a; https://www.…

SQLAlchemy模型映射提示declarative_base() takes 0 positional arguments but 1 was given

原码&#xff1a; #SQLAlchemy模型映射表结构. from sqlalchemy import create_engine,Column,Integer,String from sqlalchemy.ext.declarative import declarative_base# 数据库的变量 HOST 127.0.0.1 PORT 3306 DATA_BASE itbz USER root PWD 123456 DB_URL fmysqlpy…

deepspeed chat RLHF个人笔记(待完成)

一、linux配置 # 新的linux配置: 1. 查看linux版本 uname -a 2. linux装软件ubuntu:安装软件:sudo apt install 软件名更新软件源:sudo apt update升级已安装的软件:sudo apt upgrade3. ubuntu 查看终端类型printenv | grep TERM 3. 安装 c编译器 sudo apt-get update sudo ap…

使用Redis位图实现12306分段购票

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 很多编程语言都有位运算符,Java语言也不例外。在Java语言中,提供了7种位…

通信原理QPSK OQPSK MSK 信道编码 GMSK

通信原理 通信QPSKOQPSKMSK信道编码GMSK需要的联系qq&#xff1a;2329738917 通信 QPSK OQPSK MSK 信道编码 GMSK 需要的联系qq&#xff1a;2329738917

小黑开始了芙蓉路岔气恰巧看到芙蓉脱单,假期东方时尚的学车生活,跟尚香骑车去北大微电子学院,在雪天考科目二的leetcode之旅: 43. 字符串相乘

小黑代码1:暴力转换 class Solution:def multiply(self, num1: str, num2: str) -> str:num1 int(num1)num2 int(num2)return str(num1 * num2)小黑代码2:转化为多位数x一位数 class Solution:def multiply(self, num1: str, num2: str) -> str:# 定义多位数x一位数的…

Github简单入门教程

文章目录 使用前提查看项目内容查看项目介绍打包下载项目查看项目作者项目搜索复制项目分支项目创建向项目中添加文件对项目进行评论 使用前提 想要使用Github&#xff0c;首先需要学会科学上网&#xff0c;不然用国内的网在正规情况下是无法访问Github滴~ 查看项目内容 打开…

解决错误LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to

react native pod第三方包或者git clone的时候遇到 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443两种解决方案 方法一 修改计算机网络配置 由于使用 IPv6 的原因&#xff0c;可能会导致这一问题的出现 系统在解析hostname时使用了ipv6 可以配…

联合体类型

结构体我们已经介绍在 自定义类型&#xff1a;结构体 中&#xff0c;今天我们来介绍另一种 自定义类型&#xff1a;联合体 目录 1.联合体的声明 2.联合体的特点 3.联合体大小的计算 4.联合体的应用 5.联合体的一个练习 1.联合体的声明 联合体与结构体类似&#xff0c;它也…

webpack练习之手写loader

手写一个style-loader来把样式文件插入head里面&#xff0c;准备工作 vue webpack就自己弄了&#xff0c;webpack的一些配置也自己配置好 一、创建index.css文件 .box{width: 100px;height: 100px;background-color: red; }然后在vue的main.js文件中引入它 二、创建自定义l…

深度学习知识【CSPNet网络详解】

CSPNet的贡献 1.增强了CNN的学习能力&#xff0c;能够在轻量化的同时保持准确性。 2.降低计算瓶颈。 3.降低内存成本。 CSPNet介绍 在神经网络推理过程中计算量过高的问题是由于网络优化中的梯度信息重复导致的。CSPNet通过将梯度的变化从头到尾地集成到特征图中&#xff0c…

2024水业大会|水会|水务投资与EOD模式论坛

论坛召集人&#xff1a;邹权 上海大学研究员 丁贞玉 生态环境部环境规划院研究员(拟请) EOD模式&#xff1a;生态环境导向的开发模式 《生态环保金融支持项目储备库入库指南&#xff08;试行&#xff09;》文件精神与上述逻辑并不完全一致。《指南》提出&#xff0c;EOD模…

阿里云服务器 -- 为网站配置域名

思考&#xff1a;小云已经成功的通过云服务器ECS完成了网站的架设和测试工作&#xff0c;那么是否可以让他的网站直接对外提供服务&#xff1f; 小云&#xff1a;我已经成功的通过云服务器ECS完成了网站的架设和测试&#xff0c;那么是不是就可以正式对所有用户开放我的网站了…

MySql实战--行锁功过:怎么减少行锁对性能的影响

在上一篇文章中&#xff0c;我跟你介绍了MySQL的全局锁和表级锁&#xff0c;今天我们就来讲讲MySQL的行锁。 MySQL的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁&#xff0c;比如MyISAM引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁&#xf…

国产半导体公司

1、移远通信---通信模组 物联网解决方案供应商&#xff0c;可提供完备的IoT产品和服务&#xff0c;涵盖蜂窝模组(5G/4G/3G/2G/LPWA)、车载前装模组、智能模组&#xff08;5G/4G/边缘计算&#xff09;、短距离通信模组(Wi-Fi&BT)、GNSS定位模组、卫星通信模组、天线等硬件产…

发送请求- header配置

请求头里是客户端的要求&#xff0c;把你的诉求告诉服务端&#xff0c;服务端按照你的要求返回数据 &#xff0c; 请求header需要严格全配置&#xff0c;把请求header全部传入&#xff0c;不能频繁访问&#xff0c;让后端知道它是正常请求 一般只配置User-Agent和Content Typ…