当前位置:首页 > 文章 > 网站建设 > 正文内容

在CentOS 7上安装ApacheWeb服务器

myblog5个月前 (06-09)网站建设90

Apache HTTP效劳器是世界上运用最普遍的Web效劳器。它提供了许多弱小的功用,包括静态加载的模块,弱小的媒体支持,并与其他盛行软件普遍集成。

在本文中,你将在你的CentOS 7服务器(虚拟机)上装置有虚拟主机的Apache Web服务器。

您需要准备以下条件

在服务器上配置sudo权限的非root用户

配置防火墙

安装Apache

Apache可以在CentOS的默认软件存储库中使用,这意味着您可以使用yum软件包管理器来安装它。

非root 使用sudo权限用户,更新本地Apache

sudo yum update httpd

软件包更新完成,安装Apache包:

sudo yum install httpd

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

如果您已经在服务器上安装了Firewalld,需要打开端口80以允许Apache通过HTTP服务请求。如果您还没有这样做,可以使用以下命令启用Firewalld的http服务:

sudo firewall-cmd --permanent --add-service=http

如果想让Apache配置为HTTPS,则还需要通过启用https服务来打开端口443:

sudo firewall-cmd --permanent --add-service=https

重启防火墙

sudo firewall-cmd --reload

防火墙重新加载后,您就可以启动该服务器查看Web服务器。

检查Web服务器

Apache安装完成后在CentOS不会自动启动,需求手动启动Apache进程:

sudo systemctl start httpd

使用以下命令验证服务是否正在运行:

sudo systemctl status httpd

当服务运行时,您将看到一个活动状态:

OutputRedirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1290 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─1290 /usr/sbin/httpd -DFOREGROUND
           ├─1291 /usr/sbin/httpd -DFOREGROUND
           ├─1292 /usr/sbin/httpd -DFOREGROUND
           ├─1293 /usr/sbin/httpd -DFOREGROUND
           ├─1294 /usr/sbin/httpd -DFOREGROUND
           └─1295 /usr/sbin/httpd -DFOREGROUND
...

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

在服务器的命令提示符下键入以下内容:

hostname -I

此命令将显示主机的所有网络地址,因此您将返回由空格分隔的几个IP地址。您可以在您的网页浏览器中试一试,看看它们是否有效。

您将看到默认的CentOS 7 Apache网页:

Default Apache page for CentOS 7

此页面指示Apache正在正常工作。它还包括一些关于重要的Apache文件和目录位置的基本信息。现在,服务已经安装和运行,您现在可以使用不同的systemctl命令来管理服务。

管理Apache进程

 现在,你有的Web服务器运转起来,我们去了解一些管理命令。

 停止Web服务器,键入:

sudo systemctl stop httpd

 启动Web服务器,键入:

sudo systemctl start httpd

重新启动该服务,请键入:sudo systemctl restart httpd

如果您只是简单地进行配置更改,那么Apache通常可以在不删除连接的情况下重新加载。要做到这一点,请使用以下命令

sudo systemctl reload httpd

默认情况下,Apache被配置为在服务器启动时自动启动。如果这不是您想要的,请键入以下命令来禁用此行为:

sudo systemctl disable httpd

在启动centos时启用该服务,输入:

sudo systemctl enable httpd

Apache的默认配置将允许服务器承载单个网站。如果计划在服务器上承载多个域,则需要在Apache Web服务器上配置虚拟主机。

设置虚拟主机

在使用ApacheWeb服务器时,可以使用虚拟主机(类似于Nginx中的服务器块)封装配置细节,并从单个服务器托管多个域。在这个步骤中,您将设置一个名为lmyblog.com的域,但是您应该用自己的域名替换它。

CentOS 7上的Apache默认启用了一个服务器块,该服务器块配置为服务于/var/www/html目录中的文档。虽然这对单个站点很好,但如果您托管多个站点,它可能会变得难以处理。不是修改/var/www/html,而是为lmyblog.com站点在/var/www内创建一个目录结构,如果客户端请求与任何其他站点不匹配,/var/www/html将作为默认目录提供.

