欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由一步 发表于云+社区专栏

介绍

Apache HTTP服务器是世界上使用最广泛的Web服务器。它提供了许多强大的功能,包括可动态加载的模块,强大的媒体支持以及与其他流行软件的广泛集成。

在本文中,我们将介绍如何在腾讯云Ubuntu 18.04服务器上安装Apache Web服务器。

必备条件

在开始本文之前,腾讯云默认使用的是sudo的非root用户。此外,您做起码的还要启动防火墙,屏蔽一些不必要的端口。您可以按照我们腾讯云安全组配置了解如何配置常规用户帐户并为您的服务器设置防火墙。

如果您有可用的帐户,请以非root用户身份登录以开始。

第一步、安装Apache

Apache可以在Ubuntu的默认软件存储库中使用,从而可以使用传统的包管理工具进行安装。

先更新本地的软件包

sudo apt update

然后,安装:apache2

sudo apt install apache2

确认安装后,apt将安装Apache和所有必需的依赖项。

第二步、设置防火墙

在测试Apache之前,有必要修改防火墙设置,以允许外部能访问默认的Web端口。

在安装过程中,Apache在UFW防火墙注册了自己,以及提供一些应用程序配置文件,这些配置文件可用于启用或禁用通过防火墙访问Apache。

输入以下内容列出应用程序配置ufw

sudo ufw app list

您将看到应用程序配置文件的列表:

OutputAvailable application:
Apache
Apache Full
Apache Secure
OpenSSH

如您所见,Apache有三种配置文件:

  • Apache:此配置文件仅打开端口80(正常,未加密的Web流量)
  • Apache Full:此配置文件打开端口80(正常,未加密的Web流量)和端口443(TLS / SSL加密流量)
  • Apache Secure:此配置文件仅打开端口443(TLS / SSL加密流量)

建议您启用限制性最强的配置文件,该配置文件仍要允许您配置的流量。由于我们尚未在本文中为我们的服务器配置SSL,因此我们只需要允许端口80上的流量:

sudo ufw allow 'Apache'

您可以输入以下内容来查看是否修改成功:

sudo ufw status

您应该在显示的输出中看到允许的HTTP流量:

OutputStatus :active

to                        action      From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH ( v6 ) ALLOW Anywhere ( v6 )
Apache ( v6 ) Allow Anywhere ( v6 )

如您所见,已经激活的配置文件,已允许访问Web服务器。

第三步、检查Web服务器

在安装过程结束时,Apache就会在Ubuntu 18.04运行。Web服务器应该已经启动并运行。

通过输入以下命令检查systemd init 系统以确保服务正在运行:

sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago
Main PID: 2583 (apache2)
Tasks: 55 (limit: 1153)
CGroup: /system.slice/apache2.service
├─2583 /usr/sbin/apache2 -k start
├─2585 /usr/sbin/apache2 -k start
└─2586 /usr/sbin/apache2 -k start

从此输出中可以看出,该服务似乎已成功启动。但是,最佳的测试方法还是打开Apache的网页。

您可以访问默认的Apache登录页面,以确认软件是否通过您的IP地址正常运行。如果您不知道服务器的IP地址,可以从命令行获得几种不同的方法。

尝试在服务器的命令提示符下输入:

hostname -I

你会得到一些用空格分隔的地址。您可以在Web浏览器中尝试各自以查看它们是否有效。

另一种方法是输入下面这段命令,它应该帮您查到您的IP地址:

curl - 4 icanhazip.COM

获得服务器的IP地址后,将其输入浏览器的地址栏:

http://your_server_ip

您应该看可以到Ubuntu 18.04 Apache的默认页面:

small_apache_default

此页面表明Apache正常运行。它还包括有关重要Apache文件和目录位置的一些基本信息。

第4步 - 管理Apache进程

现在您已经启动并运行了Web服务器,让我们来看一些基本的管理命令。

要停止Web服务器,请输入:

sudo systemctl stop apache2

要在Web服务器停止时启动它,请输入:

sudo systemctl start apache2

要重启该服务,请输入:

sudo systemctl restart apache2

如果您只是进行配置更改,Apache通常可以在不丢弃连接的情况下重新加载。请使用以下命令:

sudo systemctl reload apache2

在默认情况下,Apache是默认开机启动的。如果不想开机启动,请输入以下命令:

sudo systemctl disable apache2

要重新开机启动Apache,请输入:

sudo systemctl start apache2

Apache现在应该能够开机启动了。

第五步、设置虚拟主机

使用Apache Web服务器时,您可以使用虚拟主机(类似于Nginx中的服务器块)来封装配置详细信息,并且可以服务器托管多个域名。我们将设置一个名为example.com的域名,但您应将其替换为您自己的域名。

