Apache介绍和Apache包安装

Apache介绍和Apache包安装

Apache介绍和安装

1.Apache介绍t1Apache一般指Apache HTTP Server,是Apache软件基金会的一个开源网页服务器软件,以下为你详细介绍:

基本信息

它具有简单、快速、可靠等特点,能运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。

发展历程

1995年,美国国家超级电脑应用中心(NCSA)的HTTPd服务器项目停滞后,开发者们将修补代码汇总,形成了Apache HTTP Server,同年4月正式发布。此后不断更新完善,功能日益强大,逐渐成为互联网上使用最广泛的Web服务器软件。特点

开放源代码:遵循Apache许可证,用户可自由使用、修改和分发,众多开发者参与贡献,不断改进其功能和性能。跨平台性:支持多种操作系统,如Windows、Linux、Unix等,方便不同环境部署。模块化设计:拥有丰富模块,如身份验证、URL重写、缓存等,用户可根据需求灵活加载或卸载,定制服务器功能。稳定性与可靠性:经过长期发展和大量实践检验,能在高负载下稳定运行,确保网站持续提供服务。安全性:提供多种安全机制,如SSL/TLS加密、访问控制、防止DDoS攻击等,保护网站和用户数据安全。应用场景

企业网站:为各类企业搭建官方网站,展示企业信息、产品和服务,处理客户咨询和订单。电子商务平台:支撑在线购物网站,处理大量用户访问、交易数据和支付流程,保障交易安全稳定。内容管理系统(CMS):作为WordPress、Drupal等CMS的服务器平台,发布和管理各种类型的内容。2.Apache安装2.1 主机初始化2.1.1 设置网卡名Rocky Linux 9/10、Almalinux 9/10、CentOS Stream 9/10、AnolisOS 23、OpenCloudOS 9: 创建 systemd 链接文件: 创建 /etc/systemd/network/70-eth0.link 文件。代码语言:javascript复制[root@rocky10 ~]# mkdir -p /etc/systemd/network/

[root@rocky10 ~]# touch /etc/systemd/network/70-eth0.link

[root@rocky10 ~]# ip addr

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host noprefixroute

valid_lft forever preferred_lft forever

2: ens160: mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 00:0c:29:02:55:30 brd ff:ff:ff:ff:ff:ff

altname enp3s0

altname enx000c29025530

inet 172.31.15.1/20 brd 172.31.15.255 scope global dynamic noprefixroute ens160

valid_lft 1776sec preferred_lft 1776sec

inet6 fe80::20c:29ff:fe02:5530/64 scope link noprefixroute

valid_lft forever preferred_lft forever

[root@rocky10 ~]# cat > /etc/systemd/network/70-eth0.link << EOF

[Match]

MACAddress=00:0c:29:f8:60:8f

[Link]

Name=eth0

EOF

# 也可以执行下面命令

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

ETHMAC=`ip addr show ${ETHNANME} | awk -F' ' '/ether/{print $2}'`

mkdir /etc/systemd/network/

touch /etc/systemd/network/70-eth0.link

cat > /etc/systemd/network/70-eth0.link << EOF

[Match]

MACAddress=${ETHMAC}

[Link]

Name=eth0

EOF修改 NetworkManager 配置文件: 如果使用 NetworkManager 管理网络,需要修改 /etc/NetworkManager/system-connections 下的配置文件。代码语言:javascript复制[root@rocky10 ~]# mv /etc/NetworkManager/system-connections/ens160.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection

[root@rocky10 ~]# sed -i.bak 's/'ens160'/eth0/' /etc/NetworkManager/system-connections/eth0.nmconnection

# 也可以执行下面命令

mv /etc/NetworkManager/system-connections/${ETHNAME}.nmconnection /etc/NetworkManager/system-connections/eth0.nmconnection

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/NetworkManager/system-connections/eth0.nmconnectionRocky Linux 8、Almalinux 8、CentOS 7、CentOS Stream 8、openEuler 22.03和24.03 LTS、AnolisOS 8、OpenCloudOS 8、Kylin Server v10/v11、UOS Server v20: 修改 GRUB 配置文件: 打开 /etc/default/grub 文件,添加以下内容到 GRUB_CMDLINE_LINUX 行代码语言:javascript复制net.ifnames=0 biosdevname=0执行以下命令:

