How to set-up my webserver properly on my local network?

2

1

I have an intranet (inside the network) website, but it is somewhat of a pain. First of all, this is a home network, if that helps anyone. I have a computer running Apache web server with PHP, and I want to point 3 URLs on the local network to it. I have had some success, but it isn't always dependable. For DNS and DHCP I have a Thompson Speedtouch ST546 v6 DSL router.

Edit: I need it for intranet websites, not just file hosting, as I do quite a bit with CMSs.


Rewrite for clarity: I have a computer with three subdomains on the local network pointing to IP address 10.0.0.2, abp.bhc.com, wiki.bhc.com, and server.bhc.com, along with the webserver's personal dns name. I use the SpeedTouch for the DNS, and have complete control over it. It usually works, after I fiddle with it for an hour.

My question is whether there is a more elegant solution than manually adding the domain each time I need another one. It usually seems to work, though.

Here is my current VH file:

NameVirtualHost 10.0.0.2

<VirtualHost 10.0.0.2>
ServerName abp.bhc.com
DocumentRoot "htdocs/abp"
</VirtualHost>
<VirtualHost 10.0.0.2>
ServerName server.bhc.com
DocumentRoot "htdocs/server"
</VirtualHost>
<VirtualHost 10.0.0.2>
ServerName wiki.bhc.com
DocumentRoot "htdocs/wiki"
Alias /wiki htdocs/wiki/wbhc/index.php
</VirtualHost>

Duh, I figured out my immediate problem. The IP Address was set wrong, apparantly because I recently got a new LAN adapter. My question about whether there is a better solution still stands.

Arlen Beiler

Posted 2011-01-22T16:52:52.050

Reputation: 1 108

What type of URLs - ones you can use on your internal network or public ones for the world at large? – Linker3000 – 2011-01-22T16:58:43.913

1@ArlenBeiler: It's unclear what you have tried and what the exact problem is. What OS do you run? – Tamara Wijsman – 2011-01-22T17:05:49.683

Just on the local network. – Arlen Beiler – 2011-01-22T17:19:52.230

@ArlenBeiler: It's still confusing. Is your rewrite the current configuration or is it how you want to have things? Can you give an examples with IP addresses to clarify what the domains are (supposed to) point at? – Tamara Wijsman – 2011-01-22T18:13:20.677

"I have a computer with three subdomains on the local network pointing to IP address 10.0.0.2", how is that computer (the server?) pointing to that IP addreses? By a DNS server, by Hosts file or by VH file? Your other computers are not going to see it you only configure that computer, as they are set to request the router for DNS information which would probably forward the request to your ISP DNS... – Tamara Wijsman – 2011-01-22T18:32:42.727

@ArlenBeiler: There doesn't exist any other solution to point 3 URLs on the local network to your server; you either configure it client-wise in the Hosts file or configure a DNS server that contains the address records. In either way, you will need to point the clients to your server (or your router if you can set address records there)... – Tamara Wijsman – 2011-01-22T19:02:57.993

I know about all that and everything. I want to know if there is a better way than Telneting into the speedtouch and adding the subdomain like that. Is there a good DNS server that I can install on my computer that would do the trick? Or is this the best way? In other words, I have it working, but is there a better way? – Arlen Beiler – 2011-01-22T19:09:28.673

@ArlenBeiler: BIND is the De Facto Standard DNS, you could configure the address records there and set it to forward any unrecognized DNS requests to your router. Then, you could configure your server as the Primary DNS and your router as the Secondary DNS on the clients. This way, you only need to change the configuration on the server, instead of using telnet towards the router. But it's up to you if you want to spend the effort getting BIND working or one of the alternatives...

– Tamara Wijsman – 2011-01-22T19:16:47.913

@ArlenBeiler: You might find questions that help you on our sister site ServerFault, or get help regarding setting up BIND (or an alternative).

– Tamara Wijsman – 2011-01-22T19:18:02.793

Yeah, you've got a lot of similar answers at around the same time. I would suggest picking the most informative one... – Tamara Wijsman – 2011-01-23T19:34:56.860

If you'd just put your above comment in an answer, that is the one I'd accept. – Arlen Beiler – 2011-01-24T12:46:13.707

Answers

1

There's two ways:

  1. Setup your own DNS and configure it.
  2. Add entries the hosts file on each file system you want to access the site.

I'm assuming that you can't change the DNS settings on your router and don't want to setup and configure Bind. To add entries to the hosts file, open up the file (/etc/hosts on Linux c:\windows\system32\drivers\etc\hosts on Window) and add lines like:

192.168.0.1  abp.bhc.com
192.168.0.1  wiki.bhc.com
192.168.0.1  server.bhc.com

shf301

Posted 2011-01-22T16:52:52.050

Reputation: 7 582

Well, I can change the DNS settings on my router, but I'm not sure about setting up BIND. I'll accept this one since option #1 is the most helpful. – Arlen Beiler – 2011-06-18T20:04:39.113

1

If you don't have an internal dns server you can put the ip-adress from your server in the hosts file of all clients and the server like shf301 said. The apache have to be configured with virtual hosts like this:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerAdmin webmaster@dummy-host2.example.com
   DocumentRoot c:/www/wiki
   ServerName wiki.bhc.com
</VirtualHost>

<VirtualHost *:80>
  ServerAdmin webmaster@dummy-host2.example.com
  DocumentRoot c:/www/server
  ServerName server.bhc.com
</VirtualHost>

Documentation: apache virtual hosts

krossner

Posted 2011-01-22T16:52:52.050

Reputation: 11

0

Set up BIND on the nix server.. and give the nix server a static ip.

If you can, change the DNS servers in your router..

first DNS entry should be the static IP of the nix server. second entry should be your ISP's first IP address..

If for some reason you are not able to do the edits in the router, then simply set your DNS staticly on your network card instead.

This keeps you from having to fiddle with host file on your machine or machines that need to see the intranet site.

Jlucas

Posted 2011-01-22T16:52:52.050

Reputation: 1

0

A simple solution if it only has to work for a small number of computers is to use the hosts file on these computers: http://en.wikipedia.org/wiki/Hosts_%28file%29 No need to struggle with DNS then (though your server needs a fixed ip).

kasterma

Posted 2011-01-22T16:52:52.050

Reputation: 171

1That is working fine (or is it, maybe that's the problem!). – Arlen Beiler – 2011-01-22T16:58:30.283

You'll need an ip for each name you want to set up, unless you don't mind using other ports besides 80. – Chuck – 2011-01-22T17:06:41.820

I am using virtual servers. – Arlen Beiler – 2011-01-22T17:07:08.170

Oops, kasterma, I just realized what you mean. I suppose I could, but I am looking for a bit more elegant solution. – Arlen Beiler – 2011-01-22T17:16:10.563

0

Unfortunately, because your IP is probably dynamic, it changes every few days, and thus any domains pointing to it will become in-effectual. The only way around this is to sign up for some sort of Dynamic DNS system, which is where a small program on your computer tells a DNS server your new IP everytime it changes, thus keeping them in sync. Other than that, you could buy a static IP from your ISP, but that's going to be quite expensive. :(

DataWizard

Posted 2011-01-22T16:52:52.050

Reputation: 11

He doesn't need that for an intranet (= local network) host. – Tamara Wijsman – 2011-01-22T17:06:47.437

Oh, you're right. Silly me, I misread his question. Thanks. :) – DataWizard – 2011-01-22T18:27:24.263

0

Purely guessing, your server has a dynamic IP, you might want to consider a static IP instead.

Furthermore, the only way to get the other computer surf to it fine is by setting their hosts files or by setting their DNS to your computer and hosting the DNS yourself, if your server runs 24/7.

Tamara Wijsman

Posted 2011-01-22T16:52:52.050

Reputation: 54 163

1I am using a static IP. – Arlen Beiler – 2011-01-22T17:09:12.427

@ArlenBeiler: And the second part of the answer? – Tamara Wijsman – 2011-01-22T18:11:46.560

The DNS is set on the SpeedTouch and it usually works. – Arlen Beiler – 2011-01-22T18:23:06.140

@ArlenBeiler: You've got to provide more detail if you want us to give you an appropriate answer, DNS is a way too broad topic to just say that it's set. As your SpeedTouch isn't a DNS server but rather a DNS forwarder my guess is that you have just configured the SpeedTouch to forward DNS requests to your ISP DNS, some routers allow to forward specific requests to internal domains though but it's unclear if your router does that... – Tamara Wijsman – 2011-01-22T18:30:20.123

The SpeedTouch has its own DNS server, which I configured somewhat. – Arlen Beiler – 2011-01-22T18:46:56.257

0

You can run dozens of domains (websites) on that machine. Instead of sub domains just use folders. Make a folder in htdocs called say 2011. Then create another folder called blog. Install you blog software in there. Then on the address bar, just type 192.168.0.1/2011/blog . It will work fine.

Joe

Posted 2011-01-22T16:52:52.050

Reputation: 182