如何在Debian 10上安装和配置Apache

时间:2019-05-19 01:26:35  来源:igfitidea点击:

在Debian 10上安装Apache

首先,通过SSH登录到你的Debain 10系统并更新Apt缓存。
然后安装Apache2 HTTP服务器包:

sudo apt update
sudo apt install apache2

管理Apache服务

Apache服务是由systemctl命令行管理的。
安装后,使用以下命令检查Apache服务的状态。

sudo systemctl status apache2.service

下面是通过命令行停止、启动或重启Apache服务的命令。

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl restart apache2.service

测试Apache设置

我们可以使用以下命令查看已安装的Apache版本详细信息。

apache2 -v

Server version: Apache/2.4.38 (Debian)
Server built:   2019-10-15T19:53:42

现在使用服务器的IP地址或指向服务器IP的域访问Apache服务器。

http://服务器ip

我们将在web浏览器上看到一个默认的Apache页面。
这意味着Apache web服务器已经成功安装到Debian 10系统上。

创建虚拟主机

让我们在Apache服务器上创建第一个虚拟主机。
在本教程中,我们使用示例域“example.com”。
在这里,我们将在端口80上为example.com创建一个虚拟主机。
在目录中创建一个index.html示例文件:

sudo mkdir -p /var/www/example.com
sudo echo "hello example.com" > /var/www/example.com/index.html

然后创建虚拟主机配置文件并编辑:

sudo vim /etc/apache2/sites-available/example.com.conf

在配置文件中添加以下内容。
我们可以根据域名更改域名。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com
    ServerName example.com
    ServerAlias www.example.com
    <Directory /var/www/example.com>
           #Allowoverride all    ###Uncomment if required
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

保存Virtualhost配置文件,然后启用Virtualhost并使用以下命令重新加载Apache服务:

sudo a2ensite example.com
sudo systemctl reload apache2.service

配置SSL虚拟主机

如果不需要SSL,可以跳过这一步。
但安全始终是任何网站的首要一致。
默认的Apache https监听端口443。
确保没有其他服务使用相同的端口。
现在,需要启用Apache ssl模块,默认情况下是禁用的。

sudo a2enmod ssl

对于本教程,我按照这些说明为我们的域生成一个自签名的SSL证书。
然后创建一个新的虚拟主机文件并编辑它:

sudo vim /etc/apache2/sites-available/example.com_ssl.conf

内容如下:

<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com
	
    ServerName example.com
    ServerAlias www.example.com
	
    <Directory /var/www/example.com>
           #Allowoverride all    ###Uncomment if required
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/example.com.crt
    SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key
	
    ErrorLog ${APACHE_LOG_DIR}/example.com_ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_ssl-access.log combined
</VirtualHost>

以下是用于配置SSL虚拟主机的三个术语:
SSLEngine这个设置为“on”
SSLCertificateFile设置你的SSL证书的路径
SSLCertificateKeyFile——这是私钥文件用于生成SSL certificate

然后使用以下命令启用虚拟主机并重新加载Apache服务:

sudo a2ensite example.com_ssl
sudo systemctl reload apache2.service

Apache服务器的安全设置

编辑Apache安全配置文件

sudo vim /etc/apache2/conf-enabled/security.conf

下面是多个与安全性相关的设置。
添加或更新以下设置。这些设置对于生产服务器非常有用。

ServerTokens Prod
ServerSignature Off
TraceEnable Off
Header always append X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection: "1; mode=block"
Header always set X-Content-Type-Options: "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always edit Set-Cookie ^(.*)$ ;HttpOnly;Secure

现在编辑SSL配置文件。
在这里,我们可以设置服务器范围的SSL协议和SSLCipherSuite来使用安全密码为网站服务。

sudo vim /etc/apache2/mods-enabled/ssl.conf

SSLProtocol -all +TLSv1.2
SSLCipherSuite HIGH:!aNULL:!MD5

做出更改后,重新启动Apache服务以应用新配置。

sudo systemctl reload apache2.service

总结

现在我们在Debian 10 Linux系统上运行了一个安全的Apache服务器。