前言:因为要用到一些 Web 应用,虽然已经有了 Tomcat 服务器,但是 Tomcat 是用来开发时用的,经常需要重启,所以想要安装一个一直运行的服务器,以方便其他静态的 Web 应用正常使用。Apache HTTP Server 是最常用的 Web 服务器之一,所以安装来试试。此次操作环境是 Fedora 27。

目录

  • 目录

    • 一. 安装 HTTPD
    • 二. 保护 Apache HTTPD
    • 三. 配置 Apache HTTPD
      • 启用对 Web 应用程序的访问
      • 打开防火墙端口
    • 四. 故障排除

一. 安装 HTTPD

1.安装 HTTPD

# Fedora 22 及以上版本
[xx@xxx ~]# dnf install httpd -y# Fedora 21 及更早版本
[xx@xxx ~]# yum install httpd -y

2.启动 HTTPD 服务

[xx@xxx ~]# systemctl start httpd.service

3.设置开机时自动启动 HTTPD 服务(可选)

[xx@xxx ~]# systemctl enable httpd.service

此时已经安装完成了,在浏览器访问 http://localhost (或 http://127.0.0.1/) 可以查看 Apache HTTP 服务器的测试界面,若能看到正常的页面,说明服务器已经正常工作。但是此时可能无法从任何其他主机访问该服务器,因此若要从其他主机访问服务器,请参阅后面打开防火墙端口的说明。

二. 保护 Apache HTTPD

要启用 TLS / SSL 支持,请下载并安装以下软件包之一:

  • mod_ssl,基于 OpenSSL
  • mod_gnutls,基于 GnuTLS
  • mod_nss,基于 NSS

使用 mod_ssl

1.安装 mod_ssl
使用以下命令安装mod_ssl包,mod_ssl 包将在安装后自动启用 :

[xx@xxx ~]# dnf install mod_ssl -y

2.生成新证书
要生成新证书,请参阅使用OpenSSL创建证书。

3.安装现有证书
如果在另一台计算机上生成过证书,请执行以下操作:

# 将证书和密钥文件移动到正确的文件夹
[xx@xxx ~]# mv key_file.key /etc/pki/tls/private/myhost.com.key
[xx@xxx ~]# mv certificate.crt /etc/pki/tls/certs/myhost.com.crt# 确保以下参数正确:
# SELinux contexts
[xx@xxx ~]# restorecon /etc/pki/tls/private/myhost.com.key
[xx@xxx ~]# restorecon /etc/pki/tls/certs/myhost.com.crt
# 拥有者
[xx@xxx ~]# chown root.root /etc/pki/tls/private/myhost.com.key
[xx@xxx ~]# chown root.root /etc/pki/tls/certs/myhost.com.crt
# 权限
[xx@xxx ~]# chmod 0600 /etc/pki/tls/private/myhost.com.key
[xx@xxx ~]# chmod 0600 /etc/pki/tls/certs/myhost.com.crt

安装现有证书后,使用 mod_ssl 配置设置证书。

4.mod_ssl 配置
默认的 TLS / SSL 配置包含在文件 /etc/httpd/conf.d/ssl.conf 中。在 ssl.conf 文件中,以下是指定 TLS / SSL 证书和密钥所在位置的指令:

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

这些指令包含在定义虚拟主机的块中:

<VirtualHost _default_:443>
...
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
...
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
...
</VirtualHost>

要为这些文件定义其他位置,请执行以下操作:

  • 创建 /etc/httpd/conf.d/ssl.conf 文件的副本,并将文件名改为 z-ssl-local.conf
  • 编辑 z-ssl-local.conf 文件中的以下行:
<VirtualHost _default_:443>
SSLCertificateFile /etc/pki/tls/certs/www.myhost.org.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.myhost.org.key
</VirtualHost>

此文件将覆盖 default:443 虚拟主机的两个设置;而来自 ssl.conf 的所有其他设置将被保留。

5.单个虚拟主机的设置
要将特定虚拟主机的 SSL / TLS 用作默认的其他证书,请执行以下操作:

  • 打开该虚拟主机的配置文件 /etc/httpd/conf.d/hostname.conf。
  • 在 <VirtualHost hostname:port> 和 <VirtualHost> 之间插入这些行:
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key</pre>

三. 配置 Apache HTTPD

