Part of a presentation I gave at UNC to show people (computer science students) how remarkably easy it is to create your own website that you have full control over.
read more- First, get a linux box. We already have one setup here.
- Just login, run “
apt-get install apache2” - Then, you can just go to the IP and a page will load.
- You do have to have root access.
- Network has to be open on port 80
- Not super useful, you probably want to host from something more than an IP.
Next slide, additions.
- So buy a domain, then setup an A record that points to your server’s IP
- Wait for it to propagate
- Then Apache needs to know what pages to load when someone visits that domain
- That’s where virtual hosts come in
- So first, we’re going to make a directory called “test.com”
- create
index.htmlfile in test.com that says “welcome to test.com”
- Go to
/etc/apache2/sites-available/ - cp default to
test.com.conf - Change
serverNameto test.com - Change
documentRootto/var/www/test.com a2ensitetest.com.conf- then run
service apache2 reload - And you’re done, you can go to your domain in your browser and those files will be loaded
- You can go to
/var/log/apache2/access.logto view the access logs. - You can go to
/var/log/apache2/error.logto view errors, so see 404’s which can be helpful, etc.
Next slide, useful things you should know.
- You can edit the crontab to schedule processes.
Crontab -e. Specify day, hour, minute etc. - As soon as you setup a server that’s publicly addressable, after a while you’ll notice hundreds of login attempts per day, trying to brute force your ssh.
- You can use fail2ban to mitigate, will block offending IPs on a network level temporarily to reduce load and prevent access.
- As a linux server admin, you should enable swap as backup, in case your server does run out of RAM at some point.