共计 5757 个字符,预计需要花费 15 分钟才能阅读完成。
什么是 Apache Web Server?
Apache 或 Apache HTTP 服务器是一个免费的开源 Web 服务器,由 Apache 软件基金 (Apache Software Foundation) 开发和维护。它的受欢迎程度可以通过以下事实来判断:全球约有 46%的网站由 Apache 提供支持。Apache 允许网站开发人员通过网络提供他们的内容。
本教程是关于在 Ubuntu 系统上安装和配置 Apache2 的。本文中提到的命令和过程已在 Ubuntu 18.04 LTS 系统上运行。因为我们在本文中使用了 Ubuntu 命令行,终端; 您可以通过系统 Dash 或 Ctrl + Alt + T 快捷方式打开它。
在 Ubuntu Linux 上安装 Apache 2
请按照以下步骤通过 Ubuntu 官方存储库安装 Apache2 软件。
第 1 步:更新系统存储库
您可以通过首先更新 Ubuntu 存储库的本地包索引来下载最新版本的软件。打开终端并输入以下命令以执行此操作:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo apt update
步骤 2:使用 apt 命令安装 Apache 2
接下来,输入以下命令作为 sudo,以便安装 Apache2 及其所需的依赖项:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo apt install apache2
系统可能会提示您使用 y / n 选项继续安装。请输入 Y,然后安装程序将开始。
第 3 步:验证 Apache 安装
安装完成后,您可以检查版本号,从而通过输入以下命令验证系统上是否确实安装了 Apache2:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ apache2 -version
输出如下:
Server version: Apache/2.4.29 (Ubuntu)
Server built: 2018-10-10T18:59:25
配置 UFW 防火墙
为了配置 Apache,我们首先需要允许外部访问我们系统的某些 Web 端口,并在您的 UFW 防火墙上允许 Apache。
第 1 步:列出 UFW 应用程序配置文件
为了配置防火墙,让我们首先列出我们启用 Apache 访问所需的应用程序配置文件。使用以下命令列出此类可用应用程序:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo ufw app list
输出如下:
可用应用程序:
Apache
Apache Full
Apache Secure
CUPS
OpenSSH
Samba
在上面的输出中,您可以看到三个 Apache 配置文件都提供不同级别的安全性; Apache 是一个提供最大限制但端口 80 仍处于打开状态的 Apache。
步骤 2:在 UFW 上允许 Apache 并验证其状态
在 UFW 上允许 Apache 将为网络流量打开端口 80,同时为服务器提供最大的安全性。请通过以下命令配置 UFW 以允许 Apache:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo ufw allow ‘Apache’
防火墙规则已更新
规则已更新(v6)
UFW 的状态现在将在防火墙上显示启用 Apache。
$ sudo ufw status
配置 Apache Web 服务器
步骤 1:验证 Apache 服务是否正在运行
第一步是通过以下命令验证 Apache2 服务是否在您的系统上启动并运行:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo systemctl status apache2
● apache2.service – The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset:
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sun 2018-11-25 19:26:03 CST; 10min ago
Main PID: 11590 (apache2)
Tasks: 6 (limit: 3500)
CGroup: /system.slice/apache2.service
├─11590 /usr/sbin/apache2 -k start
├─11610 /usr/sbin/apache2 -k start
├─11611 /usr/sbin/apache2 -k start
├─11612 /usr/sbin/apache2 -k start
├─11616 /usr/sbin/apache2 -k start
└─11618 /usr/sbin/apache2 -k start
11 月 25 19:26:03 linuxidc systemd[1]: Starting The Apache HTTP Server…
11 月 25 19:26:03 linuxidc apachectl[11574]: AH00558: apache2: Could not reliably
11 月 25 19:26:03 linuxidc systemd[1]: Started The Apache HTTP Server.
状态:active(running)验证 apache2 服务是否正在运行。
第 2 步:验证 Apache 是否正常运行并侦听您的 IP 地址
您还可以通过从 Apache 服务器请求页面来验证 Apache 是否正在运行。为此,您可以使用服务器的 IP 来访问 Apache 登录页面。
使用以下命令了解服务器的 IP:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ hostname -I
192.168.182.188 172.16.43.1 172.16.238.1 172.17.0.1
然后在 Web 浏览器中逐个尝试 IP,如下所示:
http://server_IP
就我而言,http://192.168.182.188 和 http://172.16.43.1。这样做将显示 Ubuntu 的以下 Apache 网页,验证 Apache 服务器是否正常工作。
在 Apache 中设置虚拟主机
虚拟主机类似于 Nginx 中的服务器块。它用于管理来自一个服务器的多个域的配置。我们将提供一个如何通过 Apache 服务器设置虚拟主机的示例。我们将使用 Apache for Ubuntu 18 中默认启用的服务器块来建立一个名为 linuxidc.com 的网站。
第 1 步:设置域名
默认情况下启用的服务器块能够提供来自 /var/www/html 的文档。但是,我们将在 /var/www/ 创建一个目录,保留默认目录。
通过以下命令创建此目录,将 linuxidc.com 替换为您各自的域名。
sudo mkdir -p /var/www/linuxidc.com/html
然后通过以下命令分配目录的所有权:
sudo chown -R $USER:$USER /var/www/linuxidc.com/html
sudo chmod -R 755 /var/www/linuxidc.com
现在让我们创建一个索引页面,如果 Apache 运行我们的域名,我们以后可以访问它们进行测试。通过 Nano 编辑器或任何您喜欢的文本编辑器创建 HTML 文件。
nano /var/www/linuxidc.com/html/index.html
为索引页输入以下 HTML:
<html>
<head>
<title> 欢迎来到 Linux 公社页面 www.linuxidc.com</title>
</head>
<body>
<h1> 你真是棒!您的 linuxidc.com 服务器块已启动!</h1>
</body>
</html>
我们使用 nano 编辑器来创建 HTML 文件。
您可以使用 Ctrl + X 将文件保存为 nano,然后输入 Y 并按 Enter 键。
Apache 需要一个虚拟主机文件来提供服务器的内容。已经创建了用于此目的的默认配置文件,但我们将为自定义配置创建一个新配置文件。
sudo nano /etc/apache2/sites-available/linuxidc.com.conf
输入域名的以下自定义配置详细信息:
<VirtualHost *:80>
ServerAdmin admin@linuxidc.com
ServerName linuxidc.com
ServerAlias www.linuxidc.com
DocumentRoot /var/www/linuxidc.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我们正在使用 nano 编辑器来创建此.conf 文件。
您可以使用 Ctrl + X 将文件保存为 nano,然后输入 Y 并按 Enter 键。
步骤 2:启用域配置文件
让我们启用使用 a2ensite 工具创建的配置文件:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo a2ensite linuxidc.com.conf
Enabling site linuxidc.com.
To activate the new configuration, you need to run:
systemctl reload apache2
输出将建议激活新配置,但我们可以在运行以下禁用原始配置文件的命令后集体执行此操作:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo a2dissite 000-default.conf
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
现在重启 Apache 服务:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo systemctl restart apache2
第 3 步:测试错误
最后,让我们通过以下命令测试是否存在任何配置错误:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo apache2ctl configtest
如果您没有收到任何错误,您将获得以下输出:
Syntax OK
但是,Ubuntu 18.04 中常见以下错误
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK
解决错误:
输入以下命令以解决上述错误:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ echo “ServerName linuxidc.com” | sudo tee /etc/apache2/conf-available/servername.conf
然后:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo a2enconf servername
Enabling conf servername.
To activate the new configuration, you need to run:
systemctl reload apache2
现在,当您再次检查错误时,您将看到通过以下输出解决了此错误:
linuxidc@linuxidc:~/ 桌面 /linuxidc.com$ sudo apache2ctl configtest
Syntax OK
第 4 步:测试 Apache 是否为您的域名提供服务
Apache 服务器现在配置为提供您的域名。这可以通过在系统上运行的任何 Web 浏览器中输入您的服务器名称来验证:
http://www.linuxidc.com
索引页面应显示如下,表示 Apache 现在已准备好为您的服务器块提供服务!
通过域名访问您的网站
中文乱码:
Apache 2 网页中文乱码的解决方法:
linuxidc@linuxidc:~$ sudo nano /etc/apache2/conf-available/charset.conf
修改 charset.conf 的 AddDefaultCharset UTF-8,把 AddDefaultCharset UTF- 8 前面的 #去掉即可。
如下图:
然后重启 apache2
linuxidc@linuxidc:~$ sudo systemctl restart apache2
再次打开,OK,中文网页乱码解决了。
一些常见的 Apache 管理命令
设置 Web 服务器后,您可能必须在 Apache 上执行一些基本的管理操作。以下是您可以在终端应用程序中输入的用于这些操作的命令。
sudo systemctl start apache2 // 将此命令用作 sudo 以启动 Apache 服务器。
sudo systemctl stop apache2 // 将此命令用作 sudo,以便在 Apache 服务器处于启动模式时停止它。
sudo systemctl restart apache2 // 将此命令用作 sudo 以便停止然后再次启动 Apache 服务。
sudo systemctl reload apache2 // 将此命令用作 sudo,以便在不重新启动连接的情况下应用配置更改。
sudo systemctl 启用 apache2 // 将此命令用作 sudo,以便在每次启动系统时启用 Apache。
sudo systemctl disable apache2 // 将 Apache 设置为每次启动系统时启动
总结
通过本文,您学习了如何在 Ubuntu 系统上安装和配置 Apache Web 服务器。这包括对您的 UFW 防火墙进行一些更改,然后为您的 IP 地址配置 Web 服务器。我们还建议您通过 Apache 设置虚拟主机; 这将为您提供如何使用 Apache 在 Internet 上托管文件的基础。基本的 Apache 管理命令还可以帮助您作为 Web 管理员以最佳方式管理 Web 服务器。
: