如何在Debian 10上安装和配置Apache
在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服务器。