# apache虚拟机配置 [TOC] ## 安装apache ``` sudo apt install apache2 ``` ## 配置UFW防火墙 为了配置Apache,我们首先需要允许外部访问我们系统的某些Web端口,并在您的UFW防火墙上允许Apache。 第1步:列出UFW应用程序配置文件 为了配置防火墙,让我们首先列出我们启用Apache访问所需的应用程序配置文件。 使用以下命令列出此类可用应用程序 ``` sudo ufw app list ``` ![](https://i.loli.net/2019/05/07/5cd18197a02e2.png) 在上面的输出中,您可以看到三个Apache配置文件都提供不同级别的安全性; Apache是一个提供最大限制但端口80仍处于打开状态的Apache。 步骤2:在UFW上允许Apache并验证其状态 在UFW上允许Apache将为网络流量打开端口80,同时为服务器提供最大的安全性。 请通过以下命令配置UFW以允许Apache ``` sudo ufw allow 'Apache' sudo ufw status ``` ![](https://i.loli.net/2019/05/07/5cd181faa3d1a.png) ## 配置Apache Web服务器 第一步是通过以下命令验证Apache2服务是否在您的系统上启动并运行 ``` sudo systemctl status apache2 ``` ![](https://i.loli.net/2019/05/07/5cd18668a6492.png) 状态:active(running)验证apache2服务是否正在运行 ## 在Apache中设置虚拟主机 虚拟主机类似于Nginx中的服务器块。 它用于管理来自一个服务器的多个域的配置。 我们将提供一个如何通过Apache服务器设置虚拟主机的示例。 我们将使用Apache for Ubuntu 18中默认启用的服务器块来建立一个名为linuxidc.com的网站。 第1步:设置域名 默认情况下启用的服务器块能够提供来自 /var/www/html的文档。 但是,我们将在/var/www/创建一个目录,保留默认目录。 通过以下命令创建此目录,将linuxidc.com替换为您各自的域名。 sudo mkdir -p /var/www/linuxidc.com/html 然后通过以下命令分配目录的所有权: sudo chown -R $USER:$USER /var/www/linuxidc.com/htmlsudo chmod -R 755 /var/www/linuxidc.com 现在让我们创建一个索引页面,如果Apache运行我们的域名,我们以后可以访问它们进行测试。 通过Nano编辑器或任何您喜欢的文本编辑器创建HTML文件。 nano /var/www/linuxidc.com/html/index.html 为索引页输入以下HTML: 欢迎来到Linux公社页面 [www.linuxidc.com](http://www.linuxidc.com) 你真是棒! 您的linuxidc.com服务器块已启动!我们使用nano编辑器来创建HTML文件。 您可以使用Ctrl + X将文件保存为nano,然后输入Y并按Enter键。 Apache需要一个虚拟主机文件来提供服务器的内容。 已经创建了用于此目的的默认配置文件,但我们将为自定义配置创建一个新配置文件 ``` sudo vim /etc/apache2/sites-available/linuxidc.com.conf ``` ``` <VirtualHost *:80> ServerAdmin admin@linuxidc.com ServerName linuxidc.com ServerAlias www.linuxidc.com DocumentRoot /var/www/linuxidc.com/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> ``` ``` sudo a2ensite linuxidc.com.conf ``` 输出将建议激活新配置,但我们可以在运行以下禁用原始配置文件的命令后集体执行此操作 ``` sudo a2dissite 000-default.conf sudo systemctl restart apache2 ``` 最后,让我们通过以下命令测试是否存在任何配置错误 ``` sudo apache2ctl configtest ``` 如果您没有收到任何错误,您将获得以下输出: Syntax OK 但是,Ubuntu 18.04中常见以下错误 **AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message\*\*\*\*Syntax OK** 解决错误: 输入以下命令以解决上述错误 ``` echo "ServerName linuxidc.com" | sudo tee /etc/apache2/conf-available/servername.conf sudo a2enconf servername ``` 现在,当您再次检查错误时,您将看到通过以下输出解决了此错误 ``` sudo apache2ctl configtest ``` Syntax OK Apache 2网页中文乱码的解决方法 ``` sudo nano /etc/apache2/conf-available/charset.conf ``` 修改charset.conf的AddDefaultCharset UTF-8,把AddDefaultCharset UTF-8前面的#去掉即可 然后重启apache2 ``` sudo systemctl restart apache2 ``` ## 转载至:LINUX公社 地址:[https://www.linuxidc.com/Linux/2018-11/155507.htm](https://www.linuxidc.com/Linux/2018-11/155507.htm)