AlmaLinux构建LNMP

2023-11-14

环境:

虚拟机:AlmaLinux9.1
hostname:localhost
ip:192.168.123.228

#查看系统
cat /etc/redhat-release

确保软件包管理器是最新的

yum clean all
yum update
#安装开发者工具包
yum groupinstall "Development Tools"
#安装网络工具包
yum -y install net-tools

#查看网卡信息
ifconfig
#查看路由信息
route -n
#查看ARP信息
arp -an
#查看服务暴露的地址和端口
netstat -lnupt

安装方式统一使用yum

#查看yum版本
yum --version

在这里插入图片描述yum4基于dnf技术,yum4命令提供了与早期版本中使用的Yum v3的向后兼容性。yum命令只是到dnf的一个符号链接。yum和dnf的区别

安装mysql

#查看防火墙
firewall-cmd --state
#查看防火墙已经开放的端口
firewall-cmd --list-ports
#查看防火墙开放的服务
firewall-cmd --list-services
#mysql默认的服务端口为3306,这里允许3306/tcp端口访问
firewall-cmd --zone=public --permanent --add-port=3306/tcp
#重新加载防火墙配置
firewall-cmd --reload

在这里插入图片描述

如果是本地开发使用,为了方便也可以直接关闭防火墙

#关闭防火墙
systemctl stop  firewalld.service
#开启防火墙
systemctl start  firewalld.service
#禁止开机启动
systemctl disable firewalld.service
#加入开机启动
systemctl enable firewalld.service
#列出mysql-server
yum list mysql-server
#进行安装
yum -y install mysql-server
#查看MySQL安装情况
rpm -qa |grep mysql

MySQL配置文件相关

ll /etc/my.cnf
cat /etc/my.cnf
#服务端配置文件
cat /etc/my.cnf.d/mysql-server.cnf
#客户端配置文件
cat /etc/my.cnf.d/client.cnf

启动

#启动MySQL
systemctl start mysqld.service
#查看状态
systemctl status mysqld.service
#将MySQL加入开机自启动
systemctl enable mysqld.service

查看mysql的初始登录密码

首次运行(systemctl start mysqld.service)时会自动生成root用户的密码

root用户的密码可以在MySQL日志文件中找出,服务端配置文件里面显示了MySQL的日志文件所在路径:log-error=/var/log/mysql/mysqld.log

egrep -v "^#|^$"  /etc/my.cnf.d/mysql-server.cnf
#显示密码
grep "password" /var/log/mysql/mysqld.log

在这里插入图片描述

日志显示此次安装mysql时没有设置root用户密码(即使用空密码进行登录)

登录MySQL

mysql -uroot -p

空密码直接回车即可

在这里插入图片描述
为root用户设置新密码

这里新密码用123456

use mysql;
select host, user,plugin, authentication_string from user;
alter user 'root'@'localhost' identified with mysql_native_password by  '123456';

把root用户的访问权限设置可远程连接,只需要把host的值更改为通配的%

update user set host = "%" where user = "root";
#刷新权限
flush privileges;

在这里插入图片描述

使用Navicat远程登录数据库

在这里插入图片描述在这里插入图片描述

需要注意的是mysql8数据库默认的密码加密方式是:caching_sha2_password,以前是mysql_native_password。而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就有可能报错。解决办法如下:

vi /etc/my.cnf.d/mysql-server.cnf

添加如下配置

default_authentication_plugin=mysql_native_password

重启服务

systemctl restart mysqld.service

mysql_native_password和caching_sha2_password的区别

安装PHP

yum list php
#安装
yum -y install php
#查看已安装的
yum list installed | grep php
#验证安装的版本
php -v
#查看所有可用的PHP 扩展
php --modules
#安装PHP 扩展
yum -y install php-mbstring
yum -y install php-mysqlnd
yum -y install php-gd
yum -y install php-zip
yum -y install php-xdebug
#启动
systemctl start php-fpm
#重启
systemctl restart php-fpm
#查看状态
systemctl status php-fpm
#设置开机自启动
systemctl enable php-fpm

默认情况下 /etc/php-fpm.d目录存放相关配置文件

cd /etc/php-fpm.d
ls