为lmyblog.com创建html目录,如下所示,使用-p标志创建必要的父目录:

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

创建另一个目录来存储站点的日志文件:

sudo mkdir -p /var/www/lmyblog.com/log

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

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

请确保您的Web根目录具有默许权限设置:

sudo chmod -R 755 /var/www

然后创建示例页面:

sudo vi /var/www/lmyblog.com/html/index.html

按I键切换到插入模式,并将以下示例HTML添加到文件中:

<html>
  <head>
    <title>Welcome to Lmyblog.com!</title>
  </head>
  <body>
    <h1>Success! The lmyblog.com virtual host is working!</h1>
  </body>
</html>

按ESC、键入:WQ和按Enter来保存和关闭文件。

有了站点目录和示例索引文件,您几乎可以创建虚拟主机文件了。虚拟主机文件指定单独站点的配置,并告诉Apache Web服务器如何响应各种域请求。

在创建虚拟主机之前,您需要创建一个站点可用的目录来将它们存储在其中。您还将创建启用站点的目录,该目录告诉Apache虚拟主机已准备好为访问者提供服务。启用站点的目录将保存到我们希望发布的虚拟主机的符号链接。使用以下命令创建两个目录:

sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

接下来,您将告诉Apache在启用站点的目录中查找虚拟主机。为此,编辑Apache的主配置文件并添加一行声明其他配置文件的可选目录:

sudo vi /etc/httpd/conf/httpd.conf

该行添加到文件的末尾:

IncludeOptional sites-enabled/*.conf

添加该行后,保存并关闭该文件。现在您已经准备好了虚拟主机目录,您将创建虚拟主机文件。

首先,在站点可用目录中创建一个新文件:

sudo vi /etc/httpd/sites-available/lmyblog.com.conf

添加以下配置块,并将lmyblog.com域更改为您的域名

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

这将告诉Apache在哪里可以直接找到保存可公开访问的Web文档的根目录。它还告诉Apache在哪里存储错误,并请求这个特定站点的日志。

完成后保存并关闭文件。

现在您已经创建了虚拟主机文件,您将启用它们,以便Apache知道如何向访问者提供这些文件。为此,为站点启用目录中的每个虚拟主机创建一个符号链接:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

您的虚拟主机现在已经配置好,可以提供内容。在重新启动Apache服务之前,让我们确保SELinux对虚拟主机具有正确的策略

为虚拟主机调整SELinux权限

SELinux配置为使用默认的Apache配置。由于您在虚拟主机配置文件中设置了自定义日志目录,如果尝试启动Apache服务,您将收到一个错误。要解决这个问题,您需要更新SELinux策略,以允许Apache写入必要的文件。SELinux为您的CentOS 7环境带来了更高的安全性,因此不建议完全禁用内核模块。

有不同的方法可以根据环境的需要来设置策略,因为SELinux允许您定制您的安全级别。这一步将涵盖两种调整Apache策略的方法:通用的和特定目录上的。调整目录的策略更安全,因此是推荐的方法。

调整Apache策略通用设置Apache策略将告诉SELinux使用httpd_unifiedboole对所有Apache进程进行相同的处理。虽然这种方法更方便,但它不会给您提供与关注文件或目录策略的方法相同的控制级别。

运行以下命令以设置Apache策略

sudo setsebool -P httpd_unified 1

setsebool命令更改SELinux布尔值。-P标志将更新启动时值,使此更改在重新启动过程中持续存在。httpd_uniform是一个布尔值,它将告诉SELinux将所有Apache进程视为相同的类型,因此启用它的值为1。

调整Apache目录策略

单独为/var/www/lmyblog.com/log目录设置SELinux权限将为您提供对Apache策略的更多控制,但也可能需要更多的维护。由于此选项不是通用设置策略,因此需要手动设置虚拟主机配置中指定的任何新日志目录的上下文类型。

首先,检查SELinux提供/var/www/lmyblog.com/log目录的上下文类型:

sudo ls -dZ /var/www/lmyblog.com/log/

此命令列出并打印目录的SELinux文本。您将看到类似于以下内容的输出:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/lmyblog.com/log/

当前的文本是httpd_sys_content_t,它告诉SELinux,Apache进程只能读取在这个目录中创建的文件。在本教程中,您将将/var/www/lmyblog.com/log目录的文本类型更改为httpd_log_t。

sudo semanage fcontext -a -t httpd_log_t "/var/www/lmyblog.com/log(/.*)?"

接下来,使用restorecon命令应用这些更改,并使它们在重新启动过程中保持不变:

sudo restorecon -R -v /var/www/lmyblog.com/log

-R标志递归地运行此命令,这意味着它将更新任何现有文件以使用新的文本。-v标志将打印命令所做的文本更改。您将看到下面的输出确认这些更改:

Output
restorecon reset /var/www/lmyblog.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

您可以列出文本一次看到的变化:

sudo ls -dZ /var/www/lmyblog.com/log/

输入下边命令查看更新的文本类型:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/lmyblog.com/log

现在/var/www/lmyblog.com/log目录使用httpd_log_t类型,那么就可以测试虚拟主机配置了。

测试虚拟主机

使用这两种方法更新SELinux文本之后,Apache将能够写入/var/www/lmyblog.com/log目录。现在可以重新启动Apache服务:

sudo systemctl restart httpd

列出/var/www/lmyblog.com/log目录的内容,查看Apache是否创建了日志文件:

ls -lZ /var/www/lmyblog.com/log

您将看到Apache能够创建虚拟主机配置中指定的error.log和requests.log文件:

Output
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log
-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

已经设置了虚拟主机并更新了SELinux权限,Apache现在将为您的域名提供服务。输入你的域名看看有什么惊喜吧

在本教程中,您安装并管理了ApacheWeb服务器。现在您已经安装了Web服务器,您可以选择提供的内容类型和使用的风多技术来创建更丰富的体验。

感谢您访问李梦园个人博客-静水流深

推荐阅读

怎样在CentOS 7.6上使用PHP和MySQL(LEMP Stack)安装Nginx

通过简单的方法在Apache Tomcat上配置SSL证书

如何在CentOS 7.3的LAMP上安装CMS Made Simple v2.2

版权声明:本文由静水流深发布,如需转载请注明出处。

分享给朋友:

相关文章

如何在CentOS 7.3的LAMP上安装CMS Made Simple v2.2

如何在CentOS 7.3的LAMP上安装CMS Made Simple v2.2

  CMS Made Simple是一个开源的免费内容管理系统(CMS)。它是对用户友好的,高度可扩展的,易于集成,易于设计,功能强大的插件。在CMS Made Simple中,您...

通过简单的方法在Apache Tomcat上配置SSL证书

通过简单的方法在Apache Tomcat上配置SSL证书

欢迎访问李梦园个人博客---静水流深基本要求JAVA SDK / JDKTomcat(7+)三个步骤使用Java创建密钥库文件配置Tomcat以使用密钥库配置您的应用程序以使用SSL(通过https:...

新手搭建网站(个人博客),从云主机,域名到模板部署

新手搭建网站(个人博客),从云主机,域名到模板部署

对于新手搭建网站网上也有不少的教程,我这里也记录下自己搭建个人博客的过程,留给其他小伙伴做个经验分享.我的个人博客地址:Https://www.lmyblog.com(李梦园个人博客---静水流深)搭...

百度网址收录网址提交网站提交SEO工具

百度网址收录网址提交网站提交SEO工具

李梦园个人博客-静水流深收录百度网站网址收录提交、独立博客网站网址提交收录、 英文搜索网站网址提交收录、搜索引擎网站网址提交收录、网站站长SEO工具、网站网址sitemap提交,网站被K申述等超适用的...

怎样在CentOS 7.6上使用PHP和MySQL(LEMP Stack)安装Nginx

怎样在CentOS 7.6上使用PHP和MySQL(LEMP Stack)安装Nginx

首先我们要知道什么是NginxNginx(发音为“ engine x”)是一个免费的,开源的高性能HTTP服务器。 Nginx以其稳定性,丰富的功能集,简单的配置和低资源消耗而著称。准备在本教程中,我...