如果您要创建基于PHP语言的项目,那么可以搭建LAMP环境或者LNMP环境。本文主要介绍在Ubuntu20.04上安装Apache2并配置虚拟主机的操作方法。所以默认您已经安装了Mysql和PHP。
安装Apache2
要在Ubuntu 20.04上安装Apache2,请执行以下步骤:
- 更新软件包列表:
sudo apt update
- 安装Apache2:
sudo apt install apache2
- 启动Apache2服务:
sudo systemctl start apache2
- 设置Apache2开机自启动:
sudo systemctl enable apache2
安装完成后,可以在浏览器中访问服务器IP或者域名,以检查Apache是否已成功安装和启动。
如果在Ubuntu中启用了防火墙(ufw),则需要配置防火墙以允许通过HTTP和HTTPS请求。您可以使用以下命令来配置防火墙:
sudo ufw allow 'Apache'
此命令将允许Apache通过防火墙并启用ufw。然后您可以使用以下命令检查防火墙规则状态:
sudo ufw status
如果您不使用ufw,则不需要配置防火墙。
创建Apache虚拟主机
创建Apache虚拟主机需要执行以下步骤:
- 创建新的网站目录:
sudo mkdir -p /var/www/example.com/public_html
- 设置目录所有者:
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有以下主要区别:
- 访问权限:如果将目录设置为当前用户所有,则该用户将拥有该目录中文件和文件夹的完全访问权限。如果将目录设置为www-data所有,则Apache服务将拥有该目录中文件和文件夹的访问权限,但是您不能以该身份访问该目录。
- 安全性:将目录设置为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服务不会对系统造成任何损害。
- 创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/example.com.conf
- 在配置文件中输入以下内容:
<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>
- 使用a2ensite命令启用虚拟主机:
sudo a2ensite example.com.conf
- 重新加载Apache:
sudo systemctl reload apache2
现在,当您在浏览器中访问example.com时,将显示您的新网站。请注意,您还需要将DNS记录指向您的服务器IP地址。
如果您还想再创建另外一个网站,或者创建多个网站。那么可以按照以下步骤操作:
- 创建一个目录作为网站的根目录。在您选择的位置创建一个新目录,例如/var/www/example2.com/public_html,并将其命名为您希望网站名称的名称。例如:
sudo mkdir /var/www/example2.com/public_html
- 将该目录的所有者设置为用于运行Apache的用户,这样可以避免没有上传和写入权限。例如:
sudo chown -R www-data:www-data /var/www/example2.com/public_html
- 创建一个虚拟主机配置文件。在Apache配置目录(一般为/etc/apache2/sites-available)中创建一个新的配置文件,并将其命名为您的网站名称,例如example2.com.conf:
sudo nano /etc/apache2/sites-available/example2.com.conf
- 在配置文件中添加以下内容:
<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
- 使用以下命令启用新的虚拟主机:
sudo a2ensite example2.com.conf
- 重启Apache服务器以使更改生效:
sudo systemctl restart apache2
- 在DNS设置中添加一个A记录,将域名映射到你的服务器的IP地址。
现在,你已经完成了创建新网站的步骤。如果您还想创建更多的网站,那么重复执行上面的步骤即可。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-install-the-apache-and-set-up-apache-virtual-hosts-on-ubuntu-20-04/