Run Your Own Unix Web Server (part 3 of 3)
by Dave Tufts - May 12, 2006 / 10:49am View more articles
Part 3 of 3 / Configuration
I know it's been a while since Part 1 and Part 2 of this series. Sorry for the long delay. I imagine thousands, if not millions, of inquisitive geeks out there with their FreeBSD servers ready to go. Apache, PHP, and MySQL are installed, and they're just waiting, reloading the iMarc blog every couple hour, wondering..."Now What?"Well the wait is over, my furry little geek friends. Cancel your World of Warcraft membership and do what real men do - run a UNIX web server.
In this lesson, we configure Apache and serve up a PHP page.
This document assumes:
- FreeBSD is installed, and you followed the instructions from part 1 of this series
- Apache 2.x and PHP 5.x are installed, and you followed the instructions from part 2 of this series.
- at least one domain name points to your server
The one I'm using is example.com. Replace that with your domain in the references below. - your server has at least one static IP address
The one I'm using is 10.20.111.2. Again, replace my example IP with your real IP below.
Make a home for your website
SSH to your server as the user 'web' and create the website root directory:
mkdir ~/www/example.com
Make a homepage for your site
You can later go back and upload a better site, but for now, we'll just make a quick PHP-driven index page in the website root directory.
Use vi to create and open the index file:
vi ~/www/example.com/index.php
Add the following content:
<?php
for ($i = 0; $i < 10; ++$i) {
echo "I'm a new website
"; } ?>
Save and quit vi. Good. We have a web directory and a home page.
"; } ?>
Edit Apache's configuration file
We need to tell Apache where the new site is. I prefer using name-based Virtual Hosts
Use vi to create and open Apache's config file, called httpd.conf:
vi ~/apache/conf/httpd.conf
Scroll to the bottom and add the following. (Remember, replace my example domain and IP with your real ones)
NameVirtualHost 10.20.111.2:80
# ------------------------------------------------------------------- #
# example.com
# ------------------------------------------------------------------- #
<VirtualHost 10.20.111.2:80>
DocumentRoot /home/www/example.com
ServerName www.example.com
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/example.com.log 604800" combined
DirectoryIndex index.php index.html index.htm
<VirtualHost 10.20.111.2:80>
ServerName example.com
Redirect / http://www.example.com/
Start Apache
Starting and stopping apache requires SuperUser (root) privileges, so type su, and enter root's password.
In case the web server was already running, we'll try and stop it first. If you get an error about apache not running, don't worry...
apachectl stop
Before starting or restarting Apache, I test any configuration edit's I've made.
apachectl configtest
You should get, Syntax OK.
Finally, start the server:
apachectl start
In the future, after making Apache configuration changes, restart the server like this:
apachectl configtest
apachectl graceful
That gracefully stops the server, re-reads the configuration, and starts up again.
Launch Party
Open up your favorite browser and go to the site!
If it worked, pour the Andre Cold Duck, submit your site to Google, jump out of the nest, and flap your wings. You're on your own now!
See Also
Run Your Own Unix Web Server (part 1 of 3) - FreeBSD Installation
Run Your Own Unix Web Server (part 2 of 3) - Software
Run Your Own Unix Web Server (part 3 of 3) - Configuration
Comments have been turned off on this blog.
Read something more recent.
Statements and opinions expressed in this blog and any comments
made are the private opinions of the respective poster, and, as
such, iMarc LLC is neither responsible nor liable for such
content.
5 Comments