Style broken when installing Dokkeos on one local computer then seeing it from another
A frequent question I’ve been asked is why, when installing Dokeos on a local computer, then trying to see it from another computer, the styles are broken (the homepage appears as a list of links from top to bottom).
This is all a question of Name Resolution (or DNS).
How you did it
The initial problem lies on how you did the installation on your local computer: you downloaded Dokeos, then took the easy way and installed it on “http://localhost/dokeos/”, or “http://127.0.0.1”, or even your local IP “http://192.168.0.15” for example. Didn’t you?
Well, Dokeos remembers that, and asks you, during the installation process, what URL you want to access your portal with. You remember that?
Why this is a problem
As Dokeos remembered it, it will now serve the future pages as if they were starting with http://localhost, or whatever name you gave it during the first install. You can check that, from the other computer, by pressing CTRL-U in your navigator. You will see links like this for the query to the stylesheet (CSS): http://localhost/dokeos/main/css/dokeos_blue/default.css. Well, guess what… “localhost” for the secondary computer is not equal to “localhost” for the main computer. In fact, “localhost” on the secondary computer is pretty much itself, so he’s trying to look like this: http://myself/dokeos/main/css…
This means that the secondary computer is expecting Dokeos to be installed locally as well, which, in general, is not the case. If it was the case, you would probably get even more problems in the current situation anyway.
How you should do it
The *best* solution is to give the first computer (the server) a public name. This public name can be a public subdomain name (like courses.yourinstitution.com for example), but this implies an access to defining such a name. This name will be permanent and equal for all, so everybody will know where the computer is and you will define this subdomain name at the moment you install Dokeos, then use it with all the other computers. If you don’t have a permanent internet connexion, however, and you use an external domain name server (the one from your internet service provider for example), this configuration will not work.
The second best solution is to have a local name server and define a name for the Dokeos server on that local domain name server. This works like above except you don’t need an internet connexion for that to work. Sometimes, the router can act like a name server (see your router’s documentation).
The third solution (which is not one of the best one, but still works in a closed environment) is to make sure the server has a fixed, permanent IP address, and define a unique name for the Dokeos server (like say: “www.dokeos.local”) then define this name on every computer (including the server).
Under Linux, this is done by defining a line with the fixed IP address of the Dokeos server, a space, and the given local domain name (www.dokeos.local for example) in the /etc/hosts file (you need root permissions to edit this file).
Under Windows, the same file exists with the same format, but you have to look a bit deeper to find it: C:\Windows\System32\drivers\etc\hosts.
Don’t hesitate to report if you found a better solution.