代码语言:javascript复制sed -ri.bak '/^GRUB_CMDLINE_LINUX=/s@"$@ net.ifnames=0 biosdevname=0"@' /etc/default/grub然后更新 GRUB 配置:

代码语言:javascript复制grub2-mkconfig -o /boot/grub2/grub.cfg如果是 UEFI 引导系统,更新命令为:

代码语言:javascript复制# Rocky

grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

# Almalinux

grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

# CentOS

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

# openEuler

grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg

# AnolisOS

grub2-mkconfig -o /boot/efi/EFI/anolis/grub.cfg

# OpenCloudOS

grub2-mkconfig -o /boot/efi/EFI/opencloudos/grub.cfg

# Kylin Server

grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

# UOS Server

grub2-mkconfig -o /boot/efi/EFI/uos/grub.cfg

# UEFI 引导系统可以直接执行下面命令:

EFI_DIR=`find /boot/efi/ -name "grub.cfg" | awk -F"/" '{print $5}'`

grub2-mkconfig -o /boot/efi/EFI/${EFI_DIR}/grub.cfg创建 Udev 规则文件: 创建 /etc/udev/rules.d/10-network.rules 文件,并添加以下内容:代码语言:javascript复制SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="<网卡MAC地址>", NAME="eth0"注意:创建Udev这个步骤只在AnolisOS 8上执行。

将 <网卡MAC地址> 替换为实际网卡的 MAC 地址。

代码语言:javascript复制[root@anolisos8 ~]# ip addr

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: ens33: mtu 1500 qdisc fq_codel state UP group default qlen 1000

link/ether 00:0c:29:47:02:3f brd ff:ff:ff:ff:ff:ff

altname enp2s1

inet 172.31.15.25/20 brd 172.31.15.255 scope global dynamic noprefixroute ens33

valid_lft 1785sec preferred_lft 1785sec

inet6 fe80::20c:29ff:fe47:23f/64 scope link noprefixroute

valid_lft forever preferred_lft forever

[root@anolis8 ~]# cat >> /etc/udev/rules.d/10-network.rules << EOF

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:c5:38:3b", NAME="eth0"

EOF

# 也可以执行下面命令

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

ETHMAC=`ip addr show ${ETHNANME} | awk -F' ' '/ether/{print $2}'`

cat >> /etc/udev/rules.d/10-network.rules << EOF

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="${ETHMAC}", NAME="eth0"

EOF修改网卡配置文件: 创建 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,并配置网卡参数,例如:代码语言:javascript复制ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

mv /etc/sysconfig/network-scripts/ifcfg-${ETHNAME} /etc/sysconfig/network-scripts/ifcfg-eth0

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/sysconfig/network-scripts/ifcfg-eth0Ubuntu和Debian:代码语言:javascript复制# Ubuntu和Debian先启用root用户,并设置密码

raymond@ubuntu2404:~$ cat set_root_login.sh

#!/bin/bash

read -p "请输入密码: " PASSWORD

echo ${PASSWORD} |sudo -S sed -ri 's@#(PermitRootLogin )prohibit-password@\1yes@' /etc/ssh/sshd_config

sudo systemctl restart sshd

sudo -S passwd root <<-EOF

${PASSWORD}

${PASSWORD}

EOF

raymond@ubuntu2404:~$ bash set_root_login.sh

请输入密码: 123456

[sudo] password for raymond: New password: Retype new password: passwd: password updated successfully修改 GRUB 配置文件: 打开 /etc/default/grub 文件,添加以下内容到 GRUB_CMDLINE_LINUX 行代码语言:javascript复制net.ifnames=0 biosdevname=0执行以下命令:

代码语言:javascript复制sed -ri.bak '/^GRUB_CMDLINE_LINUX=/s@"$@net.ifnames=0 biosdevname=0"@' /etc/default/grub然后更新 GRUB 配置:

代码语言:javascript复制grub-mkconfig -o /boot/grub/grub.cfg如果是 UEFI 引导系统,更新命令为:

代码语言:javascript复制# Ubuntu

grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

# Debian

grub-mkconfig -o /boot/efi/EFI/debian/grub.cfg

# UEFI 引导系统可以直接执行下面命令:

EFI_DIR=`find /boot/efi/ -name "grub.cfg" | awk -F"/" '{print $5}'`

