Although the development server is primarily meant for my own testing, I do want to get feedback from friends on the layout, readability, colours and other aspects of the design. Unfortunately, a parallel install of WordPress on the live server doesn’t mix well with the existing site, thus both cannot be accessed at the same time. To solve this, I decided to make my private web server publicly accessible.
This seemed like a simple enough task. I expected to be done once I could determine my external IP and then setup port forwarding. However, it was not so easy.
Despite setting up a DynDNS account, I was unable to connect to my server with the chosen address. A bit of hunting on Google revealed complaints from other users that Starhub had blocked port 80, the default http port. My next thought was simply to use another port, but WordPress Multisite cannot work with port numbers in the URL. Luckily, Starhub does not block port 443, so by enabling SSL on Apache and setting it up with a self signed certificate, other people could access the server.
This was where I hit a major roadblock in the process. Even after doing the previous steps, I was still unable to get a connection to the server. The open port utility on DynDNS said the port was open and accepting connections. I finally decided to ask some friends for help in trying out the address. To my surprise, they said they could access the site. Recalling that I had read something about loopback errors on the DynDNS website, I went back to find the information. The problem turned out to be a security setting on the router. The details can be found on this page.
I also discovered that my router has built in firmware to update DynDNS as my external IP address changes. I set up the feature and now no longer have to worry about updating the address manually as it changes. As long as my server is running, others, and myself too, will be able to access the site.