Fresh installation on MacOSX - acli/ATutor GitHub Wiki

Table of Contents

Untangling the system requirements

Not real requirements

  • Apache, PHP5 already included in the OS
  • Just need to enable PHP5 in httpd.conf (which I already did 6 months ago)
  • eAccelerator (or APC / XCache) not strictly necessary though a cache will “reduce server load” so is beneficial
  • (XCache does not work on MacOSX so it’s down to either eAccelerator, APC, or no cache)

Real requirements

  • Need to install MySQL (which is regrettable, since MacOSX actually already has a SQL server included, viz. Postgres)
  • Note post-installation instructions (that are NOT included in the package)

The actual experience of running the installation

What is the “Database User” in Step 2???

Weird system behaviour

  • After starting MySQL, the first time I tried resuming my Mac from sleep, the screen remained blank and the Mac started beeping. I was able to do a google search after it came back for several minutes. According to Google results, I was exhibiting RAM problems.
  • This is pure speculation, of course, but since the timing is so convenient, I’ll speculate that the IA64 version of MySQL is not stable enough for use and will cause system crashes that look like RAM problems.

The No such file or directory mystery

  • After fixing the quoting bug in step 2, I still couldn’t get a database connection
  • Since the error message provided by ATutor is completely useless, I looked at the code, manually added a mysql_error() to the error message, and found myself staring at a “No such file or directory”
  • After a bit of googling, I found the answer to be, apparently, a mismatch of what PHP thinks where the MySQL socket is (/var/mysql, which doesn’t even exist) and where MySQL actually puts it (/tmp)
  • Apache ignored the fixes; Apache needs to be restarted for the changes to take effect

More misleading error messages

  • In step 4, if the directory specified is left in 0755 mode, ATutor produces the misleading error message “Content Directory entered does not exist.”
  • In step 5, if the config.inc.php file does not already exist, ATutor produces the unhelpful error message “../include/config.inc.php does not exist.” (i.e., what directory is “..”?); looking at step5.php, it looks like it is checking for the existence of the wrong file (?!)

And finally, a spelling mistake

At the end of the installation process two things stuck out:

  • I do not have the choice (step 6) of not submitting my ATutor information (so if I tested ATutor multiple times the stats would be heavily compromised)
  • The final screen (step 7) has a button that reads “Log-in!”. This is, of course, incorrect English; it should read “Log in!” (two words, no hyphen).

Summary

Going through ATutor’s installation wizard was an excuciating experience. I was a Unix administrator for a few years and I could not figure out what to do until I delved into the code and added debug print statements. I have great sympathy for those people who are not Unix administrators but have to go through this ordeal.

BUGS OBSERVED:

Serious logic errors

  1. In step 2, if the password contains U+0027, the backend craps out

Usability problems

  1. “Database User” (step 2) is very unclear, and there are no links to any help
  2. Looking at install/include/step2.php, the asterisk for indicating a required field is completely CSS-generated (class=required), but this will not work in text browsers, and obviously will not work on screen readers either
  3. Misleading error message “Content Directory entered does not exist.” (step 4) given for “directory not writable”
  4. Unhelpful error message “../include/config.inc.php does not exist.” (step 5) and very unhelpful and irrelevant help text that says “To change permissions on Unix use chmod a+w then the file name.”
  5. User has no option to opt out of the anonymous data collection (e.g., until a production server is installed)

Grammar and spelling mistakes

  1. “Log-in!” button (step 7) should read “Log in!”

Other unexpected behaviour

  1. In step 2, “Database Password” field is not a password field

POSSIBLE BUGS:

  1. Looking at install/include/step2.php, why is stripslashes() called?

Long-term To-Do

Some sort of scripted test framework need to be in place so that we can run regression tests on all these bugs. This will be, hopefully, in the not-too-far future.

⚠️ **GitHub.com Fallback** ⚠️