Linux 常见运营维护,从安装软件开始,到mysql,php,redis,tomcat等软件安装,配置,优化,持续更新中。。。

下载centos7

CentOS 7 完整版(DVD):

https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

CentOS 7 最小化版(Minimal):

https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso

CentOS 7 网络安装版(NetInstall):

https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso

安装相关软件

0. ifconfig

如果没有这么命令,则使用 yum install net-tools 安装网络工具

如果报错,

先ping下外网是否能通

1. 检查网络连接

确保你的系统可以访问互联网:

ping -c 4 google.com
PING google.com (46.82.174.69) 56(84) bytes of data.--- google.com ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2000ms

如果无法访问,请检查网络配置(如 DNS、网关等)。

2. 清理 YUM 缓存

清理 YUM 缓存并重新生成缓存:

yum clean all
yum makecache

3. 检查仓库配置文件

检查 /etc/yum.repos.d/ 目录下的仓库配置文件,确保 extras 仓库的 URL 是有效的。例如:

cat /etc/yum.repos.d/CentOS-Base.repo

找到 [extras] 部分,检查 baseurl 或 mirrorlist 是否正确。

4. 使用国内镜像站

如果默认仓库不可用,可以替换为国内镜像站(如阿里云、腾讯云)。以下是使用阿里云镜像站的步骤:

备份原有仓库配置文件:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载阿里云的仓库配置文件:

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理并更新缓存:

yum clean all
yum makecache

设置外网IP

  1. 编辑 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    改为 ONBOOT=“yes” 后,系统会在每次启动时自动启用该网络接口,确保网络连接正常。
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="239f45e1-995d-48e8-a51c-18493722fddb"
DEVICE="enp0s3"
ONBOOT="yes"  //no改成yes
  1. 修改完上面的内容,重启网络systemctl restart network

  2. 查看 ip addr
    这时候发现网络IP被启用,如果是用服务器,则会出现公网IP
    在这里插入图片描述

ip addr show enp0s3
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:b5:9a:4f brd ff:ff:ff:ff:ff:ffinet 10.0.0.110/24 brd 10.0.0.255 scope global noprefixroute dynamic enp0s3valid_lft 6474sec preferred_lft 6474secinet6 fe80::eaa2:f36c:6259:d981/64 scope link noprefixroute valid_lft forever preferred_lft forever

使用xshell链接

  1. 查看ip,
    在这里插入图片描述
    如果是内网ip,则需要关掉虚拟机,则设置->网络->链接方式->桥接
    在这里插入图片描述
    在这里插入图片描述

安装vim

yum install vim

安装wget

yum install wget

SSH 安装和使用

ssh 是什么:

SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地访问远程计算机或服务器。它通过加密技术确保数据传输的安全性,防止数据被窃听或篡改。SSH 广泛用于远程管理服务器、文件传输和网络服务。

安装ssh

安装

yum install openssh-server

启动

service sshd start 

开机启动

centos6及一下版本

chkconfig sshd on

centos7及以上版本

systemctl enable sshd.service

查看ssh

ps -ef|grep ssh
root     24773     1  0 14:38 ?        00:00:00 sshd: root@pts/0
root     24899     1  0 15:29 ?        00:00:00 sshd: root@pts/1
root     24949     1  0 15:29 ?        00:00:00 /usr/sbin/sshd -D
root     24990 24903  0 15:35 pts/1    00:00:00 grep --color=auto ssh

客户端安装ssh工具

windows 推荐使用xshell,

mac 平台

linux 执行

yum install openssh-clients

开始链接

ssh root@10.0.0.110  

ssh 配置(高阶)

  1. 进入ssh目录 cd ~/.ssh/
  2. 查看是否有config文件,没有则 touch config创建

在这里插入图片描述
在这里插入图片描述
3. 在配置文件 config 里配置如下

host "myssh"HostName 10.0.0.110User rootPort 22
  1. 登录测试 ssh myssh,则正常进入目标主机