grub-mkconfig -o /boot/efi/EFI/${EFI_DIR}/grub.cfg修改网卡配置文件:代码语言:javascript复制# Ubuntu Server 24.04 LTS

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/50-cloud-init.yaml

# Ubuntu Server 22.04 LTS

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

touch /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

cat > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg <<-EOF

network: {config: disabled}

EOF

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/50-cloud-init.yaml

# Ubuntu Server 20.04 LTS

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/00-installer-config.yaml

# Ubuntu Server 18.04 LTS

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/netplan/01-netcfg.yaml

# Debian

ETHNAME=`ip addr | awk -F"[ :]" '/^2/{print $3}'`

sed -i.bak 's/'${ETHNAME}'/eth0/' /etc/network/interfaces重启系统:代码语言:javascript复制reboot重启后,网卡名称将变为 eth0。

2.1.2 设置ip地址代码语言:javascript复制1ETHNAME=`ip addr |awk -F"[ :]"'/^2/{print $3}'`

2

3# IP变量是ip地址,PREFIX变量是子网掩码位数;GATEWAY变量是网关地址;PRIMARY_DNS变量是主DNS,BACKUP_DNS变量是备用DNS,根据自己的需求修改。

4IP=172.31.0.10

5PREFIX=20

6GATEWAY=172.31.0.2

7PRIMARY_DNS=223.5.5.5

8BACKUP_DNS=180.76.76.76Rocky Linux 9/10、Almalinux 9/10、CentOS Stream 9/10、AnolisOS 23、OpenCloudOS 9:

代码语言:javascript复制1cat> /etc/NetworkManager/system-connections/${ETHNAME}.nmconnection <<-EOF

2[connection]

3id=${ETHNAME}

4type=ethernet

5interface-name=${ETHNAME}

6

7[ipv4]

8address1=${IP}/${PREFIX},${GATEWAY}

9dns=${PRIMARY_DNS};${BACKUP_DNS};

10method=manual

11EOFRocky Linux 8、Almalinux 8、CentOS 7、CentOS Stream 8、openEuler 22.03和24.03 LTS、AnolisOS 8、OpenCloudOS 8、Kylin Server v10/v11、UOS Server v20:

代码语言:javascript复制1cat> /etc/sysconfig/network-scripts/ifcfg-${ETHNAME}<<-EOF

2NAME=${ETHNAME}

3DEVICE=${ETHNAME}

4ONBOOT=yes

5BOOTPROTO=none

6TYPE=Ethernet

7IPADDR=${IP}

8PREFIX=${PREFIX}

9GATEWAY=${GATEWAY}

10DNS1=${PRIMARY_DNS}

11DNS2=${BACKUP_DNS}

12EOFUbuntu:

代码语言:javascript复制1# Ubuntu Server 18.04 LTS

2cat> /etc/netplan/01-netcfg.yaml <<-EOF

3network:

4 version: 2

5 renderer: networkd

6 ethernets:

7${ETHNAME}:

8 dhcp4: no

9 dhcp6: no

10 addresses: [${IP}/${PREFIX}]

11 gateway4: ${GATEWAY}

12 nameservers:

13 addresses: [${PRIMARY_DNS}, ${BACKUP_DNS}]

14

15# Ubuntu Server 20.04 LTS

16cat> /etc/netplan/00-installer-config.yaml <<-EOF

17network:

18 version: 2

19 renderer: networkd

20 ethernets:

21${ETHNAME}:

22 dhcp4: no

23 dhcp6: no

24 addresses: [${IP}/${PREFIX}]

25 gateway4: ${GATEWAY}

26 nameservers:

27 addresses: [${PRIMARY_DNS}, ${BACKUP_DNS}]

28EOF

29

30# Ubuntu Server 22.04/24.04 LTS

31cat> /etc/netplan/50-cloud-init.yaml <<-EOF

32network:

33 version: 2

34 renderer: networkd

35 ethernets:

36${ETHNAME}:

37 dhcp4: no

38 dhcp6: no

39 addresses: [${IP}/${PREFIX}]

40 routes:

41 - to: default

42 via: ${GATEWAY}

43 nameservers:

44 addresses: [${PRIMARY_DNS}, ${BACKUP_DNS}]

45EOFDebian:

代码语言:javascript复制1sed-ri-e"s/allow-hotplug/auto/g"-e"s/dhcp/static/g" /etc/network/interfaces

