Ubuntu 20.04安装Apache2及配置虚拟主机

如果您要创建基于PHP语言的项目,那么可以搭建LAMP环境或者LNMP环境。本文主要介绍在Ubuntu20.04上安装Apache2并配置虚拟主机的操作方法。所以默认您已经安装了Mysql和PHP。

安装Apache2

要在Ubuntu 20.04上安装Apache2,请执行以下步骤:

  1. 更新软件包列表:
sudo apt update
  1. 安装Apache2:
sudo apt install apache2
  1. 启动Apache2服务:
sudo systemctl start apache2
  1. 设置Apache2开机自启动:
sudo systemctl enable apache2

安装完成后,可以在浏览器中访问服务器IP或者域名,以检查Apache是否已成功安装和启动。

如果在Ubuntu中启用了防火墙(ufw),则需要配置防火墙以允许通过HTTP和HTTPS请求。您可以使用以下命令来配置防火墙:

sudo ufw allow 'Apache'

此命令将允许Apache通过防火墙并启用ufw。然后您可以使用以下命令检查防火墙规则状态:

sudo ufw status

如果您不使用ufw,则不需要配置防火墙。

创建Apache虚拟主机

创建Apache虚拟主机需要执行以下步骤:

  1. 创建新的网站目录:
sudo mkdir -p /var/www/example.com/public_html
  1. 设置目录所有者:
sudo chown -R $USER:$USER /var/www/example.com/public_html

如果您不知道当前用户名,可以使用以下命令查找当前用户名:

whoami

然后,将上述命令的输出,作为目录所有者,如下所示:

sudo chown -R $(whoami):$(whoami) /var/www/example.com/public_html

这将设置当前用户为目录所有者,并使该用户具有对目录中文件和文件夹的完全控制权。

另外,我们也可以将目录设置为www-data用户所有,牛奇网也建议您这样做。

设置网站目录所有者为当前用户和设置所有者为www-data有以下主要区别:

  1. 访问权限:如果将目录设置为当前用户所有,则该用户将拥有该目录中文件和文件夹的完全访问权限。如果将目录设置为www-data所有,则Apache服务将拥有该目录中文件和文件夹的访问权限,但是您不能以该身份访问该目录。
  2. 安全性:将目录设置为www-data所有可以提高系统的安全性,因为Apache服务在该身份下运行时具有有限的权限,不能对系统造成损害。如果将目录设置为当前用户所有,则该用户具有对目录中文件和文件夹的完全控制,因此可能会存在安全漏洞。

因此,根据您的需求,您可以选择将网站目录设置为当前用户或www-data用户所有,并评估每种选项对安全性和访问权限的影响。

sudo chown -R www-data:www-data /var/www/example.com/public_html

Apache服务可以以不同的用户身份运行,具体取决于它在系统上的配置。常见的Apache用户身份包括:

  • www-data:这是Debian和Ubuntu系统中Apache服务默认运行的用户。
  • apache:这是Red Hat系统中Apache服务默认运行的用户。
  • nobody:这是Apache服务在某些古老的系统中运行的用户。

实际上,Apache服务可以以任何用户身份运行,但通常应该选择一个具有限制权限的用户,以确保Apache服务不会对系统造成任何损害。

  1. 创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/example.com.conf
  1. 在配置文件中输入以下内容:
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. 使用a2ensite命令启用虚拟主机:
sudo a2ensite example.com.conf
  1. 重新加载Apache:
sudo systemctl reload apache2

现在,当您在浏览器中访问example.com时,将显示您的新网站。请注意,您还需要将DNS记录指向您的服务器IP地址。

如果您还想再创建另外一个网站,或者创建多个网站。那么可以按照以下步骤操作:

  1. 创建一个目录作为网站的根目录。在您选择的位置创建一个新目录,例如/var/www/example2.com/public_html,并将其命名为您希望网站名称的名称。例如:
sudo mkdir /var/www/example2.com/public_html
  1. 将该目录的所有者设置为用于运行Apache的用户,这样可以避免没有上传和写入权限。例如:
sudo chown -R www-data:www-data /var/www/example2.com/public_html
  1. 创建一个虚拟主机配置文件。在Apache配置目录(一般为/etc/apache2/sites-available)中创建一个新的配置文件,并将其命名为您的网站名称,例如example2.com.conf:
sudo nano /etc/apache2/sites-available/example2.com.conf
  1. 在配置文件中添加以下内容:
<VirtualHost *:80>
  ServerName example2.com
  ServerAlias www.example2.com
  DocumentRoot /var/www/example2.com/public_html
  ErrorLog ${APACHE_LOG_DIR}/example2.com-error.log
  CustomLog ${APACHE_LOG_DIR}/example2.com-access.log combined
</VirtualHost>
  • ServerName:设置您的网站名称,例如example2.com
  • ServerAlias:设置您的网站别名,例如www.example2.com
  • DocumentRoot:设置您的网站目录路径,例如example2.com/public_html
  1. 使用以下命令启用新的虚拟主机:
sudo a2ensite example2.com.conf
  1. 重启Apache服务器以使更改生效:
sudo systemctl restart apache2
  1. 在DNS设置中添加一个A记录,将域名映射到你的服务器的IP地址。

现在,你已经完成了创建新网站的步骤。如果您还想创建更多的网站,那么重复执行上面的步骤即可。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-install-the-apache-and-set-up-apache-virtual-hosts-on-ubuntu-20-04/

(0)
牛奇网牛奇网
上一篇 2023年2月1日 下午8:41
下一篇 2023年2月3日 下午12:29

相关推荐

发表回复

登录后才能评论