PHP相关配置文件路径为/etc/php.ini/etc/php.d/*

设置PHP的时区

vi /etc/php.ini

找到;date.timezone =这项,修改为date.timezone = Asia/Shanghai

php扩展的配置文件在/etc/php.d目录下,这里修改一下xdebug的配置

cd /etc/php.d
vi 15-xdebug.ini

调整内容如下

[xdebug]
xdebug.var_display_max_children=128
xdebug.var_display_max_data=512
xdebug.var_display_max_depth=5

安装Nginx

yum -y  install nginx
#启动
systemctl start nginx
#停止
systemctl stop nginx
#重启
systemctl restart nginx
#重新加载配置(日常的添加/移除站点使用该指令即可)
systemctl reload nginx
#状态
systemctl status nginx
#开机自启动
systemctl enable nginx

将服务HTTPHTTPS端口添加到 firewalld 防火墙中

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
firewall-cmd --list-services

80端口是默认开放的,所以这里无需额外开发

在浏览器输入192.168.123.228即可看到nginx的本地默认主页
在这里插入图片描述
查看各端口的占用情况

netstat -tunlp

Nginx相关配置文件

/etc/nginx目录:所有Nginx配置文件的主目录

/etc/nginx/nginx.conf文件:主要的Nginx配置文件

为了便于管理多个站点,可以添加一个目录用于存放各站点的.conf配置文件。
这里假设目录为 /workspace/nginx-config

vi /etc/nginx/nginx.conf

http节点里面
sendfile on;修改成sendfile off;

另外再加入一行

#引入多站点目录
include /workspace/nginx-config/*.conf;

并把http节点里面server节点的配置(Nginx本地默认主页的配置)注释掉

在这里插入图片描述

这里创建一个demo站点演示一下

cd /workspace/wwwroot
mkdir demo
cd demo
vi index.php

index.php内容如下

<?php phpinfo();
cd /workspace/nginx-config
vi demo.cc.conf

demo.cc.conf内容如下

server {
    listen       80;
    #autoindex on;
    server_name  demo.cc;
    root   /workspace/wwwroot/demo;
    location / {
        index  index.php index.htm ;
    }
    location ~ \.php$ {
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

其中的fastcgi_pass要跟/etc/php-fpm.d/www.conf文件listen=的值一致

在这里插入图片描述

#检查nginx相关配置文件是否存在问题
nginx -t
#重新加载nginx配置
systemctl reload nginx

最后新增一项本机的hosts信息

#指向到虚拟机
192.168.123.228	demo.cc

使用浏览器测试
在这里插入图片描述

如果浏览器提示无法访问demo.cc,可以使用telnet指令来测试能否连接到虚拟机

telnet 192.168.123.228 80
telnet demo.cc 80

可能是缓存引起的
浏览器存在DNS缓存:需要手动清除浏览器缓存,以chrome为例:在搜索栏输入chrome://net-internals/#dns,点击clear host cache即可

系统存在DNS缓存:需要手动清除系统缓存,以MacOS为例:在终端输入以下命令即可(参考:Reset the DNS cache in OS X

sudo killall -HUP mDNSResponder

https://support.apple.com/en-us/HT202516

可能会引起nginx 403 forbidden 错误的原因及解决方法

具体原因可以通过查看错误日志文件了解

cat /var/log/nginx/error.log

一、目录权限问题

#加个权限
chmod -R 777 /workspace/wwwroot
#重启nginx
systemctl restart nginx

二、启动用户和nginx工作用户不一致所致

ps aux|grep nginx

在这里插入图片描述

vi /etc/nginx/nginx.conf

把user nginx;改为user root;

在这里插入图片描述

#重启nginx
systemctl restart nginx

三、SELinux引起的

查看SELinux状态
/usr/sbin/sestatus
vi  /etc/selinux/config

SELINUX=enforcing 改成SELINUX=disabled

#重启系统
reboot
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AlmaLinux构建LNMP 的相关文章

随机推荐

  • springboot security学习-01

    引入相关依赖
  • 心血来潮,自实现标准库的shared_ptr

    include
  • 虚拟机怎么重启服务器,虚拟机服务器重启命令行

    虚拟机服务器重启命令行 内容精选 换一换 确认服务器服务是否开启 登录虚拟机内部 执行如下命令 查看系统的端口监听状态 如图1所示 netstat ntplWindows虚拟机可以在命令行中执行netstat ano查看系统的端口监听状态
  • awk 以及 sed 的一下常用方法

    前段时间看了慕课网上关于awk 和 sed 的一些用法 以及自己实际中用到的做一个简单的总结记录 方便以后使用到的时候查阅 1 首先是正则表达式 边界字符 1 首字符 2 尾字符 例子 筛选出以a字母后面跟着3个以上数字 a字母开头 b字母
  • 【JS】简易ATM取款机

    页面显示请输入你的操作 不输入4就会反复弹出这个对话框 1 存款 2 取款 3 查看余额 4 退出 while嵌套switch 循环的时候 需要反复提示输入框 所以提示框写到循环里面 退出的条件是用户输入了4 如果是4 则结束循环 不在弹窗
  • 文件名称乱码,content-disposition 获取filename乱码的解决办法

    1 前端先确认是否能在响应头里获取到filename 如果获取不到 需后端服务器设置请求头Access Control Expose Headers 设置headers name 文件名称 中国 xlsx public static Htt
  • 微信小程序接入客服功能开发流程

    首先看官方文档这样说的 1 小程序内 开发者在小程序内添加客服消息按钮组件 用户可在小程序内唤起客服会话页面 给小程序发消息 客服消息使用指南 微信开放文档 客服消息按钮组件 button 微信开放文档 在线客服是通过按钮组件来绑定的 所以
  • mac安装MongoDB以后 报错 command not found: mongod

    mac安装MongoDB以后 报错 command not found mongod 阐述 这里具体就不介绍怎么安装MongoDB了 可以自行的去查教程 官网 MongoDB官网 菜鸟教程 建议使用这个 报错问题 当执行 mongod ve
  • 循环里,设置执行间隔

    在循环内控制 多长时间执行一次循环体 js没有提供这种方法 就只能自己写个判断时间的函数 第一种方法 es6之前我们可以用时间戳来判断 function sleep n var start new Date getTime 定义起始时间的毫
  • AQS同步组件-CountDownLatch解析和案例

    CountDownLatch原理 CountDownLatch是通过一个计数器来实现的 计数器的初始化值为线程的数量 每当一个线程完成了自己的任务后 计数器的值就相应得减1 当计数器到达0时 表示所有的线程都已完成任务 然后在闭锁上等待的线
  • Linux——线程同步(互斥锁、信号量、读写锁、自旋锁、条件变量)

    前言 当多个控制线程共享相同的内存时 需要确保每个线程看到一致的数据视图 若每个线程使用的变量都是其他线程不会读取或修改的 那么就不存在一致性概念 同样地 若变量是只读的 多个线程同时读取该变量也不会有一致性问题 但是当某个线程可以修改变量
  • Myeclipse平台struts+hibernate+spring项目开发示例

    如果您按照上篇文章配置成功 可以进行开发简单的J2EE项目 开发前准备 1 新建项目包 如下图 Dao 数据层 service 逻辑层 web web展现层 2 建立好三层架构 部署好包名 建立一个jsp文件 取名为 login jsp 代
  • Go设置国内源

    Go设置国内源 如果你需要Beego这个框架 正常来说你需要安装Git之后go get不会报错 但由于网络问题 go get会非常慢 以至于没法使用 这个时候我们需要需要国内源来进行加速 首先需要我们开启Go的MODULL支持 SETX G
  • 从零开始的ESP8266探索(16)-扫描网络演示

    文章目录 目的 使用演示 同步扫描 异步扫描 总结 目的 ESP8266可以通过扫描获取周围环境中的WiFi热点 所以我们也可以先扫描一下再决定连接到某个网络上 这也是一种常见的应用场景 使用演示 同步扫描 使用下面代码进行同步扫描 同步扫
  • 59. 螺旋打印情况

    i 代表一圈 j 从用来上下左右移动 主要是控制 i 与j 的参数关系就ok了 另一个是注意如何初始化 从左上角到右上角 while j
  • CScrollView嵌入对话框中无法响应WM_MOUSE WHEEL 消息

    1 问题描述 当使用CScrollView来显示图像时 往往需要将它嵌入到对话框中 当嵌入对话框之后 显示图像 使用放大镜查看图像时 发现使用WM MOUSE WHEEL消息来放大和缩小放大镜 结果消息未响应 2 分析原因 跟着调试发现 C
  • 基于LLaMA-2进行微调的FreeWilly2开源语言模型

    FreeWilly2是由Stability AI基于Llama2 70B所微调后发布的大语言模型 该模型的部分推理能力甚至已经超越了openAI的GPT 3 5 截止至发稿前 该模型在HuggingFace的开源语言模型排行榜中位列榜首 大
  • FPGA的虚拟时钟如何使用?

    以下文章来源于傅里叶的猫 作者张大侠 但文中对虚拟时钟的应用介绍的还不够详细 因此这里我们再对虚拟时钟做一个更加细致的介绍 首先 虚拟时钟用于什么地方 虚拟时钟通常用于设定输入和输出的延时 即set input delay和set outp
  • python 读取dll、exe文件版本终极方案

    网上找到的大都是调用win32api 但是这个api很多dll识别失败了 推荐使用wind32com 它兼容性比较强 1 使用win32api import os import win32api def getFileVersion fil
  • AlmaLinux构建LNMP

    环境 虚拟机 AlmaLinux9 1 hostname localhost ip 192 168 123 228 查看系统 cat etc redhat release 确保软件包管理器是最新的 yum clean all yum upd