2sed-i'/static/a\address '${IP}'/'${PREFIX}'\ngateway '${GATEWAY}'\ndns-nameservers '${PRIMARY_DNS}' '${BACKUP_DNS}'\n' /etc/network/interfacesopenSUSE:

代码语言:javascript复制1cat> /etc/sysconfig/network/ifcfg-${ETHNAME}<<-EOF

2STARTMODE='auto'

3BOOTPROTO='static'

4IPADDR='${IP}/${PREFIX}'

5EOF

6touch /etc/sysconfig/network/routes

7cat> /etc/sysconfig/network/routes <<-EOF

8default ${GATEWAY} - -

9EOF

10sed-ri's/(NETCONFIG_DNS_STATIC_SERVERS=).*/\1"'${PRIMARY_DNS}' '${BACKUP_DNS}'"/g' /etc/sysconfig/network/config2.1.3 配置镜像源Rocky:

代码语言:javascript复制1# 阿里云镜像站Rocky系统镜像源地址是:mirrors.aliyun.com/rockylinux,火山引擎镜像站Rocky系统镜像源地址是:mirrors.volces.com/rockylinux,后面地址是rockylinux,使用下面命令执行

2MIRROR=mirrors.aliyun.com

3sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://'${MIRROR}'/rockylinux|g' /etc/yum.repos.d/[Rr]ocky*.repo

4

5# 搜狐镜像站Rocky系统镜像源地址是:mirrors.sohu.com/Rocky,后面地址是Rocky,使用下面命令执行

6MIRROR=mirrors.sohu.com

7sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^#baseurl=http://'${OLD_MIRROR}'/$contentdir|baseurl=https://'${MIRROR}'/Rocky|g' /etc/yum.repos.d/[Rr]ocky*.repo

8

9# 其余镜像站Rocky系统镜像源地址后面地址都是rocky,使用下面命令执行

10MIRROR=mirrors.tencent.com

11sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://'${MIRROR}'/rocky|g' /etc/yum.repos.d/[Rr]ocky*.repo

12

13dnf clean all && dnf makecacheAlmalinux:

代码语言:javascript复制1MIRROR=mirrors.tencent.com

2OLD_MIRROR=$(sed-rn'/^.*baseurl=/s@.*=http.*://(.*)/(.*)/\$releasever/.*/$@\1@p' /etc/yum.repos.d/almalinux*.repo |head-1)

3sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^# baseurl=https://'${OLD_MIRROR}'|baseurl=https://'${MIRROR}'|g' /etc/yum.repos.d/almalinux*.repoCentOS Stream 9和10:

代码语言:javascript复制1cat update_mirror.pl

2#!/usr/bin/perl

3

4use strict;

5use warnings;

6use autodie;

7

8# 要修改镜像源,请去修改url变量!

9my $url='mirrors.aliyun.com';

10my $mirrors="https://$url/centos-stream";

11

12if(@ARGV <1){

13 die "Usage: $0...\n";

14}

15

16while(my $filename=shift @ARGV){

17 my $backup_filename=$filename.'.bak';

18rename$filename, $backup_filename;

19

20open my $input, "<", $backup_filename;

21open my $output, ">", $filename;

22

23while(<$input>){

24 s/^metalink/# metalink/;

25

26if(m/^name/){

27 my (undef, $repo, $arch)=split /-/;

28$repo=~ s/^\s+|\s+$//g;

29($arch= defined $arch ? lc($arch):'')=~ s/^\s+|\s+$//g;

30

31if($repo=~ /^Extras/){

32$_ .="baseurl=${mirrors}/SIGs/\$releasever-stream/extras".($arch eq 'source' ? "/${arch}/":"/\$basearch/")."extras-common\n";

33}else{

34$_ .="baseurl=${mirrors}/\$releasever-stream/$repo".($arch eq 'source' ? "/":"/\$basearch/").($arch ne '' ? "${arch}/tree/":"os")."\n";

35}

36}

37

38 print $output$_;

39}

40}

41

42rpm-q perl &> /dev/null ||{echo-e"\\033[01;31m "安装perl工具,请稍等..."\033[0m";yum -yinstall perl ;}

43

44perl ./update_mirror.pl /etc/yum.repos.d/centos*.repo

45

46dnf clean all && dnf makecacheCentOS Stream 8:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://'${MIRROR}'/centos-vault|g' /etc/yum.repos.d/CentOS-*.repo