ssh myssh
root@10.0.0.110's password: 
Last login: Fri Jan 10 16:04:03 2025 from 10.0.0.133[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:b5:9a:4f brd ff:ff:ff:ff:ff:ffinet 10.0.0.110/24 brd 10.0.0.255 scope global noprefixroute dynamic enp0s3valid_lft 5316sec preferred_lft 5316secinet6 fe80::eaa2:f36c:6259:d981/64 scope link noprefixroute valid_lft forever preferred_lft forever

ssh配置多台主机

host "myssh"HostName 10.0.0.110User rootPort 22
host "myssh1"HostName 10.0.0.111User rootPort 22
host "myssh2"HostName 10.0.0.112User rootPort 22			

免密登录ssh-key

采用非对称方式,公钥和私钥,公钥给客户端使用,私钥则在服务器里
在这里插入图片描述

在window下的xshell生成公钥

工具-用户key管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
密码留空
留
在这里插入图片描述
在这里插入图片描述

Linux 生成公钥

一路下一步就在 家目录/.ssh/ 下你会看到 ``

ssh-keygen

在这里插入图片描述

ssh服务端,把公钥复制到

复制公钥到ssh服务器的 ./ssh/authorized_keys里面
在这里插入图片描述

在这里插入图片描述

免密登录验证

在这里插入图片描述

ssh 端口修改

vi /etc/ssh/sshd_config

修改端口22为222,重启服务``
在这里插入图片描述

在 Linux 系统中,绑定低于 1024 的端口需要 root 权限。如果 sshd 配置为使用低于 1024 的端口(如 222),可能会导致权限问题。
所以建议端口大于1024 例如2222

Linux 常用命令

在这里插入图片描述

软件命令

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

yum

  1. 安装
yum install wget
  1. 搜索
yum search wget
  1. 卸载
yum remove wget
  1. 查看已下载的软件
yum list 
yum list installed 
  1. 查看详细信息
yum info wget

服务器硬件,内存命令

查看内存

free -m

在这里插入图片描述

              total        used        free      shared  buff/cache   available
Mem:        8010328     1234567     2345678      123456     4430123     5678901
Swap:       2097148           0     2097148

在这里插入图片描述

每隔 2 秒刷新显示内存使用情况

free -s 2

硬盘

df 
[root@localhost ~]#  df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 908M     0  908M   0% /dev
tmpfs                    919M     0  919M   0% /dev/shm
tmpfs                    919M   33M  887M   4% /run
tmpfs                    919M     0  919M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.8G   16G  11% /
/dev/sda1               1014M  150M  864M  15% /boot
tmpfs                    184M     0  184M   0% /run/user/0

在这里插入图片描述

[root@localhost ~]#  df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 908M     0  908M   0% /dev
tmpfs                    919M     0  919M   0% /dev/shm
tmpfs                    919M   33M  887M   4% /run
tmpfs                    919M     0  919M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.8G   16G  11% /
/dev/sda1               1014M  150M  864M  15% /boot
tmpfs                    184M     0  184M   0% /run/user/0

在这里插入图片描述

查看负载 w 命令

 10:15:23 up  1:23,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    09:55    5.00s  0.10s  0.00s w
user1    pts/1    192.168.1.101    10:00    15:00  0.05s  0.05s bash
user2    pts/2    192.168.1.102    10:10    1:00   0.02s  0.02s top

在这里插入图片描述

常用示例

  1. 不显示标题行
w -h
  1. 使用简洁格式输出
w -s

示例输出:

root     pts/0    192.168.1.100    09:55    5.00s w
user1    pts/1    192.168.1.101    10:00    15:00 bash
user2    pts/2    192.168.1.102    10:10    1:00  top
  1. 不显示用户登录来源
w -f
  1. 显示 IP 地址
w -i
  1. 查看指定用户的信息
w root
  1. 输出字段说明
    字段 说明
USER	登录用户名。
TTY	用户使用的终端(如 pts/0 表示伪终端)。
FROM	用户登录的来源(IP 地址或主机名)。
LOGIN@	用户登录时间。
IDLE	用户空闲时间(如 5.00s 表示 5 秒)。
JCPU	用户所有进程占用的 CPU 时间。
PCPU	当前进程占用的 CPU 时间。
WHAT	用户当前运行的命令。
  1. 实际应用
  2. 检查当前登录用户
w

查看有哪些用户登录到系统以及他们在做什么。

  1. 监控系统负载
w

关注 load average 字段,了解系统的负载情况。

  1. 查找异常用户
w

检查是否有未知用户登录系统,确保系统安全。

  1. 查看指定用户的活动
w root

查看 root 用户的登录信息和活动。

  1. 总结
    w 是 Linux 中非常实用的用户活动监控工具,通过它可以快速了解当前登录用户及其活动。结合不同的选项,可以满足各种监控需求。掌握 w 的用法,可以帮助你更好地管理系统用户和资源!

查看cpu使用情况

cat /proc/cpuinfo
[root@localhost ~]#  cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 158
model name	: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
stepping	: 10
cpu MHz		: 2808.002
cache size	: 9216 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 22
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq monitor ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase bmi1 avx2 bmi2 invpcid rdseed clflushopt arat md_clear flush_l1d
bogomips	: 5616.00
clflush size	: 64
cache_alignment	: 64
address sizes	: 39 bits physical, 48 bits virtual
power management:

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

提取特定信息

可以使用 grep 命令提取特定的 CPU 信息。

  1. 查看 CPU 型号
grep "model name" /proc/cpuinfo | uniq
  1. 查看 CPU 核心数
grep -c "^processor" /proc/cpuinfo
  1. 查看 CPU 频率
grep "cpu MHz" /proc/cpuinfo
  1. 查看 CPU 支持的特性
grep "flags" /proc/cpuinfo | uniq
  1. 实际应用
  2. 检查 CPU 型号
grep "model name" /proc/cpuinfo | uniq
  1. 检查 CPU 核心数
grep -c "^processor" /proc/cpuinfo
  1. 检查 CPU 是否支持虚拟化
grep -E "vmx|svm" /proc/cpuinfo

vmx 表示 Intel 的虚拟化技术(VT-x)。
svm 表示 AMD 的虚拟化技术(AMD-V)。

fdisk

fdisk [选项] <磁盘设备>

磁盘设备:如 /dev/sda、/dev/nvme0n1 等。

常用选项

选项说明
-l列出指定磁盘的分区表(不进入交互模式)。
-u显示分区大小时使用扇区数而不是柱面数。
-s<分区> 显示指定分区的大小(以块为单位)。

常用操作

在 fdisk 的交互模式中,可以使用以下命令:

命令说明
m显示帮助菜单。
p打印分区表。
n创建新分区。
d删除分区。
t更改分区类型。
w保存更改并退出。
q不保存更改并退出。
l列出已知的分区类型。
v验证分区表。
示例
  1. 列出磁盘分区表
sudo fdisk -l /dev/sda
 sudo fdisk -l /dev/sdaDisk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a489eDevice Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

在这里插入图片描述

Linux 目录结构

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

  1. 根目录 /

1. /bin/sbin
/bin:存放系统的基本命令,所有用户都可以使用。

示例:ls、cp、mv、rm 等。

/sbin:存放系统管理员使用的命令。

示例:fdiskifconfigiptables 等。

  1. /boot
    存放启动 Linux 所需的文件,如:

内核文件:vmlinuz-<版本号>。

引导加载程序:grub。

初始化内存盘:initramfs-<版本号>.img。

  1. /dev
    存放设备文件,每个文件对应一个硬件设备。

示例:

/dev/sda:第一块硬盘。

/dev/tty:终端设备。

/dev/null:空设备(丢弃所有写入的数据)。

  1. /etc
    存放系统的配置文件。

示例:

/etc/passwd:用户账户信息。

/etc/network/interfaces:网络配置。

/etc/fstab:文件系统挂载配置。

  1. /home
    每个普通用户都有一个独立的目录,用于存放个人文件。

示例:/home/username

  1. /lib/lib64
    存放系统的基本共享库文件。

示例:libc.so(C 标准库)。

  1. /media/mnt
    /media:用于挂载可移动设备(如 U 盘、光盘)。

/mnt:用于临时挂载文件系统(如网络共享、外部硬盘)。

  1. /opt
    存放第三方应用程序的安装目录。

示例:/opt/google/chrome

  1. /proc
    虚拟文件系统,提供内核和进程的信息。

示例:

/proc/cpuinfo:CPU 信息。

/proc/meminfo:内存信息。

/proc/<PID>:进程信息。

  1. /root
    超级用户(root)的主目录。

11. /run
存放系统运行时的临时文件。

示例:

/run/pid:进程 ID 文件。

/run/lock:锁文件。

  1. /tmp
    存放临时文件,所有用户都可以访问。

注意:系统重启后,/tmp 目录中的文件可能会被清除。

  1. /usr
    存放用户安装的应用程序和文件。

子目录:

/usr/bin:用户命令。

/usr/lib:共享库文件。

/usr/local:本地安装的软件。

/usr/share:共享数据(如文档、字体等)。

  1. /var
    存放经常变化的文件。

子目录:

/var/log:日志文件。

/var/mail:邮件文件。

/var/lib:数据库文件。

/var/cache:缓存文件。

防火墙

1. iptables 和 firewalld 的关系

1.1 底层技术

iptables:

直接操作 Linux 内核的 Netfilter 框架。

通过命令行配置规则,规则直接生效。

firewalld:

基于 iptables,是对 iptables 的封装和扩展。

通过动态管理规则,支持区域(zone)和服务(service)的概念。

1.2 规则管理

iptables:

规则是静态的,修改后需要手动保存和加载。

规则直接写入内核,立即生效。

firewalld:

规则是动态的,支持运行时修改。

规则通过 D-Bus 接口管理,可以动态应用到内核。

2. iptables 和 firewalld 的区别

特性iptablesfirewalld
配置方式命令行直接配置,语法复杂。通过命令行或配置文件,语法简单。
规则管理静态规则,修改后需手动保存和加载。动态规则,支持运行时修改。
区域和服务不支持区域和服务概念。支持区域和服务,便于管理复杂网络。
持久化需要手动保存规则到文件。规则自动持久化,无需手动保存。
适用场景需要精细控制的场景。需要动态管理和简化配置的场景。

能否同时使用 iptables 和 firewalld?

3.1 不推荐同时使用

冲突风险:

firewalld 是基于 iptables 的,它会动态管理 iptables 规则。

如果同时使用 iptables 直接修改规则,可能会导致规则冲突或覆盖。

管理混乱:

同时使用两种工具会增加配置的复杂性,难以维护和排查问题。

3.2 如何选择

如果需要动态管理和简化配置,使用 firewalld。

如果需要精细控制和直接操作 iptables,使用 iptables。

3.3 切换工具
如果已经安装了 firewalld,但希望使用 iptables,可以按照以下步骤切换:

停止并禁用 firewalld

systemctl stop firewalld
systemctl disable firewalld

安装并启用 iptables

yum install iptables-services -y
systemctl start iptables
systemctl enable iptables

保存 iptables 规则

service iptables save

建议使用 firewalld

firewalld 是一个动态管理防火墙的工具,支持区域(zone)服务(service)的概念。

启动firewalld

启动服务

systemctl start firewalld

立即启动 firewalld 服务。

重启服务

systemctl restart firewalld

重启 firewalld 服务。

查看服务当前状态

systemctl status firewalld

停止服务

systemctl stop firewalld
systemctl start firewalld
systemctl enable firewalld

查看状态

firewall-cmd --state
running

查看所有区域

firewall-cmd --get-zones

查看默认区域

firewall-cmd --get-default-zone

允许服务

firewall-cmd --zone=public --add-service=http --permanent
--zone=public:指定区域为 public。--add-service=http:允许 HTTP 服务。--permanent:永久生效。

允许端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

–add-port=8080/tcp:允许 TCP 端口 8080。

重新加载配置

firewall-cmd --reload

查看当前规则

firewall-cmd --list-all

实例防火墙放行

放行 ssh 和 http

firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

放行httpd(apache)

firewall-cmd --zone=public --add-service=ssh --permanent

apache安装配置

安装

yum install httpd

启动

systemctl start httpd

停止

systemctl stop httpd

重启

systemctl restart httpd

查看

systemctl status httpd

开机启动

systemctl enable httpd

基于 Debian/Ubuntu

1.1 在基于 Debian/Ubuntu 的系统上

sudo apt update
sudo apt install apache2

1.2 在基于 CentOS/RHEL 的系统上

sudo yum install httpd

1.3 启动并启用 Apache

sudo systemctl start apache2   # Debian/Ubuntu

开机启动

sudo systemctl enable apache2  # Debian/Ubuntu

访问apache

http://10.0.0.110
  1. 如果无法访问,则先看
netstat -anpl| grep 'http'

说明已经启动了80端口,

[root@localhost ~]# netstat -anpl| grep 'http'
tcp6       0      0 :::80                   :::*                    LISTEN      9660/httpd 
  1. 查看防火墙端口是否放行
 firewall-cmd --zone=public --add-service=http --permanent
success
  1. firewall-cmd --list-all

在这里插入图片描述

配置 Apache

2.1 配置文件位置

Debian/Ubuntu:

主配置文件:/etc/apache2/apache2.conf

站点配置文件:/etc/apache2/sites-available/

启用的站点配置文件:/etc/apache2/sites-enabled/

CentOS/RHEL:

主配置文件:/etc/httpd/conf/httpd.conf

额外配置文件:/etc/httpd/conf.d/

2.2 配置虚拟主机

虚拟主机允许你在同一台服务器上托管多个网站。

创建虚拟主机配置文件
/etc/apache2/sites-available/(Debian/Ubuntu)/etc/httpd/conf.d/(CentOS/RHEL)中创建一个新文件,例如 example.com.conf

sudo vi /etc/apache2/sites-available/example.com.conf

添加以下内容:

apache

<VirtualHost *:80>ServerAdmin webmaster@example.comServerName example.comServerAlias www.example.comDocumentRoot /var/www/example.comErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

创建网站根目录:

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www/example.com

启用站点(仅限 Debian/Ubuntu):

sudo a2ensite example.com.conf

重新加载 Apache:

sudo systemctl reload apache2  # Debian/Ubuntu
sudo systemctl reload httpd    # CentOS/RHEL

优化 Apache

3.1 调整性能参数

编辑 Apache 的主配置文件(/etc/apache2/apache2.conf /etc/httpd/conf/httpd.conf),调整以下参数:

示例配置
apache

#最大并发连接数
MaxRequestWorkers 150
# 每个子进程的最大请求数
MaxConnectionsPerChild 10000
# 超时时间
Timeout 60

保持连接

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100

3.2 启用压缩
启用 mod_deflate 模块以压缩输出内容,减少带宽使用。

启用模块

sudo a2enmod deflate  # Debian/Ubuntu
sudo systemctl restart apache2 # centos

配置压缩
在配置文件中添加以下内容:

apache

<IfModule mod_deflate.c>AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
</IfModule>

3.3 启用缓存
启用 mod_expiresmod_headers 模块以设置缓存策略。

启用模块

sudo a2enmod expires headers  # Debian/Ubuntu
sudo systemctl restart apache2

配置缓存
在配置文件中添加以下内容:

apache

<IfModule mod_expires.c>ExpiresActive OnExpiresByType image/jpeg "access plus 1 year"ExpiresByType image/png "access plus 1 year"ExpiresByType text/css "access plus 1 month"ExpiresByType application/javascript "access plus 1 month"
</IfModule>

3.4 使用 HTTPS
启用 SSL 模块并配置 HTTPS。

安装 SSL 模块

sudo a2enmod ssl  # Debian/Ubuntu
sudo systemctl restart apache2

配置 HTTPS
获取 SSL 证书(可以使用 Let’s Encrypt)。

在虚拟主机配置中添加以下内容:

<VirtualHost *:443>ServerAdmin webmaster@example.comServerName example.comDocumentRoot /var/www/example.comSSLEngine onSSLCertificateFile /path/to/certificate.crtSSLCertificateKeyFile /path/to/private.key
</VirtualHost>

重新加载 Apache:

sudo systemctl reload apache2  # Debian/Ubuntu
sudo systemctl reload httpd    # CentOS/RHEL

配置虚拟主机

1. 进入配置文件目录

cd /etc/httpd

在这里插入图片描述

2. 编辑配置文件

<VirtualHost *:80>ServerName www.aliyeye.comDocumentRoot /data/www<Directory /data/www>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory></VirtualHost>

3. 访问

http://www.aliyeye.com

如果出现502,则很大可能是SELinux 安全模式没被关闭

查看
sestatusSELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33
临时关闭
setenforce 0
开启
setenforce 1
完全关闭
 vi /etc/selinux/config
SELINUX=enforcing   # 强制模式
SELINUX=permissive  # 宽容模式
SELINUX=disabled    # 禁用模式

重启系统

reboot

开启伪静态

<Directory "/path/to/your/document_root">Options Indexes FollowSymLinksAllowOverride AllRequire all granted# 开启重写引擎RewriteEngine On# 以下是一些具体的重写规则示例# 将 /about.php 重写为 /aboutRewriteRule ^about$ about.php [L]# 将 /category.php?id=1 重写为 /category/1RewriteRule ^category/([0-9]+)$ category.php?id=$1 [L]# 将 /article.php?title=hello-world 重写为 /article/hello-worldRewriteRule ^article/([a-zA-Z0-9\-]+)$ article.php?title=$1 [L]
</Directory>

Nginx

安装

不能上来直接yum安装,需要先安装 EPEL
在CentOS上安装Nginx可以通过使用EPEL(Extra Packages for Enterprise Linux)仓库来完成。以下是安装Nginx的步骤:

  1. 安装EPEL
yum install epel-release
  1. 安装nginx
yum install nginx
  1. 启动
systemctl start nginx
  1. 开机启动
systemctl enable nginx
  1. 查看状态
systemctl status nginx
  1. 重启
systemctl restart nginx
  1. 重载
    一般使用reload来重新启动nginx,这样不会出现数据丢失问题
systemctl reload nginx
  1. 防火墙放行

伪静态

server {listen 80;server_name www.aligege.com;root /data/www/aligege;index index.html index.htm;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include fastcgi_params;fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}# 其他配置...
}