Ubuntu 18.04上的Apache默认启用了一个服务器块,配置为从 /var/www/html/ 目录中提供文档。虽然这适用于单个站点,但如果您托管多个站点,这就有点困难了。与其修改/var/www/html/,还不如在/var/www/html/ 中为example.com站点内创建一个目录结构,如果客户端请求与任何其他站点不匹配,则将/var/www/html/作为默认的目录。

按如下所示为example.com创建目录,使用-p标志创建必需的父目录:

sudo mkdir - p /var/www/example.com/html

接下来,使用环境变量分配目录的所有权:$USER

sudo chown - R $USER:$USER/var/www/xample.com/html

如果您尚未修改您的值,则您的Web根目录的权限应该是正确的,通过下面的命令来给你的网站打上权限

sudo chmod - R 755 /var/www/example.com

接下来,您可以使用nano来编辑。

nano /var/www/example.com/html/index.html

添加以下代码到 /var/www/example.com/html/index.html 里:

<html>
<head>
<title>Welcome to Example.com</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>

完成后保存并关闭文件。

为了使Apache能够提供此内容,必须使用正确的指令创建虚拟主机文件。不要直接修改位于/etc/apache2/sites-available/000-default.conf的默认配置文件,而是在以下位置创建一个新文件:/etc/apache2/sites-available/example.com.conf

sudosudo nano /etc/apache2/sites-available/example.com.conf

复制下面这段代码到/etc/apache2/sites-available/example.com.conf,并作出相对应的修改

<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

请注意,我们已将DocumentRoot更新为新目录,将ServerAdmin更新为example.com站点管理员可以访问的电子邮件。 我们还添加了两个指令:ServerName它建立了应该与此虚拟主机定义匹配的基本域; ServerAlias它定义了应该匹配的更多名称,就像它们的名称一样。

完成后保存并关闭文件。

让我们使用该工具启用该文件:a2ensite

sudo a2ensite example.com.conf

禁用以下定义的默认站点:000-default.conf

sudo a2dissite 000-default.conf

接下来,让我们测试一下配置是否错误:

sudo apache2ctl configtest

您应该看到以下输出:

OutputSyntax Ok

重启Apache:

sudo systemctl restart apache2

Apache现在应该为您的域名服务。你可以通过导航来测试这个,你应该看到这样的东西:http://example.com

example

第六步、熟悉的Apache文件和目录

现在您已了解如何管理Apache服务本身,您应该花几分钟时间熟悉一些重要的目录和文件。

内容

  • /var/www/html:网页包括首页的其他文件都在这个目录下(默认情况下仅包含您之前看到的默认Apache页面)是在/var/www/html这个目录中的。这可以通过更改Apache配置文件来更改。

服务器配置

  • /etc/apache2:Apache配置目录。所有Apache配置文件都驻留在此处。
  • /etc/apache2/apache2.conf:主要的Apache配置文件。可以对其进行修改以更改Apache全局配置。该文件负责加载配置目录中的许多其他文件。
  • /etc/apache2/ports.conf:此文件指定Apache将侦听的端口。默认情况下,Apache在端口80上侦听,并在启用提供SSL功能的模块时另外侦听端口443。
  • /etc/apache2/sites-available/:可以存储所有虚拟主机站点的目录。Apache不会使用此目录中的配置文件,除非它们链接到sites-enabled目录。通常,所有服务器块配置都在此目录中完成,然后通过使用该a2ensite命令链接到其他目录。
  • /etc/apache2/sites-enabled/:存储已启用的所有的虚拟主机站点的目录。通常,这些是通过链接到sites-available目录中的配置文件来创建的a2ensite。Apache在启动或重新加载以编译完整配置时读取此目录中的配置文件和链接。
  • /etc/apache2/conf-available//etc/apache2/conf-enabled/:这些目录与sites-available和目录具有相同的关系sites-enabled,但用于存储不属于虚拟主机的配置片段。conf-available可以使用该a2enconf命令启用目录中的文件,并使用该命令禁用该文件a2disconf
  • /etc/apache2/mods-available//etc/apache2/mods-enabled/:这些目录分别包含可用和已启用的模块。带.load结尾的文件,包含用于加载特定模块的片段,而文件以.conf结尾的文件包含这些模块的配置。可以使用a2enmoda2dismod命令启用和禁用模块。

服务器日志

  • /var/log/apache2/access.log:默认情况下,除非将Apache配置为执行其他操作,否则对Web服务器的每个请求都将记录在此日志文件中。
  • /var/log/apache2/error.log:默认情况下,所有错误都记录在此文件中。LogLevel:Apache配置中的指令,可以设置错误日志将包含多少详细信息。

在Ubuntu 16.04上面搭建Apache网站服务器你学会了嘛?购买一台服务器试试吧:https://cloud.tencent.com/product/cvm


