快速上手:在CVM上安装Apache
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
介绍
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结尾的文件包含这些模块的配置。可以使用a2enmod和a2dismod命令启用和禁用模块。
服务器日志
/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
问答
相关阅读
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1158260?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
海量技术实践经验,尽在云加社区!
快速上手:在CVM上安装Apache的更多相关文章
- windows上安装apache python mod_python
综述: windows上安装apache python mod_python的例子.教程甚至图解都不少:但作为新手还是会出错,而且一时无法快速排解. 在此笔者将根据自己的实践经验,给出几个需要注意 ...
- 在CentOS 6上安装Apache和PHP
本文演示如何在CentOS 6上安装Apache和PHP.CentOS 6自带的是Apache 2.2.3和PHP 5.1.6,您可以使用默认的CentOS包管理器进行安装yum.使用yum(而不是使 ...
- 【转】如何在win10(64位系统)上安装apache服务器
如何在win10(64位系统)上安装apache服务器 今天装了Apache服务器,下面是我总结的方法: 一,准备软件 1.64位的apache版本 传送门:http://www.apacheloun ...
- 如何在Ubuntu 16.04上安装Apache Web服务器
转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...
- 如何在Ubuntu 18.04上安装Apache Web服务器
一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...
- 手把手教你在Ubuntu上安装Apache、MySql和PHP
1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...
- 手把手教你在ubuntu上安装apache和mysql和php
1:首先安装apache:打开终端(ctrl+Alt+t), 输入命令:sudo apt-get install apache2即可安装, 安装完后,打开浏览器,在地址栏输入:localhost或者h ...
- Centos7上安装Apache
Apache HTTP服务器是世界上最流行的Web服务器. 它是一款免费的开源和跨平台的HTTP服务器,提供强大的功能,可以通过各种模块进行扩展. 以下说明介绍如何在CentOS 7机器上安装和管理A ...
- 【opencv入门篇】 10个程序快速上手opencv【上】
导言:本系列博客目的在于能够在vs快速上手opencv,理论知识涉及较少,大家有兴趣可以查阅其他博客深入了解相关的理论知识,本博客后续也会对图像方向的理论进一步分析,敬请期待:) PS:官方文档永远是 ...
随机推荐
- .net 序列化反序列化
.net 序列化创建对象的深拷贝 public static object DeepClone(object original) { using (MemoryStream stream = new ...
- Java 连接、操控数据库总结(JDBC)
看到数据库连接不由得想起了大一末参加团队考核时的悲催经历~~,还记得当初傻傻地按照书本的代码打到 Eclipse 上,然后一运行就各种报错...报错后还傻傻地和书本的代码一遍又一遍地进行核对,发现无误 ...
- ZKEACMS 配置使用 HTTPS
在开始之前,请升级你的ZKEACMS到最新版本,旧版本使用HTTPS会有问题 https加密链接,在访问的过程中,可以保护你的隐私,保证你的敏感数据不会被别人偷窥,窃取.如果你的服务器在境外,使用ht ...
- CentOS下Docker与.netcore(一) 之 安装
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...
- C# Log4.Net日志组件的应用系列(一)
引言 Log4Net应该可以说是.NET中最流行的开源日志组件了.在各种项目框架中可以说是必不可少的组成部分.个人认为Log4Net有下面几个优点: 1. 使用灵活,它可以将日志分不同的等级,以不同的 ...
- BZOJ 1562 [NOI2009] 变换序列
[NOI2009] 变换序列 [题解] 就是有一个序列,每个位置可以填两个数,不可重复,问最小字典序. 显然,可以建一个二分图,判合法就是找完美匹配. 那怎么弄最小字典序呢?有好多种解法,我这里给出了 ...
- iOS检测项目图片资源是否包含P3图片
1.问题描述 我们需要知道的是在iOS9.3以下系统上,.ipa包内如果含有p3图片,将会导致严重的闪退问题,具体原因还请google,非本文的重点. 2.问题解决 拿到的如果是ipa包(不是则跳过) ...
- Android中Application类的使用
在最近的Android项目中,有些代码需要从程序的运行周期开始一直到运行周期结束:比如说本地数据库的初始化,从服务器获取数据等:可以说Application对象的生命周期是整个程序中最长的,它的生命周 ...
- Logstash 性能及其替代方案
介绍 当谈及集中日志到 Elasticsearch 时,首先想到的日志传输(log shipper)就是 Logstash.开发者听说过它,但是不太清楚它具体是干什么事情的: 当深入这个话题时,我们才 ...
- Connection Timeout和Command Timeout
每次对数据库连接时,我们有时候会碰到连接超时或者命令超时,这两个超时是不一样的.以ADO.NET为例,当客户端和服务器端连接时,碰到的超时情况主要有下面几种: 当从连接池获取一个连接时,碰到超时. 当 ...