/etc/httpd/conf/httpd.conf 是 Apache 的主要配置文件。自定义配置文件在 /etc/httpd/conf.d/*.conf 中。如果在 /etc/httpd/conf/httpd.conf/etc/httpd/conf.d/*.conf 文件中指定了相同的设置,则以 /etc/httpd/conf.d/*.conf 文件中的设置为准。

/etc/httpd/conf.d/ 文件夹中的文件将会按字母顺序读取:/etc/httpd/conf.d/z-foo.conf 中的设置将会覆盖 /etc/httpd/conf.d/foo.conf 中的设置。同样,/etc/httpd/conf.d/99-foo.conf 中的设置将会覆盖 /etc/httpd/conf.d/00-foo.conf 中的设置。

为了更好的体验效果,请不要直接修改 /etc/httpd/conf/httpd.conf 或 Fedora 软件包附带的任何 /etc/httpd/conf.d 文件。 如果对这些文件进行任何本地更改,则不会直接应用在较新软件包版本中对它们进行的任何更改。 相反,这些修改将创建 .rpmnew 文件,导致必须手动合并更改。

建议在 /etc/httpd/conf.d 中创建一个新文件,设置该文件优先于要修改的文件,然后哦编辑所需的设置。例如,要更改 /etc/httpd/conf.d/foo.conf 中指定的设置,可以创建文件 /etc/httpd/conf.d/z-foo-local.conf,并将新设置写在该文件中。

# 注意:
# 对服务器配置进行任何更改后,请执行以下命令:
[xx@xxx ~]# apachectl reload # 某些更改可能需要 Apache 完全重新启动。要完全重新启动Apache,请执行以下命令:
[xx@xxx ~]# systemctl restart httpd.service 

启用对 Web 应用程序的访问

默认情况下,Fedora 打包的 Web 应用程序通常配置为只允许从 localhost 访问。 这是由文件 /etc/httpd/conf.d/webapp.conf 中定义的,文件中包含以下设置:

<Directory /usr/share/webapp><IfModule mod_authz_core.c># Apache 2.4Require local</IfModule><IfModule !mod_authz_core.c># Apache 2.2Order Deny,AllowDeny from allAllow from 127.0.0.1Allow from ::1</IfModule>
</Directory>

在允许一般访问webapp之前,请确保执行以下操作:

  • Webapp 已正确配置
  • 没有适当的身份验证,无法访问管理界面和其他敏感区域
  • 如果应用程序使用数据库,则数据库配置是安全的

如果只是要放宽对应用程序的访问,请创建文件 /etc/httpd/conf.d/z-webapp-allow.conf。允许访问本地网络上的所有系统时,请将以下行添加到文件中:

<Directory /usr/share/webapp><IfModule mod_authz_core.c># Apache 2.4Require localRequire ip 192.168.1</IfModule><IfModule !mod_authz_core.c># Apache 2.2Order Deny,AllowDeny from allAllow from 127.0.0.1Allow from ::1Allow from 192.168.1</IfModule>
</Directory>

正确配置应用程序后,添加以下配置以允许从任何主机进行访问:

<Directory /usr/share/webapp><IfModule mod_authz_core.c># Apache 2.4Require all granted</IfModule><IfModule !mod_authz_core.c># Apache 2.2Order Deny,AllowAllow from all</IfModule>
</Directory>

打开防火墙端口

注意:这会将您的计算机暴露给Internet和潜在的攻击者。在将服务器暴露给Internet之前,请正确保护系统和Apache安装。

默认情况下,Apache 将端口 80 用于普通 http 连接,将端口 443 用于 TLS / SSL 连接。要从其他计算机或 Internet 提供此服务,请使用以下任一命令允许 Apache 通过防火墙:

服务器启动时自动允许 Apache 通过防火墙:

# 对于普通 HTTP 连接:
[xx@xxx ~]# firewall-cmd --permanent --add-service=http# 对于 TLS/SSL 连接:
[xx@xxx ~]# firewall-cmd --permanent --add-service=https

每次手动允许 Apache 立即通过防火墙:

# 对于普通 HTTP 连接:
[xx@xxx ~]# firewall-cmd --add-service=http# 对于 TLS/SSL 连接:
[xx@xxx ~]# firewall-cmd --add-service=https

注意:如果您的服务器是在 NAT 路由器的网络中运行,想要允许从本地网络外部进行访问的话,则还需要配置路由器以将 HTTP 和 HTTPS 端口转发到您的服务器。

四. 故障排除

暂无

本文为转载翻译文章,有些内容已经被我忽略掉了,想要看详细内容,可以查看原文。当然我建议还是去看一下原文,那里说明的更好一点。

Fedora 安装 Apache HTTP Server相关推荐

  1. serv-u 数据备份_如何使用用户数据脚本在EC2实例上安装Apache Web Server

    serv-u 数据备份 你好朋友, 在本教程中,我们将看到如何使用用户数据脚本在EC2实例上安装Apache Web Server. 在我以前的教程之一中,我已经解释了如何使用AWS控制台启动EC2实 ...

  2. 如何使用用户数据脚本在EC2实例上安装Apache Web Server

    你好朋友, 在本教程中,我们将看到如何使用用户数据脚本在EC2实例上安装Apache Web Server. 在我以前的教程之一中,我已经解释了如何使用AWS控制台启动EC2实例.如果您还没有完成该操 ...

  3. 探探自动配对PHP_CentOS7 - 安装Apache HTTP Server和PHP

    安装Apache HTTP Server和PHP 你可能听说过LAMP的缩写,它代表Linux,Apache,MySQL和PHP. 它指的是用于提供网站和Web应用程序的流行技术配对. 本文教您如何安 ...

  4. yum安装Apache Web Server命令

    yum install httpd -y yum安装Apache Web Server后各个文件存放位置 用yum安装apache软件: yum -y install httpd 安装完成后,来查看理 ...

  5. Ubuntu 12.04 64bit上安装Apache Traffic Server 4.1.2

    说明: 对于企业级服务器来说,一般是使用Redhat或是CentOS上来跑Apache traffic server作为代理缓存服务器, 一般使用Ubuntu的机会很少,我这里探讨安装在Ubuntu ...

  6. linux 安装apache http server

    参考http://blog.csdn.net/sundenskyqq/article/details/24733923 但这篇博文有些东西有错. 参考http://www.cnblogs.com/zh ...

  7. yum安装Apache Web Server后各个文件存放位置

    用yum安装apache软件: yum -y install httpd 安装完成后,来查看理解yum安装软件的过程和安装路径. 首先理解YUM:基于RPM包管理,能够从指定的服务器下载RPM包并自动 ...

  8. fedora安装tftp server

    由于要在板子上实现tftp client, 所以现在pc实现tftp server, 直接用sudo dnf install tftp-server安装,显示搜不到package,所以从网上下载了安装 ...

  9. Windows XP 环境下安装 Apache HTTP Server 2.2.8

    [转自] http://www.blabla.cn/php/install_apache_228_window_xp_80516.html

最新文章

  1. C# 获取QQ群数据的实现
  2. 物联网发展年报显示 2016年智能家居市场快速增长
  3. 小波分析实验: 实验1 连续小波变换
  4. github ssh密钥_如何使用SSH密钥在一台机器上管理多个GitHub帐户
  5. vue中 点击事件的写法_vue基础之事件v-onclick=函数用法示例
  6. SAS安装过程中出现unknow等或没有生成ip地址问题的解决办法
  7. 89C51使用ADC0808模数转换
  8. “工资3000,一年存20万”:掌握理财技能,让我少奋斗10年
  9. 使用FileZilla删除乱码名称文件
  10. aven class javax.xml.parsers.SecuritySupport12 cannot access its superclass javax.xml.parsers.Secur
  11. IntelliJ Idea 向上/下插入空行快捷键
  12. 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  13. 用CSS3制作一个风车
  14. C语言和汇编语言函数调用
  15. 客户端访问https时应无浏览器(含终端)安全警告信息;_Http升级Https(Let#x27;s Encrypt)...
  16. Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端
  17. 赶紧来修炼内功~字符串函数详解大全(二)
  18. 2020团体程序设计天梯赛题解(部分)
  19. java显示菜单栏_Java:如何检查JFrame的菜单栏是显示在系统菜单栏还是框架本身?...
  20. android studio parcelable,Android中Parcelable的使用详解

热门文章

  1. 甜蜜暴击!给程序员老公 20 年后的一封信 | 程序员有话说
  2. 使用Logistic Regression进行文本分类
  3. 国庆回家2019之旅----为什么我拒绝了老妈的要求?
  4. bbsxp2007 SQL漏洞
  5. Vulkan教程 - 06 交换链
  6. 洛谷-P5731 【深基5.习6】蛇形方阵
  7. xmpp java websocket_Websocket整合登录XMPP的思考
  8. 京东技术人才之路:谁会成为京东下一个12年的希望?...
  9. 大公司该不该砍掉 IT 部?
  10. iPad的死对头:多图赏析Google Nexus 7