APC article: How to Build a Home/Small Business Web Server in no Time
This article goes through a quick and easy process for building a home or small business web server. The finished server will have Web server software, PHP, Perl, Ruby, MySQL, PostgreSQL, quotas, e-mail server software, anti-spam and anti-virus software, and a lot more good stuff. To top it off it will have a Web based GUI to control it all. Read on to learn how.
http://www.apaddedcell.com/building-home-small-business-web-server-fast
This topic is for discussion and questions about the article.
a Padded Cell our articles site!
pr0gr4mm3r posted this at 13:56 — 19th September 2008.
He has: 1,502 posts
Joined: Sep 2006
Is there a reason why you went with Debian? I have always had to use Fedora Core or CentOS because cPanel will only support those. Never heard of VirtualMin, I will have to check that out.
Greg K posted this at 16:11 — 19th September 2008.
He has: 2,145 posts
Joined: Nov 2003
Great article!
Going to grab a spare computer from storage this weekend and give it a try.
-Greg
pr0gr4mm3r posted this at 16:33 — 19th September 2008.
He has: 1,502 posts
Joined: Sep 2006
Just tried this tutorial on a VMWare image. It reminds me a lot about Webmin, which is what I use for my home server. That install script took like 10 minutes, compared to several hours going through other tutorials.
JeevesBond posted this at 23:00 — 19th September 2008.
He has: 3,956 posts
Joined: Jun 2002
When I started out on the article that was all Virtualmin supported, they've added CentOS and Fedora since then (started this article months ago, but never got the time to finish it!)
Also, at heart, I'm a Debian zealot. What is this CentOS you speak of? That's not the Debian way of doing things!
/me Starts flamethrower for yet another daft distro war.
This makes sense, and is why I pitched the article at people building a home/small business server. It probably isn't right for a hosting company (customers demand cPanel/Plesk don't they?)
Virtualmin includes Webmin, the link is on the top left (in case anyone missed it).
Frankly, Virtualmin/Webmin are pretty confusing and ugly interfaces. It's the installer and the functionality that are fantastic. As you said pr0gr4mm3r, it's ~10 minutes to get all the software a Web developer needs.
Greg K: glad you liked it, thanks for the compliments!
a Padded Cell our articles site!
pr0gr4mm3r posted this at 23:15 — 19th September 2008.
He has: 1,502 posts
Joined: Sep 2006
Yup, so I am pretty much tied to it for the time being.
Still beats editing config files though.
Greg K posted this at 06:26 — 19th October 2008.
He has: 2,145 posts
Joined: Nov 2003
Well, here it is, a month later and I finally got to give this article a try.
I must say, all went very smooth, directions are right on on their descriptions and screen shots.
I did two servers, one was an AMD K6-2 450mhz system with 512 ram. For a basic testing server, it wasn't too bad other than some installs taking a while and just about very page in Virtualmin was painfully slow. Once I got through it, had a nice little test server to play with.
Of course, this had me wanting a more realistic server. So I hopped on craigslist, and scored an excellent deal. A mom selling her daughter's desktop computer because it had a virus and she got a laptop.... $50 for complete computer system (HP 3.0ghz Celeron, 40gig drive, cd burner/dvd-rom, 256megs of ram, monitor, keyboard and mouse. And came with recovery partition (that worked).
So I swapped out the HD for another 40g (looking to use a true server soon, so wanted to keep the windows recovery to give this system to someone for Christmas), added in a 512stick i had laying around, and now I'm the proud owner of a web server, that actually has a live domain name tied to it and it available for the world!
A note for those looking to go this route, I have a regular Motorola wireless router, and it has the settings to auto tie into DynDNS's service, and easily allowed me to map out the vitrual servers.
I set them up giving each their own IP address on my system, the server itself was 192.168.38.20, so for the virtual servers, I used .21, .22 & .23.
Now with my router, as it is just me working on the server, I have SSH and FTP for my domain name to use the regular server IP, but HTTP goes to 21. Instead of getting other domains for my "sample servers", I just mapped out the ports. ie:
http://www.domain.com/ -> Virtual server on .21
http://www.domain.com:2080 -> Main server on .20
http://www.domain.com:2180 -> Virtual server on .21
http://www.domain.com:2280 -> Virtual server on .22
http://www.domain.com:2380 -> Virtual server on .23
there may be other ways (ie. actaully setting up a virtual server for domain.com and another for beta1.domain.com etc. just haven't gotten that far. DynDNS will forward *.domain.com to my IP address, so can probably do that.
Anyhow, again great article, Very fast and simple for a beginner to play with.
-Greg
JeevesBond posted this at 12:19 — 22nd October 2008.
He has: 3,956 posts
Joined: Jun 2002
Nice one Greg, am really glad it worked for you!
Have you tried turning some of the services off, particularly the anti-virus? Virtualmin installs everything but
thekitchensink-server
.a Padded Cell our articles site!
Greg K posted this at 14:41 — 22nd October 2008.
He has: 2,145 posts
Joined: Nov 2003
Well as it is now on a decent server, works plenty fine.
The downside was a friends computer running win 2000 had something happen to it, so that IE wouldn't display any pages, and firefox would not even load. The system was running way slow.
So I turned around and sold her the $50 system I just purchased, and in exchange for setting it up for her, I got to also have her old system minus the hard drive, which is a 1.5ghz system with 512 ram, and that is still plenty fast enough for my needs of a server.
So all in all I have followed the guide about 4 times, and thing I could do it without the guide now LOL.
I loved that ti did recognize a USB drive when plugged in, and was able to share that with home systems, however it did it as read only (possibly due to being NTFS). I did find a nice script that would go through and find what /dev/sd## was your usb drive and auto mount it when plugged in. (if you just leave it plugged in all the time, it appears to be the same every time you boot though)
Setting up the share was easy, just also added samba. i think that was it:
apt-get install samba smbclient swat
then at that point can go to http://www.domain.com:901 and administer samba
Maybe that would make a good APC article, setting up samba for use in a home / office environment. I had in the past even played with using samba for user authentication for windows system so you could go to any computer in an office and log in with same settings, and even if you want have the roaming desktop (my files, desktop, etc, forget the actual name for it).
-Greg
Greg K posted this at 20:16 — 24th October 2008.
He has: 2,145 posts
Joined: Nov 2003
Ok, last night I went to actually start using my web server, and came across something I had never seen before.
I FTP'd into the server using the user/name password for Virtual web server to change the "default" home page. When I saved the file though, it didn't write the file, but instead made the already existing file be a zero byte file.
I did a shell login with the same user/password, and was able to change it there.
Then I tried uploading a bunch of pictures to the server. Using FTP, got the same results, it would create a filename on the server, but fail to actually upload them, leaving a zero byte file for each.
I made sure that the directory was owned by the user/group of the person logged in and had the correct permissions, but still no luck.
I have gotten permission errors before where it it wouldn't let me create the file at all, but have never seen where it created the filename but not let the file actually upload. The only thing I can think of is some type of quota system set up.
Anyone have ideas where to look, this is the first time I'm using the VirtualMin thing, let along actual virtual servers, so I'm not sure where to look.
Thanks.
-Greg
pr0gr4mm3r posted this at 20:51 — 24th October 2008.
He has: 1,502 posts
Joined: Sep 2006
I wonder if passive mode isn't working on the ftp connection. Have you tried disabling it? Firewalls will block the passive ports if not configured correctly. May also want to try some transfers in both binary and text mode.
If you were able to so it in a shell, then quota limits shouldn't be an issue.
JeevesBond posted this at 23:24 — 28th October 2008.
He has: 3,956 posts
Joined: Jun 2002
Thanks for the article suggestion by the way, Greg. I may well follow up on that.
Greg K posted this at 23:43 — 28th October 2008.
He has: 2,145 posts
Joined: Nov 2003
Well I'm going to try re-doing the server tongiht, for some reason, on top of the FTP issues, now the server shows that mySQL and FTP both are stopped and will not restart. The only thing I had done was the updates listed in WebAdmin.
-Greg
JeevesBond posted this at 14:37 — 30th October 2008.
He has: 3,956 posts
Joined: Jun 2002
Greg: you might want to look at your system logs (
less /var/log/apt/term.log
andless /var/log/syslog
in particular), there may be some clues as to what went wrong. Also try runningdpkg --configure -a
, it sounds like some package is misconfigured.Hopefully you won't need to re-install, just fix the packages and start the affected services.
a Padded Cell our articles site!
HolyWarlock posted this at 05:34 — 8th January 2009.
They have: 32 posts
Joined: Dec 2008
Nice! Great article!
ithinkimlost posted this at 05:17 — 2nd April 2009.
They have: 2 posts
Joined: Apr 2009
Thanks for the article, however I'm having a problem. I'm trying to run a webserver on an old dell laptop, and i've never seen a webserver nor ran linux before so I might be biting off more than I can chew, but we'll see. FYI I just tried loading Ubuntu and Ubuntu Server but neither worked: Ubuntu - do to my lack of experience with apt-get, configs, make installs and synaptics. Ubuntu Server - due to uncompatibility with my CPU.
Back to the article. I've loaded Debian on the laptop but I'm stuck at the Virtualmin section. After the wget command it has problems resolving software.virtualmin.com is this still the correct address? virtualmin.com doesnt look to be free software. Is there another set of admin tools that come with PHP MySQL that I should use?
Im not even sure that this set up works with installing on a laptop. Is this only for a virtual environment? any suggestions?
Greg K posted this at 19:49 — 2nd April 2009.
He has: 2,145 posts
Joined: Nov 2003
I just set up a server using this article last week. I'll be doing it again tonight due to that server had a flakey NIC in it, so going with a trusted 3com
-Greg
Shaggy posted this at 15:36 — 3rd April 2009.
They have: 121 posts
Joined: Dec 2008
Surely there is a way to configure new hardware without re-installation?
Cheers,
Shaggy.
Greg K posted this at 17:35 — 3rd April 2009.
He has: 2,145 posts
Joined: Nov 2003
Well I'm also swapping around some hard drives, so was just as easy to re-install.
ithinkimlost posted this at 22:45 — 2nd April 2009.
They have: 2 posts
Joined: Apr 2009
Let me know if it works Greg, I'll try it again tonight as well. Any idea on why the command:
wget http://software.virtualmin.com/gpl/scripts/install.sh
chmod +x install.sh
./install.sh
is telling me unable to resolve server. I am writing it on one line with the returns as spaces. The instructions say to copy and paste it in, but im doing it on another computer.
Greg K posted this at 02:40 — 3rd April 2009.
He has: 2,145 posts
Joined: Nov 2003
Unable to resolve server sounds like your the DNS isn't working. (perhaps your ISP's DNS server acting up).
Try editing your /etc/hosts file and add the following line:
70.86.4.226 software.virtualmin.com
This will tell the system where to find software.virtualmin.com and not require a DNS lookup.
I got home late tonight, so not going to do the setup, waiting till this weekend to buy some SCSI drives for my server if I can find some locally.
-Greg
Shaggy posted this at 15:37 — 3rd April 2009.
They have: 121 posts
Joined: Dec 2008
SCSI/SAS drives for a home server? Whoa!
Cheers,
Shaggy.
Greg K posted this at 17:35 — 3rd April 2009.
He has: 2,145 posts
Joined: Nov 2003
see http://www.webmaster-forums.net/server-management/do-you-have-server
Shaggy posted this at 15:34 — 3rd April 2009.
They have: 121 posts
Joined: Dec 2008
Also check the file /etc/resolv.conf
It should list the nameservers the machine should consult for DNS queries.
It should look like
nameserver 1.2.3.4
nameserver 4.5.6.7
where 1.2.3.4 and 4.5.6.7 are reachable, and answer DNS queries for you.
You 'kids' and you're crazy admin consoles!
Cheers,
Shaggy
Greg K posted this at 21:16 — 19th April 2009.
He has: 2,145 posts
Joined: Nov 2003
Well finally got around to redoing my server. Followed the guide and worked fine.
-Greg
Greg K posted this at 23:14 — 19th April 2009.
He has: 2,145 posts
Joined: Nov 2003
Added note for if you are using the server for a site that has a domain through something like dyndns.org
If the server will be getting the dynamic IP address itself, not going through a router, you can use ddclient:
apt-get install ddclient
Prompts you for the info to set the config file for you.
Also with it getting a dynamic IP address, once you set up the first virtual server, go edit the config for it:
nano /etc/apache2/sites-available/DOMAIN.conf
At the top there will the a line that shows yoru current IP address, change it to:
<VirtualHost *:80>
Now, also edit the last line of the apache main config:
nano /etc/apache2/apache2.conf
The very last line will contain the ip address, change this as well to show the following:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
NameVirtualHost *:80
Once you do this, when you set up a new virtual server in VirtualMin, even though it will show the actual ip address in the bottom most section, it will create *:80 in the new config file.
Tip, apparently, Apache will match the IP address BEFORE virtual server names, as even though they were all set up, the first server ahd the actual IP address, and no matter what domain I went to, it took me to the one with the actual IP address.
-Greg
Greg K posted this at 18:28 — 23rd May 2009.
He has: 2,145 posts
Joined: Nov 2003
More notes... MySQL remote access:
By default on this install, mySQL is set to only allow connections from 127.0.0.1
So I did searches on how to set this up. Most top google results come up with the option to use "skip-networking" in the conf. This didn't work. Then I found a comment in the conf file (/etc/mysql/my.conf ):
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
I was like, DUH! so I added this line as well:
bind-address = 192.168.39.20
I have two NIC's installed, eth0 uses a dynamic address and gets handled with DynDNS, and eth1 is a static ip into my home network, which is the one I used so it is only accessible from home.
Anyhow, after a restart of mySQL, this is up and running. I wanted to share this here as like I said, none of the searches I did came up with this.
-Greg
mstardom posted this at 11:20 — 21st December 2009.
They have: 3 posts
Joined: Dec 2009
http://www.apaddedcell.com/building-home-small-business-web-server-fast
This topic is for discussion and questions about the article.
This article is very helpful. Now I will be able to host my own website. It cost so much for hosting services, so by having your own server a lot of money can be saved.
Submit Your News Articles or Opinion Articles to www.mstardom.com
Its Free and Easy. Promote your website to the world for years to come. Post your marketing articles on the Mstardom Blog at www.mstardom.com/blog/main
Post your helpful tips in the Mstardom Forum at www.mstardom.com/forum
mstardom posted this at 11:26 — 21st December 2009.
They have: 3 posts
Joined: Dec 2009
I have been looking for a Forum like this for a long time. I have always wanted to learn the ins and outs of webmastering, and I think I am in the write place.
Submit Your News Articles or Opinion Articles to www.mstardom.com
Its Free and Easy. Promote your website to the world for years to come. Post your marketing articles on the Mstardom Blog at www.mstardom.com/blog/main
Post your helpful tips in the Mstardom Forum at www.mstardom.com/forum
andrewmartin9 posted this at 10:36 — 18th March 2011.
They have: 4 posts
Joined: Mar 2011
Tried this tutorial in a VMWare image. Reminds me of Webmin, which is what I use for my server. Script installation took about 10 minutes, compared with several hours going through other tutorials.
people finder
BruceWilliO posted this at 03:55 — 23rd July 2011.
They have: 4 posts
Joined: Jul 2011
ust tried this tutorial a VMWare picture. It reminds me a lot about Webmin, which is what I use for my server. Script Installation took about0 minutes, compared with several hours going through tutorials.
credit report
Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.