lnmp环境部署极简保姆级教程(nginx+php+mysql)

lnmp极简保姆级教程(nginx+php+mysql)

nginx

下载安装

https://nginx.org/download

 yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel #编译环境cd /opt
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
mkdir -p /www/nginx
./configure --prefix=/www/nginx
make && make install

启动

/www/nginx/sbin/nginx

常用指令

nginx -V 查看版本,以及配置文件地址
nginx -v 查看版本
nginx -c filename 指定配置文件
nginx -h 帮助
nginx -s reload|reopen|stop|quit // 重新加载配置|重启|停止|退出 nginx")重新加载配置|重启|停止|退出 nginx
nginx -t //查看配置是否有语法错误
nginx -c /usr/local/etc/nginx/nginx.conf //启动是加载指定nginx.conf文件

安装启动好php-fpm后,修改nginx.conf

location ~ \.php$ {root           /www/nginx/php;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;# fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #支持解析php文件include        fastcgi_params;}

php

yum方式安装

用yum方式安装php最新版

1 安装 epel-release源和 源管理工具yum-utils
yum -y install epel-release yum-utils
2 安装Remi软件源

Remi软件源官方地址: https://rpms.remirepo.net/

CentOS7安装:
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS7启动php模块并安装:

yum启动php模块,根据需要选择自己格式的版本,如remi-php74模块,就是php7.4版本。:

yum-config-manager --enable remi-php80    #启用remi源的php8.0模块

注:如果显示没有这个命令,则需要先安装yum -y install yum-utils 插件。

安装php及相关扩展:
yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis

安装成功:php -v 查看版本为php8.0版本

3 启动php-fpm
[root@xx logs]# whereis php-fpm
php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /etc/php-fpm.conf /usr/share/man/man8/php-fpm.8.gz[root@xx logs]# systemctl start php-fpm

mysql

yum安装mysql
MySQL三种安装方法(yum安装、编译安装、二进制安装)

yum安装mysql

1.卸载旧版mysql

如果安装过先卸载,第一次安装略过此步

[root@bunian etc]# rpm -qa | grep mysql
mysql-community-common-5.7.38-1.el7.x86_64
mysql-community-client-5.7.38-1.el7.x86_64
mysql80-community-release-el7-6.noarch
mysql-community-server-5.7.38-1.el7.x86_64
mysql-community-libs-5.7.38-1.el7.x86_64
# 所有组件都要删除
[root@bunian etc]# rpm -e --nodeps mysql-community-common-5.7.38-1.el7.x86_64
[root@bunian etc]# rpm -e --nodeps mysql-community-client-5.7.38-1.el7.x86_64
[root@bunian etc]# rpm -e --nodeps mysql80-community-release-el7-6.noarch
[root@bunian etc]# rpm -e --nodeps mysql-community-server-5.7.38-1.el7.x86_64
[root@bunian etc]# rpm -e --nodeps mysql-community-libs-5.7.38-1.el7.x86_64
# 清理yum headers cache
[root@bunian etc]# yum clean all
2.安装
2.1 rpm安装yum源
[root@bunian tmp]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
2.2 下载rpm源文件再安装
[root@bunian tmp]# wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
[root@bunian tmp]# yum localinstall mysql80-community-release-el7-6.noarch.rpm
3.选择mysql版本
[root@bunian tmp]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64           MySQL Cluster 7.5 Comm 禁用
mysql-cluster-7.5-community-source           MySQL Cluster 7.5 Comm 禁用
mysql-cluster-7.6-community/x86_64           MySQL Cluster 7.6 Comm 禁用
mysql-cluster-7.6-community-source           MySQL Cluster 7.6 Comm 禁用
mysql-cluster-8.0-community/x86_64           MySQL Cluster 8.0 Comm 禁用
mysql-cluster-8.0-community-debuginfo/x86_64 MySQL Cluster 8.0 Comm 禁用
mysql-cluster-8.0-community-source           MySQL Cluster 8.0 Comm 禁用
mysql-connectors-community/x86_64            MySQL Connectors Commu 启用:    192
mysql-connectors-community-debuginfo/x86_64  MySQL Connectors Commu 禁用
mysql-connectors-community-source            MySQL Connectors Commu 禁用
mysql-tools-community/x86_64                 MySQL Tools Community  启用:     90
mysql-tools-community-debuginfo/x86_64       MySQL Tools Community  禁用
mysql-tools-community-source                 MySQL Tools Community  禁用
mysql-tools-preview/x86_64                   MySQL Tools Preview    禁用
mysql-tools-preview-source                   MySQL Tools Preview -  禁用
mysql57-community/x86_64                    MySQL 5.7 Community Se 禁用
mysql57-community-source                     MySQL 5.7 Community Se 禁用
mysql80-community/x86_64                     MySQL 8.0 Community Se 启用:    343
mysql80-community-debuginfo/x86_64           MySQL 8.0 Community Se 禁用
mysql80-community-source                     MySQL 8.0 Community Se 禁用

默认是开启8.0版本

4.去除公钥检索校验 (最重要的地方)

这个地方容易出错,原因是没有去除校验导致服务安装后无法启动

#gpgcheck改成0
[root@bunian tmp]# vim /etc/yum.repos.d/mysql-community.repo
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
5.安装mysql
[root@bunian tmp]# yum install mysql-community-server
6.配置mysql
[root@bunian tmp]# vim /etc/my.cnf
[mysqld]
# 不区分大小写
lower_case_table_names=1
# 端口号
port = 3306
7.启动mysql
[root@bunian tmp]# systemctl start mysqld
8.修改mysql root密码及外网访问

初始密码在这里/var/log/mysqld.log

# 密码是:6;-#?gn*q;0H
[root@bunian etc]# grep 'temporary password' /var/log/mysqld.log
2022-06-21T03:25:39.021858Z 1 [Note] A temporary password is generated for root@localhost: 6;-#?gn*q;0H
登录mysql修改密码
[root@bunian etc]# mysql -h localhost -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.38 MySQL Community Server (GPL)mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpasswd';
修改外网访问

在 mysql 数据库的 user 表中查看当前 root 用户的相关信息

select host, user, authentication_string, plugin from user;

执行完上面的命令后会显示一个表格
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

授权 root 用户的所有权限并设置远程访问

update user set host='%' where user='root';
GRANT ALL ON *.* TO 'root'@'%';
GRANT ALL ON *.* TO 'root'@'%';

执行两次 GRANT ALL ON . TO ‘root’@‘%’;

刷新权限

mysql> flush privileges;
9.检验是否安装成功
# 查看mysql端口号
[root@bunian etc]# netstat -nltp | grep 3306
tcp6       0      0 :::33060                :::*                    LISTEN      1292/mysqld         
tcp6       0      0 :::3306                 :::*                    LISTEN      1292/mysqld    
10.Navicat连接
用Navicat连接报错:2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded
原因以及解决办法

由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式: caching_sha2_password

所以我们需要修改用户的加密方式,将其改为老的加密验证方式: mysql_native_password

#登录
mysql -h localhost -p#选择数据库
use mysql; # 注意:先 select host, user from user; 查看host值再决定以下是'root'@'%' 还是 'root'@'localhost'
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';#刷新权限
FLUSH PRIVILEGES; 
11.php连接mysql

连接Navicat创建test数据库、new表
vim /www/nginx/php/index.php

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 执行查询
$sql = "SELECT * FROM new";
$result = $conn->query($sql);// 输出数据
if ($result->num_rows > 0) {while($row = $result->fetch_assoc()) {echo "id: " . $row["id"]. " - name: " . $row["name"]. "<br>";}
} else {echo "0 结果";
}
//访问ip/index.php
id: 1 - name: 测试文章

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

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

相关文章

算法-二叉树-简单-二叉树的直径、将有序数组转换成二叉搜索树

记录一下算法题的学习9 二叉树的直径 题目&#xff1a;给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示 读完题目&…

java通过年月获取当前月所有周(跨月),获取每周开始日期和结束日期

/*** 根据年月返回本月共几周&#xff0c;每周开始与结束日期*/public static List<Map<String, String>> queryWeek(String year, String month) throws ParseException {/** 周 **/final String[] weeks { "第一周", "第二周", "第…

浏览器中(不使用pdf插件)下载pdf文件的方法

downloadPdfFnc(pdfUrl, pdfName){// 构建文件内容fetch(pdfUrl).then(response > response.blob()).then(blob > {const url URL.createObjectURL(blob);const a document.createElement(a);a.href url;a.download ${pdfName}.pdf; // 设置下载文件的名称a.style.di…

2014年3月24日 Go生态洞察:Go地鼠的故事

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

PRD学习

产品经理零基础入门&#xff08;五&#xff09;产品需求文档PRD&#xff08;全16集&#xff09;_哔哩哔哩_bilibili 1. PRD的2种表现形式 ① RP格式 &#xff08;1&#xff09;全局说明 ② 文档格式

redis之主从复制和哨兵模式

&#xff08;一&#xff09;redis的性能管理 1、redis的数据缓存在内存中 2、查看redis的性能&#xff1a;info memory&#xff08;重点&#xff09; used_memory:904192&#xff08;单位字节&#xff09; redis中数据占用的内存 used_memory_rss:10522624 redis向操作系统…

广告行业中那些趣事系列66:使用chatgpt类LLM标注数据并蒸馏到生产小模型

导读&#xff1a;本文是“数据拾光者”专栏的第六十六篇文章&#xff0c;这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要介绍使用chatgpt类LLM进行数据标注任务并蒸馏到生产小模型&#xff0c;对于希望使用chatgpt类LLM进行打标并部署到生产任务中的小伙伴可…

JVM的垃圾收集算法

1.算法的分类 1.1标记清除算法 第一步&#xff1a;标记&#xff08;找出内存中需要回收的对象&#xff0c;并且把它们标记出来&#xff09; 根据可达性算法&#xff0c;标记的是存活的对象&#xff0c;然后将其他的空间进行回收 第二步&#xff1a;清除&#xff08;清除掉被…

Sentinel 监控数据持久化(mysql)

Sentinel 实时监控仅存储 5 分钟以内的数据&#xff0c;如果需要持久化&#xff0c;需要通过调用实时监控接口来定制&#xff0c;即自行扩展实现 MetricsRepository 接口&#xff08;修改 控制台源码&#xff09;。 本文通过使用Mysql持久化监控数据。 1.构建存储表&#xff08…

使用OpenCV将图像转换为NV12格式并加载NV12数据

摘要&#xff1a;在新项目中&#xff0c;需要为上层应用开放几个接口&#xff0c;但又不想让上层应用过多依赖OpenCV。本文将详细介绍如何使用C和OpenCV&#xff0c;通过加载图片并转换为NV12格式&#xff0c;实现对图像数据的处理&#xff0c;以及如何加载NV12数据并显示。这些…

QT基础入门【QSS】QT伪状态类型和实例

1、伪装器类型 伪状态描述:active当部件位于活动窗口中时设置此状态。:adjoins-item当 QTreeView 的 ::branch 邻接到一个项时设置此状态。:alternate当 QAbstractItemView 绘制每一行时,如果 QAbstractItemView::alternatingRowColors() 设置为 true,则为每一行的交替行。:b…

ESP32 Arduino实战Web篇-使用 WebSocket 创建 ESP32 Web 服务器

本文将详细介绍如何使用 WebSocket 创建 ESP32 Web 服务器,解释WebSocket原理与搭建步骤,并附超详细的代码解释 假设我们需要创建一个使用 ESP32 通过 WiFi 控制灯泡的项目。实现非常简单:我们将 ESP32 设置为软 AP 或 STA 模式,使其能够提供一个网页,显示灯开关的状态为…

HT560 30W 过温限幅 D类音频功率放大器

HT560具有过温限幅功能&#xff0c;当芯片内部温度达到过温限幅点&#xff0c;HT560自动降低增益&#xff0c;使其IC能够连续播放而不间断。另外&#xff0c;HT560具有功率限制功能&#xff0c;一种是限幅功能&#xff0c;在输出端限制一定的输出幅度&#xff0c;使其不损坏喇叭…

JS中new关键词具体起到了什么作用

在JavaScript中&#xff0c;new关键字用于创建一个新的对象实例。具体来说&#xff0c;当你使用new关键字来调用一个函数时&#xff0c;这个函数会被视为一个构造函数&#xff0c;并且会创建一个新的对象。这个新对象会继承构造函数的属性和方法&#xff0c;并且可以通过this关…

算法基础 1.4 高精度 (加减乘除)

高精度加法模版&#xff1a; 计算 C A B&#xff0c;这里默认低位在前面&#xff0c;例如num123在A中的存在形式是[3,2,1]。 vector<int> add(vector<int> &A, vector<int> &B){vector<int> C;int t 0;for (int i 0; i < A.size() || i…

阿里云高效计划学生和老师免费代金券申请认证方法

阿里云高校计划学生和教师均可参与&#xff0c;完成学生认证和教师验证后学生可以免费领取300元无门槛代金券和3折优惠折扣&#xff0c;适用于云服务器等全量公共云产品&#xff0c;订单原价金额封顶5000元/年&#xff0c;阿里云百科aliyunbaike.com分享阿里云高校计划入口及学…

2014年3月13日 Go生态洞察:并发模式与管道取消技术

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

刷题学习记录(攻防世界)

wife_wife 一拿到题目就提示这题不用爆破 进入环境得到的是一个登录框 随便试了一下登录账户密码会提示错误&#xff0c;那就去注册账户&#xff0c;注册的账户还有注册管理员的选项 先注册普通用户234&#xff0c;注册好后登录 这样就得到flag&#xff0c;但是提交是错误的&a…

js-cookie的使用

js-cookie 基础 js-cookie是一个简单的&#xff0c;轻量级的处理cookies的js API。 // 安装js-cookie库 npm install js-cookie// 在Vue组件中使用js-cookie import Cookies from js-cookie// 设置cookie Cookies.set(key, value) //eg: Cookies.set(name, lhy)// 获取cookie …

KT404A语音芯片U盘更新语音方案说明_通讯协议 硬件设计参考

一、功能简介 KT404A语音芯片用U盘更换语音文件&#xff0c;适用于广告机、提示器等等场景 为了满足客户不方便使用PC电脑端更新&#xff0c;我们在KT404A芯片的基础上&#xff0c;开发了U盘更换声音文件的功能&#xff0c;保持和之前的标准本本【也就是KT404A芯片的基础版本…