3

4dnf clean all && dnf makecacheCentOS 7:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2OS_RELEASE_FULL_VERSION=`cat /etc/centos-release |sed-rn's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`

3sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://'${MIRROR}'/centos-vault|g'-e"s/\$releasever/${OS_RELEASE_FULL_VERSION}/g" /etc/yum.repos.d/CentOS-*.repo

4

5yum clean all && yum makecacheUbuntu Server 24.04 LTS:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2sed-ri"s@^(URIs: )(http.*://)(.*)(/ubuntu).?@\1https://${MIRROR}\4@g" /etc/apt/sources.list.d/ubuntu.sources

3

4apt updateUbuntu Server 18.04/20.04/22.04 LTS:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2OLD_MIRROR=`sed-rn"s@^deb http(.*)://(.*)/ubuntu/? $(lsb_release -cs) main.*@\2@p" /etc/apt/sources.list`

3SECURITY_MIRROR=`sed-rn"s@^deb http(.*)://(.*)/ubuntu.* $(lsb_release -cs)-security main.*@\2@p" /etc/apt/sources.list`

4sed-i.bak-e's@http.*://'${OLD_MIRROR}'@https://'${MIRROR}'@g'-e's@http.*://'${SECURITY_MIRROR}'@https://'${MIRROR}'@g' /etc/apt/sources.list

5

6apt updateDebian:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2OLD_MIRROR=`sed-rn"s@^deb http(.*)://(.*)/debian/? $(lsb_release -cs) main.*@\2@p" /etc/apt/sources.list`

3SECURITY_MIRROR=`sed-rn"s@^deb http(.*)://(.*)/debian-security $(lsb_release -cs)-security main.*@\2@p" /etc/apt/sources.list`

4sed-ri.bak-e's/'${OLD_MIRROR}'/'${MIRROR}'/g'-e's/'${SECURITY_MIRROR}'/'${MIRROR}'/g'-e's/^(deb cdrom.*)/#\1/g' /etc/apt/sources.list

5

6apt updateopenEuler:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2OLD_MIRROR=$(awk -F'/''/^baseurl=/{print $3}' /etc/yum.repos.d/openEuler.repo |head-1)

3sed-i.bak-e's|^metalink=|#metalink=|g'-e's|http.*://'${OLD_MIRROR}'|https://'${MIRROR}'/openeuler|g' /etc/yum.repos.d/openEuler.repo

4

5dnf clean all && dnf makecacheAnolisOS:

代码语言:javascript复制1OLD_MIRROR=$(sed-rn'/^.*baseurl=/s@.*=http.*://(.*)/(.*)/\$releasever/.*/$@\1@p' /etc/yum.repos.d/AnolisOS*.repo |head-1)

2

3# 中国科学院软件研究所镜像站AnolisOS系统镜像源地址是:mirror.iscas.ac.cn/openanolis,后面地址是openanolis,使用下面命令执行

4MIRROR=mirror.iscas.ac.cn

5sed-i.bak-e's|http.*://'${OLD_MIRROR}'/anolis|https://'${MIRROR}'/openanolis|g' /etc/yum.repos.d/AnolisOS*.repo

6

7# 其余镜像站AnolisOS系统镜像源地址后面地址都是anolis,使用下面命令执行

8MIRROR=mirrors.aliyun.com

9sed-i.bak-e's|http.*://'${OLD_MIRROR}'/anolis|https://'${MIRROR}'/anolis|g' /etc/yum.repos.d/AnolisOS*.repo

10

11dnf clean all && dnf makecacheOpenCloudOS:

代码语言:javascript复制1MIRROR=mirrors.tencent.com

2OLD_MIRROR=$(awk -F'/''/^baseurl=/{print $3}' /etc/yum.repos.d/OpenCloudOS*.repo |head-1)

3sed-i.bak-e's|http.*://'${OLD_MIRROR}'|https://'${MIRROR}'|g' /etc/yum.repos.d/OpenCloudOS*.repo

4

5dnf clean all && dnf makecacheopenSUSE:

代码语言:javascript复制1MIRROR=mirrors.aliyun.com

2OLD_MIRROR=$(awk -F'/''/^baseurl=/{print $3}' /etc/zypp/repos.d/repo-*.repo |head-1)