参考文献:《How To Install the Apache Web Server on Ubuntu 18.04》

翻译:黄城浩,审校:Techeek

问答

消失存储过程?

相关阅读

腾讯云CIS入门——Kubernetes部署

腾讯云API:用Python使用腾讯云API(机器翻译实例)

主机迁移实践分享

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1158260?fromSource=waitui

欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

海量技术实践经验,尽在云加社区

快速上手:在CVM上安装Apache的更多相关文章

  1. windows上安装apache python mod_python

    综述:   windows上安装apache python mod_python的例子.教程甚至图解都不少:但作为新手还是会出错,而且一时无法快速排解. 在此笔者将根据自己的实践经验,给出几个需要注意 ...

  2. 在CentOS 6上安装Apache和PHP

    本文演示如何在CentOS 6上安装Apache和PHP.CentOS 6自带的是Apache 2.2.3和PHP 5.1.6,您可以使用默认的CentOS包管理器进行安装yum.使用yum(而不是使 ...

  3. 【转】如何在win10(64位系统)上安装apache服务器

    如何在win10(64位系统)上安装apache服务器 今天装了Apache服务器,下面是我总结的方法: 一,准备软件 1.64位的apache版本 传送门:http://www.apacheloun ...

  4. 如何在Ubuntu 16.04上安装Apache Web服务器

    转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...

  5. 如何在Ubuntu 18.04上安装Apache Web服务器

    一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...

  6. 手把手教你在Ubuntu上安装Apache、MySql和PHP

    1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...

  7. 手把手教你在ubuntu上安装apache和mysql和php

    1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...

  8. Centos7上安装Apache

    Apache HTTP服务器是世界上最流行的Web服务器. 它是一款免费的开源和跨平台的HTTP服务器,提供强大的功能,可以通过各种模块进行扩展. 以下说明介绍如何在CentOS 7机器上安装和管理A ...

  9. 【opencv入门篇】 10个程序快速上手opencv【上】

    导言:本系列博客目的在于能够在vs快速上手opencv,理论知识涉及较少,大家有兴趣可以查阅其他博客深入了解相关的理论知识,本博客后续也会对图像方向的理论进一步分析,敬请期待:) PS:官方文档永远是 ...

随机推荐

  1. ArcGis Android 10.2.6更新文档翻译

    ArcGis Android 10.2.6更新文档翻译 @[ArcGis Android|10.2.6|更新文档] 本文描述了ArcGIS Runtime SDK for Android 10.2.6 ...

  2. Spring Boot - Spring Cache

    缓存 服务器自身(内存)的缓存 利用java程序中的变量 简单 集群环境中多个实例无法共享同步 缓存服务器(一般支持集群.分布式) Redis Memcached Spring中使用注解使用缓存 启动 ...

  3. 聊聊 JDK 阻塞队列源码(ReentrantLock实现)

    项目中用到了一个叫做 Disruptor 的队列,今天楼主并不是要介绍 Disruptor 而是想巩固一下基础扒一下 JDK 中的阻塞队列,听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见, ...

  4. 二十三、MongoDb 数据库介绍、安装、启动和连接(非关系型数据库)

    1.数据库和文件的主要区别 1. 数据库有数据库表.行和列的概念,让我们存储操作数据更方便2. 数据库提供了非常方便的接口,可以让 nodejs.php java .net 很方便的实现增加修改删除功 ...

  5. [AGC003F] Fraction of Fractal 矩阵快速幂

    Description ​ SnukeSnuke从他的母亲那里得到了生日礼物--一个网格.网格有HH行WW列.每个单元格都是黑色或白色.所有黑色单元格都是四联通的,也就是说,只做水平或垂直移动且只经过 ...

  6. zTree第五章,zTree的nodes数据例子

    var nodes1 = [ { name: "小学", iconOpen: folderOpen, iconClose: folder, chkDisabled :true, c ...

  7. 外网域名映射内网Ip 内网使用外网域名的https证书

    用nslookup www.baidu.com nslookup www.qq.com 15.64.64.53 测试了内网的dns可以解析外网域名 那么我买个外网域名,再对这个外网域名买个证书,然后外 ...

  8. nginx下重写隐藏index.php文件

    location / { root /项目目录/; index index.php; if (-f $request_filename/index.php){ rewrite (.*) $1/inde ...

  9. 题目1022:游船出租(hash简单应用)

    问题来源 http://ac.jobdu.com/problem.php?pid=1022 问题描述 每次输入:船号(1~100) 键值(S或E) 发生时间(小时:分钟).当船号为0时,代表一天结束: ...

  10. linux开机、重启和用户登陆注销

    关机&重启命令 基本介绍: shutdown –h now    立该进行关机 shudown -h 1 "hello, 1 分钟后会关机了" shutdown –r no ...