Thursday, October 11, 2012

ISP Upgrade & IP Changes == Moodle Fun

Pella Christian Grade School is an awesome place to visit and work. My friend Dave Te Grothenhuis is a terrific educator and technology fan. We on occasion still get to work on some projects related to the Mac installation and networking over at PCGS. Most of the things we tackle on the technology front are pretty reasonable. Today's work was a little more intense than the usual fair.

As the use of computers, iPads and other wireless and wired devices proliferates in schools, the broadband Internet connections need to be upgraded to increase the bandwidth. At PCGS, the local ISP is WindStream and they installed new equipment to get the bandwidth up to 12 Mbps symmetrically. The newly installed equipment will allow for further increases to speed in the future. The technical issue that Dave and I needed to solve was that of IP changes. The new broadband circuit would not carry over the external WAN IP addresses that PCGS had been using on their router and DMZ server. Changes were necessary and not simple changes.

After contacting WindStream to get our new IP scheme and two usable IP addresses for the router WAN interface and the DMZ server's interface, we developed our plan. We realized that the router WAN interface would change, but with firewall services and rules in place, a simple IP number change was not possible. The DMZ also had some rules and services that needed modified in the router software. The total time to modify the router was probably 15 minutes.

WindStream also provide new DNS values and those DNS IP numbers needed to be applied to our servers and other network devices. This included the router, primary OS X server running DNS and DHPC, the DMZ server, and the iBoss content filter device. DNS forwarders were changed and DHCP was adjusted to pass the new DNS numbers. Many of the DHCP leases are 2 days, so it may take awhile for client machines to function at 100% speed on DNS lookups.

The real tricky changes were saved for the last tasks. The DMZ server was given its new static IP address and DNS values. However there are multiple services running on this DMZ server including the Alexandria library software system, the JMC school information system, and the Moodle server. JMC and Alexandria were easily updated and simple redirection and updates to URL bookmarks solved issues with connecting to those services. Moodle was another matter.

Moodle is installed on the OS X Server where Apache, SQL and PHP are part of the standard Apple package install. There are a couple other ways to install Moodle including on top of MAMP or using a manual install of Apache, MySQL and PHP. We simply use the Apple packaged services as part of OS X Server (in our case Snow Leopard).

The MySQL and Apache configuration files did not need modification, however config.php for Moodle does need configured for the new IP address. There are a couple way to do this. The first way is to enter the IP manually. The second way is to use PHP code to insert the IP address in the configuration file.

  • $CFG->wwwroot   = '';
  • $CFG->wwwroot   = "http://"._SERVER["HTTP_HOST"]."/moodle20";

However with all the setting seemingly correct, Moodle would not present the home screen. The blank white screen showed up on the browser whenever going to the URL. So, we tested Apache, MySQL and PHP component and found all were functioning. Apache was tested by bringing up the default OS X web server page. MySQL was tested by using PHPMyAdmin and reviewing the database settings, privileges and tables for Moodle. Of course PHP was running for the MySQL testing, but we pulled up the info.php page to look over the settings.

With all the basics covered, we turned to the web server (Apache) log files and started seeing that errors were showing up in the moodle20/index.php file at line 31. So using TextWrangler, we opened that php file and found that the path to the config.php file was correct. However the Moodle install was no happy and returned file not found errors. So, what is a person to do next?

We went to the Moodle forums and posted a message. Shortly thereafter, we received a response to upgrade from version 2.1 to a new version. Being conservative, I downloaded Moodle version 2.1.8 (stable) and prepared to install it after backing up the current moodle20 folder. Running through the installation process created a new config.php file and updated some of the MySQL tables (minor changes). After finishing the updates, sure enough the Moodle server started working normally again.

After 4 hours of working the solution to the issues of changing IP addresses for your WAN Internet connection, I can safely say it is not something you want to do on a regular basis. But the learning process was also a valuable one. May all your endeavors be as educational.

1 comment:

  1. The fix for the Moodle server turned out to be a bit more complicated than the upgrade. It turns out that the upgrade changed the password MD5 hash setting. So come the next day, no one could login to Moodle, even the super administrator. The solution was to retype password using the phpMyadmin WebUI for MySQL.