3sed-i.bak's|http.*://'${OLD_MIRROR}'|https://'${MIRROR}'/opensuse|g' /etc/zypp/repos.d/repo-*.repo

4

5zypper clean &&zypper refresh2.1.4 关闭防火墙代码语言:javascript复制1# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、openSUSE、Kylin Server、UOS Server

2systemctl disable --now firewalld

3

4# CentOS 7还要执行下面命令

5systemctl disable --now NetworkManager

6

7# Ubuntu

8systemctl disable --now ufw

9

10# Debian默认没有安装防火墙,不用设置2.1.5 禁用SELinux代码语言:javascript复制1# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、UOS Server

2setenforce 0

3sed-i's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

4

5# Ubuntu、Debian和openSUSE默认没有安装SELinux,不用设置2.1.6 禁用AppArmor代码语言:javascript复制1# openSUSE发行版默认不启用SELinux,而是使用AppArmor来提供强制访问控制(MAC)功能,需要禁用AppArmor。

2systemctl disable --now apparmor2.1.7 设置时区代码语言:javascript复制1timedatectl set-timezone Asia/Shanghai

2echo'Asia/Shanghai'>/etc/timezone

3

4# Ubuntu还要设置下面内容

5cat>> /etc/default/locale <<-EOF

6LC_TIME=en_DK.UTF-8

7EOF2.2 包安装2.2.1 Yum资源库安装Httpd在Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、UOS Server上安装httpd:

代码语言:javascript复制1[root@rocky10 ~]# yum list httpd --showduplicates

2Last metadata expiration check: 0:00:56 ago on Tue 23 Sep 2025 04:03:20 PM CST.

3Available Packages

4httpd.x86_64 2.4.63-1.el10 appstream

5httpd.x86_64 2.4.63-1.el10_0.2 appstream

6

7[root@rocky10 ~]# yum install -y httpd

8

9[root@rocky10 ~]# systemctl daemon-reload && systemctl enable --now httpd

10

11[root@rocky10 ~]# ss -ntl |grep 80

12LISTEN 0511 *:80 *:*

13

14[root@rocky10 ~]# httpd -v

15Server version: Apache/2.4.63 (Rocky Linux)

16Server built: Jul 152025 00:00:002.2.2 Apt资源库安装Apache2在Ubuntu和Debian上安装apache2:

代码语言:javascript复制1root@ubuntu2404:~# apt-cache madison apache2

2 apache2 |2.4.58-1ubuntu8.8 | https://mirrors.aliyun.com/ubuntu noble-updates/main amd64 Packages

3 apache2 |2.4.58-1ubuntu8.8 | https://mirrors.aliyun.com/ubuntu noble-security/main amd64 Packages

4 apache2 |2.4.58-1ubuntu8 | https://mirrors.aliyun.com/ubuntu noble/main amd64 Packages

5

6root@ubuntu2404:~# apt install -y apache2

7

8root@ubuntu2404:~# systemctl daemon-reload && systemctl enable --now apache2

9

10root@ubuntu2404:~# ss -ntl |grep 80

11LISTEN 0511 *:80 *:*

12

13root@ubuntu2404:~# apache2 -v

14Server version: Apache/2.4.58 (Ubuntu)

15Server built: 2025-08-11T11:10:092.2.3 SUSE资源库安装Apache2在openSUSE上安装apache2:

代码语言:javascript复制1opensuse15:~ # zypper search "apache2"

2Loading repository data...

3Reading installed packages...

4

5S | Name | Summary | Type

6--+-------------------------------------+------------------------------------------------------------+-----------

7| apache2 | The Apache HTTPD Server | package

8| apache2 | The Apache HTTPD Server | srcpackage

9| apache2-devel | The Apache HTTPD Server | package

10| apache2-devel | The Apache HTTPD Server | srcpackage

11| apache2-event | The Apache HTTPD Server | package

12| apache2-event | The Apache HTTPD Server | srcpackage

13| apache2-icons-oxygen | Oxygen icons for Apache 2| package

14| apache2-manual | The Apache HTTPD Server | package

15| apache2-manual | The Apache HTTPD Server | srcpackage

16| apache2-mod_apparmor | AppArmor module for apache2 | package

17| apache2-mod_auth_gssapi | GSSAPI Module for Apache | package

18| apache2-mod_auth_kerb | Kerberos Module for Apache | package

