如何在Ubuntu云服务器上使用Apache创建网站?

  • 发布时间:2022-01-27 09:58:11
  • 阅读次数:868

Apache使用虚拟主机技术,可以在只有一个IP的服务器上运行多个网站。通过对每个网站的目录设置合理的所有者权限,多个网站的管理和安全也能够保证。这篇文章介绍基于一台Ubuntu 20.04云服务器,使用Apache运行多个网站的方法。

创建目录结构

Apache的默认根目录是/var/www,我们需要对每个网站创建一个单独的目录。下面以example.com,example.net,example.org三个网站为例。

$ sudo mkdir -p /var/www/example.com/public_html
$ sudo mkdir -p /var/www/example.net/public_html
$ sudo mkdir -p /var/www/example.org/public_html

新创建的目录所有者为root用户,我们可以为每个网站设置不同的用户,将每个网站的所有者更改为相应的用户。下面以USER1、USER2、USER3为例。

$ sudo chown -R USER1:USER1 /var/www/example.com/public_html
$ sudo chown -R USER2:USER2 /var/www/example.net/public_html
$ sudo chown -R USER3:USER3 /var/www/example.org/public_html

然后更改以上目录权限为755,755的含义是允许所有人(含访问者)对以上目录读取和执行,但是只有目录的所有者(USER1、USER2、USER3)有写入权限。

$ sudo chmod -R 755 /var/www/example.com/public_html
$ sudo chmod -R 755 /var/www/example.net/public_html
$ sudo chmod -R 755 /var/www/example.org/public_html

确保以上目录中的文件继承根目录的所有者。

$ sudo find /var/www/example.com/public_html -type d -exec chmod g+s {} \;
$ sudo find /var/www/example.net/public_html -type d -exec chmod g+s {} \;
$ sudo find /var/www/example.org/public_html -type d -exec chmod g+s {} \;

创建配置文件

在/etc/apache2/sites-available目录下为每个网站创建单独的配置文件。下面以example.com为例。

$ sudo nano /etc/apache2/sites-available/example.com.conf

在配置文件中添加如下内容:ServerAdmin指令用于设置出现访问错误时的通知邮箱,DocumentRoot指令用于设置网站的根目录,ServerName为网站绑定的域名,访问该域名的请求会指向DocumentRoot根目录下的默认文档。CustomLog指令设置网站访问日志文件的路径,而ErrorLog指令设置网站错误日志文件的路径。

<VirtualHost *:80>
    ServerName example.com
    ServerAdmin admin@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
$ sudo a2ensite example.org.conf
$ sudo a2ensite example.net.conf

禁用默认网站的配置文件,并重启Apache使之生效。

$ sudo a2dissite 000-default.conf
$ sudo systemctl restart apache2

创建网站并测试

接下来给每个网站添加默认首页,就可以对外提供服务了。以example.com网站为例,在根目录下创建index.html文件。

$ sudo nano /var/www/example.com/public_html/index.html

文件内容如下:

<html>
  <head>
    <title>This is example.com website</title>
  </head>
  <body>
    <h1>This is <b>example.com</b> website.</h1>
  </body>
</html>

最后访问:http://example.com ,测试能否正常显示,其他网站的操作方法类似。以上就是在Ubuntu云服务器上,使用Apache运行多个网站的方法。

【全文完】

< 上一篇:如何在Ubuntu云服务器上安装MongoDB、Express、Angular和Node.js? 下一篇:如何在FreeBSD云服务器上使用Apache创建网站? >