Troubleshooting Installations

This quick list is meant to cover common problems in installing li3.

Internal Server Error

Internal server errors are usually a result of bad .htaccess configurations. Make sure unmodified copies of the .htaccess files from the lithium repo are in these places:

  • /.htaccess
  • /app/.htaccess
  • /app/webroot/.htaccess

You might also be running in a directory on your web server that is already under rewrite rules (often URLs that include your username such as http://username.example.com or http://example.com/~username/). This may cause 500 Internal server errors, or in some cases, cause a redirect loop.

In this case you'll need to adjust your .htaccess files to include a RewriteBase directive:

  • /.htaccess => RewriteBase /
  • /app/.htaccess => RewriteBase /app/
  • /app/webroot/.htaccess => RewriteBase /app/webroot/

Make sure to place the RewriteBase directive just after RewriteEngine on.

Images/CSS Broken

Usually this is a result of .htaccess files not being parsed. Make sure that the directives that cover your li3 installation include the following line:

AllowOverride all

Unexpected Character Input

If you get an error that looks like this:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /path/to/lithium/app/webroot/index.php on line 22

This means you're not running PHP 5.3 or later. Please check your PHP version and update as appropriate.

I'm getting a fatal error that looks like this...

Function name must be a string in .../lithium/util/collection/Filters.php on line ...

This is happening because you have eAccelerator installed. eAccelerator is an optimizer / opcode cache for PHP which does not fully support PHP 5.3. The solution is to disable it, and switch to a working, better-supported accelerator, like the builtin Opcache.

If you didn't know you had eAccelerator installed, it's because you're running MAMP, which sometime comes pre-bundled with eAccelerator. In this case, the solution is to man up (or woman up) and get Homebrew. You'll be glad you did.