如何在Ubuntu 20.04 LTS上安装Apache
如何在Ubuntu 20.04 LTS Linux服务器上安装Apache?
Apache(也称为HTTPD)Web服务器是用于提供动态和静态Web页面的最受欢迎的Web服务器之一。
它是根据Apache License 2.0发布的免费开源软件。
让我们看看如何在Ubuntu 20.04 LTS Linux服务器上安装Apache。
如何在Ubuntu 20.04 LTS上安装Apache
确保您的系统是最新的并且已修补。
为此,请执行以下apt命令:
sudo apt update sudo apt upgrade
步骤1安装Apache 2服务器
现在,该系统已更新了最新补丁程序,现在该安装Apache 2软件了。
换句话说,执行以下命令:
sudo apt install apache2
步骤2确保Apache服务在启动时已启动
我们将如下使用systemctl命令来启用apache2.service:
sudo systemctl is-enabled apache2.service
如果未启用,请启用它,然后运行:
sudo systemctl enable apache2.service
在Ubuntu云服务器上管理Apache 2服务
要启动,停止,重新启动,然后再次使用以下命令查找服务状态。
启动apache2服务器
sudo systemctl start apache2.service
停止apache2服务器
sudo systemctl stop apache2.service
重新启动apache2服务器
sudo systemctl restart apache2.service
优雅地重新加载apache2服务器
sudo systemctl reload apache2.service
查找apache2服务器的状态
sudo systemctl status apache2.service
* apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-05 19:49:41 UTC; 7min ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 1766 (apache2) Tasks: 54 (limit: 4915) Memory: 6.5M CGroup: /system.slice/apache2.service ??1766 /usr/sbin/apache2 -k start ??1767 /usr/sbin/apache2 -k start ??1768 /usr/sbin/apache2 -k start May 05 19:49:41 db-host systemd[1]: Starting The Apache HTTP Server... May 05 19:49:41 db-host apachectl[1765]: 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 May 05 19:49:41 db-host systemd[1]: Started The Apache HTTP Server.
步骤3使用UFW防火墙打开Apache端口80和443
执行以下ufw命令以为所有人提供TCP端口80和443
sudo ufw allow 80/tcp comment 'accept Apache' sudo ufw allow 443/tcp comment 'accept HTTPS connections'
验证一下:
sudo ufw status
输出示例:
Status: active To Action From -- ------ --- 10.105.28.158 22/tcp ALLOW 192.168.1.0/24 80/tcp ALLOW Anywhere # accept Apache 443/tcp ALLOW Anywhere # accept HTTPS connections 80/tcp (v6) ALLOW Anywhere (v6) # accept Apache 443/tcp (v6) ALLOW Anywhere (v6) # accept HTTPS connections
步骤4找到您的Ubuntu 20.04 LTS服务器IP地址
运行以下任一命令:
hostname -I ip a ip a s eth0
我的IP地址:
10.105.28.158
您还可以按照以下方式使用dig命令/主机命令从CLI查找公共IPv4/IPv6地址:
dig +short myip.opendns.com @resolver1.opendns.com
步骤5在Ubuntu上测试Apache 2安装
在此阶段,您可以使用curl命令,如下所示:
curl -I http://10.105.28.158
输出示例:
HTTP/1.1 200 OK Date: Tue, 05 May 2020 20:08:32 GMT Server: Apache/2.4.41 (Ubuntu) Last-Modified: Tue, 05 May 2020 19:49:22 GMT ETag: "2aa6-5a4ebf1b4b8bf" Accept-Ranges: bytes Content-Length: 10918 Vary: Accept-Encoding Content-Type: text/html
另一种选择是启动网络浏览器(例如Chrome或Firefox),然后按如下所示执行URL:
http://your-server-ip http://10.105.28.158
基本配置
编辑/etc/apache2/apache2.conf文件,运行:
sudo nano /etc/apache2/apache2.conf
至少将ServerName设置为127.0.0.1或实际名称,例如your-dot-com或服务器IP地址:
ServerName 10.105.28.9
保存并关闭文件。
接下来,编辑/etc/apache2/ports.conf文件,其中包括要在Ubuntu上监听的端口列表:
sudo nano /etc/apache2/ports.conf
默认情况下,Ubuntu Linux上的Apache版本2将侦听TCP端口80(HTTP)和443(HTTPS)。
无需更改它们。
但是,如果您在Linux容器中运行许多站点,则我们将端口更改如下:
######################################################################################## ## Typically you don't have to change the defaults. These are for advance usage/users ## ######################################################################################## # Change HTTP port 80 to 86 Listen 86 # Change HTTPS port 443 to 449 <IfModule ssl_module> Listen 449 </IfModule> <IfModule mod_gnutls.c> Listen 449 </IfModule>
您必须更新虚拟主机/域配置以匹配ports.conf中列出的端口号。
步骤6配置Apache 2虚拟主机
为您的域创建一个配置文件,如下所示:
sudo nano /etc/apache2/sites-available/my-domain-name.conf
追加以下配置:
# Replace my-domain-name-here with actual domain name such as theitroad.local # <VirtualHost *:80> ServerAdmin webmaster@my-domain-name-here ServerName my-domain-name-here ServerAlias www.my-domain-name-here DocumentRoot /home/my-domain-name-here/html DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/my-domain-name-here-error.log CustomLog ${APACHE_LOG_DIR}/my-domain-name-here-access.log combined </VirtualHost> <Directory /home/my-domain-name-here/html> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
为网站创建一个新的Ubuntu用户
输入以下useradd命令
sudo useradd -d /home/my-domain-name-here -m -k /dev/null -s /usr/sbin/nologin usernamehere
其中:
-d/home/my-domain-name-here
:设置新帐户的主目录以提供文件。-m
:确保我们创建由-d选项设置的用户主目录。-k/dev/null
:避免为Apache虚拟域DocumentRoot创建点文件,该文件可以通过使用/dev/null作为备用框架目录来公开敏感信息。-s/usr/sbin/nologin
:将新帐户的登录shell设置为/usr/sbin/nologin,以使Web服务器用户无法使用ssh或任何其他方法登录到我们的系统。同样,这是一项安全功能。usernamehere
:将为我们的虚拟域存储文件的用户名
锁定Linux用户帐户,执行:
sudo passwd -l usernamehere
使用mkdir命令创建html文件夹:
sudo mkdir -pv /home/my-domain-name-here/html
创建一个示例html页面,如下所示:
sudo nano /home/my-domain-name-here/html/index.html
<html> <head> <title>www.theitroad.local - welcome</title> </head> <body> <h2>www.theitroad.local</h2> <p>This is a test page running on:</p> <ul> <li>Ubuntu Linux 20.04 LTS</li> <li>Apache 2.x</li> </ul> <hr> <small>[email protected]</small> </body> </html>
使用chown命令设置权限:
sudo chown -R usernamehere:usernamehere /home/my-domain-name-here/
打开新创建的虚拟域,运行:
sudo a2ensite my-domain-name.conf sudo a2dissite 000-default.conf
输出示例:
Enabling site my-domain-name.conf. To activate the new configuration, you need to run: systemctl reload apache2
测试配置:
sudo apache2ctl configtest
您必须获取语法确定消息,然后在Ubuntu Linux上重新启动Apache服务器:
sudo systemctl reload apache2
将您的域A和AAAA记录设置为服务器的公共IPv4/IPv6地址并对其进行测试:
http://my-domain-name-here http://www.theitroad.local