负载均衡

http {upstream backend {server 192.168.1.100:80;  # 替换为第一台服务器的IP和端口server 192.168.1.101:80;  # 替换为第二台服务器的IP和端口server 192.168.1.102:80;  # 替换为第三台服务器的IP和端口}server {listen 80;server_name your_domain.com;  # 替换为你的域名location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}

配置负载均衡算法(可选)

upstream backend {server 192.168.1.100:80 weight=3;server 192.168.1.101:80 weight=2;server 192.168.1.102:80 weight=1;
}

测试配置

nginx -t

重启 Nginx

 systemctl restart nginx

防火墙放权

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

MySQL

mysql账号:

root
gVJ2#g+7=0xq112233xxp
Xzqqq@@@333

安装

  1. 查询本机是否存在mariadb
mysql search mariadb

如果mariadb存在,则删除下载最新的源

  1. 下载安装源
https://dev.mysql.com/downloads/repo/yum/https://repo.mysql.com//mysql84-community-release-el7-1.noarch.rpm
2. 安装mysql服务(安装下载的最新源)2.1 本地安装源
```bash
yum install localinstall mysql84-community-release-el7-1.noarch.rpm
2.2 搜索yum以及索引重建
yum search mysql

在这里插入图片描述

2.3. 	安装mysql
yum install mysql-community-server.x86_64
  1. 默认密码存放处
cat /var/log/mysqld.log |grep " password"

在这里插入图片描述

服务器的启动,查看 ,重启,关闭

# 服务启动
systemctl start mysqld# 服务器状态
systemctl status mysqld# 服务开机启动
systemctl enable mysqld
# 服务停止
systemctl stop mysqld
# 服务重启
systemctl restart mysqld

mysql扩展知识

开启mysql genelog

新用户创建以及赋予权限

客户端的链接

  1. 命令行登录
 mysql -uroot -p # 回车输入密码# 如果提示让你重新设置密码
show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

如果你安装的mysql 版本大于5.7,则修改密码

set PASSWORD = 'gVJ2#g+7=0xq112233';

mysql版本小于5.7

set PASSWORD = PASSWORD('gVJ2#g+7=0xq112233');
  1. sqlyog
  2. nacicat
在这里插入代码片

配置远程连接

在这里插入代码片
  1. heidiSQL
  2. Sequal pro
  3. phpMyadmin

开启远程链接

开启远程链接

设置默认账户root开启远程访问权限,当然,你可以自己建立一个独立的号来

0. 编辑/etc/my.cnf

编辑/etc/my.cnf,修改bind-address0.0.0.0

1.给Host 给%,表示任意主机访问

update user set Host='%' where Host='localhost' and 'root';
select Host,User from user \G;
*************************** 1. row ***************************
Host: %
User: root
*************************** 2. row ***************************
Host: localhost
User: mysql.infoschema
*************************** 3. row ***************************
Host: localhost
User: mysql.session
*************************** 4. row ***************************
Host: localhost
User: mysql.sys
4 rows in set (0.00 sec)

2. 刷新权限

  1. 推出sql,重新进来
  2. flush privileges
flush privileges

3. 防火墙放行mysql

如果防火墙里有mysql的服务
firewall-cmd --get-services

在这里插入图片描述

sudo firewall-cmd --add-service=mysql--permanent

如果没有这个服务,则需要开放端口策略

重启防火墙

添加MySQL端口规则
firewall-cmd --add-port=3306/tcp --permanent

重启防火墙

创建新用户

语句中的*.* == 库名.表名

创建xp用户

CREATE 
USER 'remoteuser'@'%' 
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

赋予权限

CREATE USER 'xp'@'%' IDENTIFIED BY 'Xzqqq@@@333';
GRANT ALL PRIVILEGES ON *.* TO 'xp'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

只给查询权限

给所有表查询权利

GRANT SELECT ON *.* TO 'xp'@'%' WITH GRANT OPTION;
GRANT SELECT,insert,update,delete ON *.* TO 'xp'@'%' WITH GRANT OPTION;
只给特定的库增删改查权限
GRANT SELECT,insert,update,delete ON shop.* TO 'xp'@'%' WITH GRANT OPTION;

收回权限

REVOKE ALL PRIVILEGES  ON *.*  FROM xp@'%'; 

如果报错如下:

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

则需要下面的操作

MySQL8版本中新增了一个system_user帐户类型,由于root用户没有SYSTEM_USER权限,导致错误出现。

 grant system_user on *.*  to 'root';flush privileges;

实战

安装php网站运行环境

确认php所需要的版本

yum list installed |grep php

如果已有php不相符的版本,则删除相应的文件

yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 
yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 phpIdap.x86_64 php-mbstring.x86-64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

配置源


rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpmrpm -Uvh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm

开始安装

以php5.6为例

yum install php5.6w-fpm

安装完成后校验是否存在

php启动

systemctl status php56w
systemctl start php56w
systemctl restart php56w
systemctl stop php56w

php的基础扩展

 yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

查看版本

php -v

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

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

相关文章

用户界面软件05

已知应用 几乎所有的流行的用户界面架构都使用这种模式。我在这里举三个例子&#xff1a; 1. Seeheim 用户界面架构的特点是有一个应用核心的领域层和一个用户界面层。后者 被分为两层&#xff0c;叫做表示层和对话控制层。因为这个架构和面向事务系统有渊源&#xff0c;没有…

从玩具到工业控制--51单片机的跨界传奇【2】

咱们在上一篇博客里面讲解了什么是单片机《单片机入门》&#xff0c;让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识&#xff0c;顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话&#xff0c;可以看看博主的C语言专栏哟&#xff…

LVGL移植高通点阵字库GT30L24A3W

字库芯片: GT30L24A3W MCU:STM32F429 LVGL版本:V8.4 一、实现gt_read_data() 和 r_dat_bat() 请参考下面视频 如何在32位MCU上使用高通点阵字库_哔哩哔哩_bilibili 高通字库使用教程(1)硬件链接与注意事项部分_哔哩哔哩_bilibili 高通字库使用教程(2)SPI底层函数使用_哔哩…

C# OpenCV机器视觉:转速测量

在一个看似平常却又暗藏神秘能量的日子里&#xff0c;阿杰正在他那充满科技感的实验室里&#xff0c;对着一堆奇奇怪怪的仪器发呆。突然&#xff0c;手机铃声如一道凌厉的剑气划破寂静&#xff0c;原来是工厂的赵厂长打来的紧急电话&#xff1a;“阿杰啊&#xff0c;咱们工厂新…

【Vue】Vue组件--上

目录 一、组件基础 二、组件的嵌套关系 1. 基础架构 2. 嵌套 三、组件注册方式 1. 局部注册&#xff1a; 2. 全局注册&#xff1a; 四、组件传递数据 1. 基础架构 2. 传递多值 3. 动态传递数据 五、组件传递多种数据类型 1. Number 2. Array 3. Object 六、组…

unity下载newtonsoft-json

Package Manager&#xff0c;输入com.unity.nuget.newtonsoft-json 右键Assets-Reinport All

SpringBoot项目实战(40)--Beetl网页开发在控制层使用通用方法映射前端不同路径的网页

在SpringBoot中使用Beetl做前端页面&#xff0c;后端如何使用Controller映射前端不同的页面&#xff0c;不需要为每个前端页面单独增加控制层方法&#xff1f; 因为前端页面比较多&#xff0c;每个前端页面对应一个独立Controller方法也是不现实的&#xff0c;总不能每增加一个…

【自动化测试】—— Appium安装配置保姆教程(图文详解)

目录 一. 环境准备 二. JDK安装 1. 下载JDK 2. 安装JDK 3. 配置环境 4. 验证安装 三. Android SDK安装 1. 下载Android SDK 2. 安装Android SDK 3. 安装工具 4. 配置环境 5. 验证安装 四. NodeJS安装 1. 下载NodeJS 2. 安装NodeJS 3. 验证安装 4. 安装淘宝镜像…

Oracle 终止正在执行的SQL

目录 一. 背景二. 操作简介三. 投入数据四. 效果展示 一. 背景 项目中要求进行性能测试&#xff0c;需要向指定的表中投入几百万条数据。 在数据投入的过程中发现投入的数据不对&#xff0c;需要紧急停止SQL的执行。 二. 操作简介 &#x1f449;需要DBA权限&#x1f448; ⏹…

【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统

文章目录 参考资料云盘资料软硬件环境手机解锁刷机驱动绑定账号和设备解锁手机 Mindows工具箱安装工具箱和修复下载下载安卓和woa资源包第三方Recovery 一键安装Windows准备工作创建分区安装系统 效果展示Windows和Android一键互换Win切换安卓安卓切换Win 删除分区 参考资料 解…

MWORKS 2025a 直播回顾 | 第二期:M语言计算环境重磅更新

MWORKS.Syslab首次推出时已实现基于Julia语言的科学计算环境&#xff0c;尽管如此&#xff0c;仍有大量工程师团队坚持使用M语言相关软件。除了使用习惯和学习语言等问题&#xff0c;更深层的原因在于大量历史代码资产复用的问题。为了解决这一关键问题&#xff0c;同元软控在后…

晨辉面试抽签和评分管理系统之八:随机编排考生的面试批次(以教师资格考试面试为例)

晨辉面试抽签和评分管理系统&#xff08;下载地址:www.chenhuisoft.cn&#xff09;是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

专用小软件,完全免费,非常丝滑

今天给大家介绍一个专门将PDF数电发票合并打印的软件&#xff0c;这个软件可以批量操作&#xff0c;完全免费没有任何的广告。 电子发票专用批量打印工具 免费批量使用 软件无需安装&#xff0c;解压之后双击这个图标就能直接使用了。 点击右上角的加号&#xff0c;选中需要打…

《leetcode-runner》如何手搓一个debug调试器——架构

本文主要聚焦leetcode-runner对于debug功能的整体设计&#xff0c;并讲述设计原因以及存在的难点 设计引入 让我们来思考一下&#xff0c;一个最简单的调试器需要哪些内容 首先&#xff0c;它能够接受用户的输入 其次&#xff0c;它能够读懂用户想让调试器干嘛&#xff0c;…

【0x005B】HCI_Write_Default_Erroneous_Data_Reporting命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式 2.2. Erroneous_Data_Reporting 三、生成事件及参数 3.1. HCI_Command_Complete事件 3.2. 状态码(Status) 四、命令执行流程 4.1. 命令发起阶段(主机端) 4.2. 命…

uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?

前言 在开发微信小程序时&#xff0c;使用 textarea 组件可能会遇到一些棘手的问题。最近我在使用 uniapp 开发微信小程序时&#xff0c;就遇到了两个非常令人头疼的问题&#xff1a; 层级穿透&#xff1a;由于 textarea 是原生组件&#xff0c;任何元素都无法遮盖住它。当其…

Kotlin 快速上手指南:从安装 IntelliJ IDEA 到编写第一个程序

文章目录 什么是kotlinIntelliJ IDEA安装 IntelliJ IDEA创建 Kotlin 项目运行 Kotlin 程序更改进入后默认打开上一次项目的设置打开 IntelliJ IDEA进入设置:重新启动 IntelliJ IDEA:快速学习Kotlin变量声明类型推断条件表达式定义函数单表达式函数when 表达式when 语句的基本…

Docker 部署 Typecho

1. 官网 https://typecho.org/插件 & 主题 https://github.com/typecho-fans/plugins https://typechx.com/ https://typecho.work/2. 通过 compose 文件安装 github官网&#xff1a; https://github.com/typecho/Dockerfile 新建一个目录&#xff0c;存放 typecho 的相…

2025/1/12 复习JS

我乞求你别再虚度光阴 ▶ 空心 --------------------------------------------------------------------------------------------------------------------------------- 摘自哔哩哔哩听课笔记。 01 上篇&#xff1a;核心语法 1.基于页面效果的操作 <!DOCTYPE html>…

【初识扫盲】厚尾分布

厚尾分布&#xff08;Fat-tailed distribution&#xff09;是一种概率分布&#xff0c;其尾部比正态分布更“厚”&#xff0c;即尾部的概率密度更大&#xff0c;极端值出现的概率更高。 一、厚尾分布的特征 尾部概率大 在正态分布中&#xff0c;极端值&#xff08;如距离均值很…