====== Web Directories Spread Thin on LVM Toast. Yum! ======
John set a fire in my pants. That fire was the passion to organize the way I store websites on my server.
Basically, we setup a logical volume for each virtual server. Here's the directory layout:
* www
* dev
* eat8bit
* htdocs
* logs
* includes
The directories dev and eat8bit are actually mounted as separate logical volumes.
So let's start at the beginning, setting up your partition.
===== Mark That Shit Son! =====
First and foremost, you must mark your partition as Linux LVM. So fire up the console and enter the commands as follows:
root@dangerunit0~# fdisk /dev/hde
Command (m for help): p
Disk /dev/hde: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hde1 1 14593 117218241 83 Linux
We can see that our drive has a partition that is marked as a standard Linux partition, we'll have to change that. The Id for a Linux LVM is 8e, so let's change it now:
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Command (m for help): p
Disk /dev/hde: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hde1 1 14593 117218241 8e Linux LVM
Command (m for help): w
You should do this for each disk/partition you plan to use in your volume group.
Now that we've successfully labeled are partition(s) as Linux LVM we can move forward to step 2, creating physical volumes.
===== Create the Volume, Physically =====
Pretty straight forward. We just execute the below command for each partition we marked above.
root@dangerunit0~# pvcreate /dev/hde1
===== Add Them to Your Volume Group =====
Now we add the partitions to our volume group. I called my group "WebVG0"
root@dangerunit0~# vgcreate WebVG0 /dev/hde1
===== The Final Steps: Creating the Logical Volumes =====
That empty volume group is looking mighty fertile. Let us plant the seed:
root@dangerunit0~# lvcreate -L 500M -n eat8bit WebVG0
Then we must make it a filesystem.
root@dangerunit0~# mke2fs -j /dev/WebVG0/eat8bit
I'm using ext3, so modify this step according to your filesystem of choice
and mount it
root@dangerunit0~# mount /dev/WebVG0/eat8bit /www/eat8bit
You're going to want to add this to your fstab also. For further reference, check out [[http://tldp.org/HOWTO/LVM-HOWTO/commontask.html|LVM HowTo - Common Tasks]]
And that's it. Your new web directory is ready for use, so let's make the directories and edit our apache config.
===== Setting Up the Web Directory =====
Let's make the directories:
root@dangerunit0~# mkdir /www/eat8bit/htdocs /www/eat8bit/includes /www/eat8bit/log
And now we edit our vhosts config file:
root@dangerunit0~# vi /etc/httpd/extra/httpd-vhosts.conf
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#
ServerName eat8bit.com
DocumentRoot /www/eat8bit/htdocs
ServerAlias www.eat8bit.com
ServerAdmin abledanger@eat8bit.com
ErrorLog /www/eat8bit/log/error_log
CustomLog /www/eat8bit/log/access_log common
Write the new VirtualHost directive to the file then restart apache:
root@dangerunit0~# apachectl restart
Congratulations!!! You have now completed the setup of your Web Directory on its own LV. For each additional website, just repeat the process from the [[https://wiki.thoughtbit.com/linux:server:lvm#the_final_stepscreating_the_logical_volumes|lvcreate command]] down.
{{tag>:linux :linux:server}}