19| apache2-mod_auth_mellon | A SAML 2.0 authentication module for the Apache Server | package

20| apache2-mod_auth_mellon-diagnostics | Build of mod_auth_mellon with diagnostic logging | package

21| apache2-mod_auth_mellon-doc | Documentation for mod_auth_mellon module | package

22| apache2-mod_auth_openidc | Apache2.x module for an OpenID Connect enabled Identity ->| package

23| apache2-mod_auth_openidc | Apache2.x module for an OpenID Connect enabled Identity ->| srcpackage

24| apache2-mod_authn_otp | Apache module for one-time password authentication | package

25| apache2-mod_dnssd | Apache2 module for Zeroconf support via DNS-SD | package

26| apache2-mod_encoding | Non-ASCII filename interoperability module for the Apach->| package

27| apache2-mod_evasive | Denial of Service evasion module for Apache | package

28| apache2-mod_fcgid | Alternative FastCGI module for Apache2 | package

29| apache2-mod_jk | Connectors between Apache and Tomcat Servlet Container | package

30| apache2-mod_jk | Connectors between Apache and Tomcat Servlet Container | srcpackage

31| apache2-mod_maxminddb | MaxMind DB Apache Module | package

32| apache2-mod_mono | Run ASP.NET Pages on Unix with Apache and Mono | package

33| apache2-mod_nss | SSL/TLS module for the Apache HTTP server | package

34| apache2-mod_perl | Embedded Perl for Apache | package

35| apache2-mod_perl-devel | Embedded Perl for Apache - Development package | package

36| apache2-mod_php7 | PHP7 module for the Apache 2.x webserver | package

37| apache2-mod_php7 | PHP7 module for the Apache 2.x webserver | srcpackage

38| apache2-mod_php8 | PHP module for the Apache 2.x webserver | package

39| apache2-mod_php8 | PHP module for the Apache 2.x webserver | srcpackage

40| apache2-mod_security2 | Web Application Firewall for apache httpd | package

41| apache2-mod_security2 | Web Application Firewall for apache httpd | srcpackage

42| apache2-mod_uwsgi | uWSGI Module for Apache 2.0| package

43| apache2-mod_wsgi | A WSGI interface for Python3 web applications in Apache | package

44| apache2-mod_wsgi-python3 | A WSGI interface for Python3 web applications in Apache | package

45| apache2-prefork | The Apache HTTPD Server | package

46| apache2-prefork | The Apache HTTPD Server | srcpackage

47| apache2-utils | The Apache HTTPD Server | package

48| apache2-utils | The Apache HTTPD Server | srcpackage

49| apache2-worker | The Apache HTTPD Server | package

50| apache2-worker | The Apache HTTPD Server | srcpackage

51| dehydrated-apache2 | Apache Integration for dehydrated | package

52| owasp-modsecurity-crs-apache2 | OWASP ModSecurity Common Rule Set (CRS)| package

53| perl-Apache2-AuthCookieDBI | An AuthCookie module backed by a DBI database | package

54| rubygem-passenger-apache2 | Passenger apache module | package

55

56opensuse15:~ # zypper info apache2

57Loading repository data...

58Reading installed packages...

59

60

61Information for package apache2:

62--------------------------------

63Repository : Update repository with updates from SUSE Linux Enterprise 15

64Name : apache2

65Version :2.4.58-150600.5.35.1

66Arch : x86_64

67Vendor : SUSE LLC

68Installed Size :1.4 MiB

69Installed : No

70Status : not installed

71Source package : apache2-2.4.58-150600.5.35.1.src

72Upstream URL : https://httpd.apache.org/

73Summary : The Apache HTTPD Server

74Description :

75 The Apache HTTP Server Project is an effort to develop and

76 maintain an open-source HTTP server for modern operating

77 systems including UNIX and Windows. The goal of this project

78 is to provide a secure, efficient and extensible server that

79 provides HTTP services insync with the current HTTP standards.

80

81opensuse15:~ # zypper install -y apache2

82

83opensuse15:~ # systemctl daemon-reload && systemctl enable --now apache2

84

85opensuse15:~ # ss -ntl |grep 80

86LISTEN 04096 *:80 *:*

87

88opensuse15:~ # httpd -v

89Server version: Apache/2.4.58 (Linux/SUSE)

90Server built: 2025-07-21 02:11:38.000000000 +0000

相关推荐