Configure Apache Virtual Hosts - CentOS 7
Difficulty: 2
Time: 15 minutes
Want to host websites on your server? Using Apache? Great. This article will show you how to do exactly that using Apache’s “virtual hosts.”
In Apache, you can use virtual hosts to direct http traffic for a given domain name to a particular directory (i.e. the root directory of the website for the domain in the request). This feature is commonly used to host multiple websites, but we recommend using it for every website on your server including the first.
Throughout this article, we'll use an example domain - coolexample.com - but you should replace it with the domain name or subdomain you want to host on your server.
Install the Apache web server
To get Apache on your server, you can either install it as part of a LAMP stack, or you can install Apache by itself:
- Update your packages using
yum:sudo yum update - Install Apache:
sudo yum install httpd
- Start up Apache, so that the httpd service will start automatically on a reboot:
sudo service httpd start
Set up the virtual host
- Create the virtual directories for your domain:
sudo mkdir -p /var/www/coolexample.com/public_html
- Change the ownership to the Apache group:
sudo chown -R apache:apache /var/www/coolexample.com/public_html
This lets Apache modify files in your web directories.
- Change the directory's permissions so they can be read from the internet:
sudo chmod -R 755 /var/www/
Create content for the website
If you have the content for the website prepped, you can upload it to the /public_htmlfolder you created in the last section.
If you don't have content ready to upload, you can create a sample home page (also known as an index file, which is the first page that loads when visitors come to your domain).
- Create the index file:
sudo vim /var/www/coolexample.com/public_html/index.html
- Add some content to the file:
<html>
<head>
<title>Welcome to my site!</title>
</head>
<body>
<h1>Hooray! Your virtual host is working!</h1>
</body>
</html> - Save and close the file:
:wq!
Configure your virtual host directories
We're going to copy a configuration usually used in Ubuntu/Debian and create two directories: one to store the virtual host files (sites-available) and another to hold symbolic links to virtual hosts that will be published (sites-enabled).
Create sites-available and sites-enabled directories
- Create the directories:
sudo mkdir /etc/httpd/sites-availablesudo mkdir /etc/httpd/sites-enabled
Edit your Apache configuration file
Edit the main configuration file (httpd.conf) so that Apache will look for virtual hosts in the sites-enabled directory.
- Open your config file:
sudo vim /etc/httpd/conf/httpd.conf
- Add this line at the very end of the file:
IncludeOptional sites-enabled/*.conf
This way, we're telling Apache to look for additional config files in the
sites-enableddirectory. - Save and close the file:
:wq!
Create virtual host file
We're going to build it from a new file in your sites-available directory.
- Create a new config file:
sudo vim /etc/httpd/sites-available/coolexample.com.conf
- Paste this code in, replacing your own domain for coolexample.com.conf.
Here's what the whole file could look like after your changes:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.coolexample.com
ServerAlias coolexample.com
DocumentRoot /var/www/coolexample.com/public_html
ErrorLog /var/www/coolexample.com/error.log
CustomLog /var/www/coolexample.com/requests.log combined
</VirtualHost>
The lines ErrorLog and CustomLog are not required to set up your virtual host, but we've included them, in case you do want to tell Apache where to keep error and request logs for your site.
- Save and close the file:
:wq!
- Enable your virtual host file with a sym link to the
sites-enableddirectory:sudo ln -s /etc/httpd/sites-available/coolexample.com.conf /etc/httpd/sites-enabled/coolexample.com.conf - Restart Apache:
sudo service httpd restart
Point your domain name to your server
If your domain name isn't currently loading another website, you should point it to your server to test your new config.
How you do this depends on where your domain name is registered and whose server you're using:
| Domain registered? | Server hosted? | Do this... |
|---|---|---|
| GoDaddy | GoDaddy | Point your domain name to a server |
| Another company | GoDaddy | Find a server's public IP address and then update your domain name's primary ("@") A record. |
| GoDaddy | Another company | Find your server's IP address, and then change your domain's IP address to use it. |
| Another company | Another company | Find your server's IP address, and then change your domain's IP address to use it. |
Changes to your domain can take up to 48 hours to display across the internet. However, once they do, you can visit your domain name and view the test page you created earlier!
Adding additional virtual hosts
To create additional sites, repeat the following sections:
- Set up the virtual host
- Create content for the website
- Create virtual host file — but for additional virtual hosts, you will need to create new config files in
/etc/httpd/sites-available/, for example:/etc/httpd/sites-available/your second domain name - Point your domain name to your server
Configure Apache Virtual Hosts - CentOS 7的更多相关文章
- How To Set Up Apache Virtual Hosts on CentOS 6
About Virtual Hosts 虚拟主机,用于在一个单一IP地址上,运行多个域.这对那些想在一个VPS上,运行多个网站的人,尤其有用.基于用户访问的不同网站,给访问者显示不同的信息.没有限制能 ...
- [转]Windows 下 Apache Virtual hosts 简单配置
From : http://blog.csdn.net/wuerping/article/details/4164362 /* Author : Andrew.Wu [ Created on : 20 ...
- Virtual Box + CentOS Minimal + Apache搭建Web服务器
本文并不介绍关于Virtual Box, CentOS, Apache的安装, 主要针对安装后相关的配置, 使宿主机(Host)可以访问客户机(Guest: CentOS in Virtual Box ...
- #Virtual hosts #Include conf/extra/httpd-vhosts.conf 开启就不能启动apache
#Virtual hosts#Include conf/extra/httpd-vhosts.conf我只要把其中任何一个开启就是吧#去掉就启动不了apache.怎么回事error.log是这样的ht ...
- Building Apache Thrift on CentOS 6.5
Building Apache Thrift on CentOS 6.5 Starting with a minimal installation, the following steps are r ...
- Apache配置基于IP的虚拟主机 Apache virtual host configuration is based on the IP
Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Virtual hosts Include conf/extra/httpd-v ...
- Apache配置基于端口号的虚拟主机 Apache virtual host configuration is based on the port
有可能只有一个ip出口,但却有多个项目,那么就需要基于端口号架设虚拟主机. Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Vi ...
- [译]rabbitmq 2.4 Multiple tenants: virtual hosts and separation
我对rabbitmq学习还不深入,这些翻译仅仅做资料保存,希望不要误导大家. With exchanges, bindings, and queues under your belt, you mig ...
- Install and Configure Apache Kafka on Ubuntu 16.04
https://devops.profitbricks.com/tutorials/install-and-configure-apache-kafka-on-ubuntu-1604-1/ by hi ...
随机推荐
- SQL 2008 R2下载 升级R2 SP1或者SQL 2008从10.50.1600升级10.5.2500
SQL Server 2008 R2 中英文 开发版/企业版/标准版 链接地址 一. 简体中文 1. SQL Server 2008 R2 Developer (x86, x64, ia64) - D ...
- 日常总结——JSP篇(补)
序—— 初次接触JSP,写一个登录注册界面 正文—— JSP介绍:JSP通过在标准的HTML页面中插入java代码,其静态的部分无须java程序控制.每个JSP页面就是一个servlet实例, WEB ...
- windows下自动FTP的脚本
之前发过一篇如何自动FTP的文章,不过当时的脚本都是在Unix下测试通过的.而如果在windows下实现自动FTP的功能,则需要通过如下方式: 1. 建立ftp123.bat文件 open I ...
- Sql Server 中一个非常强大的日期格式化函数
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONV ...
- div嵌套导致子区域margin-top失效不起作用的解决方法
有两个嵌套关系的div,如果外层div的父元素padding值为0, 那么内层div的margin-top或者margin-bottom的值会"转移"给外层div,使父元素产生上外 ...
- Android Studio 自定义debug签名文件keystore
Android Studio 自定义debug签名文件keystore
- RK 61 键盘 Ubuntu 下键位映射修改方案
在用户 Home 目录下面创建 .Xmodmap 文件,然后输入以下的内容: remove Lock = Caps_Lock remove Control = Control_L remove Con ...
- 网易测试分享会——“一起打造你想要的QA团队”
昨天(2016.11.30)参加了网易资深测试专家王晓明的测试分享会——“一起打造你想要的QA团队”,以下为笔者做的归纳总结. 重点 1.让测试更加容易做好.不容易测试的代码,不具有健壮性. 2.Ke ...
- 使用 Python 切割图片
刚好我有张 PNG 图片需要均匀切割,刚好我不会 PhotoShop,刚好我想用 Python 来练练手. 于是撸袖子码脚本. import os from PIL import Image def ...
- ROCKETMQ源码分析笔记1:tools
rocketmq源码解析笔记 大家好,先安利一下自己,本人男,35岁,已婚.目前就职于小资生活(北京),职位是开发总监. 姓名DaneBrown 好了.我保证本文绝不会太监!转载时请附上以上安利信息. ...