You'll want to first recheck that your server meets the technical requirements for Elgg. Are you sure that your server is not configured to run in cgi mode or safe mode? Have you verified that mod_rewrite is being loaded? Is the mysql apache being loaded?
Keep notes on steps that you take to fix the install. Sometimes changing some setting or file to try to fix a problem may cause some other problem later on. If you need to start over, just delete all the files, drop your database, and begin again.
Elgg relies on the mod_rewrite Apache extension in order to simulate certain URLs. For example, whenever you perform an action in Elgg, or when you visit a user's profile, the URL is translated by the server into something Elgg understands internally. This is done using rules defined in an .htaccess file, which is Apache's standard way of defining extra configuration for a site.
This error suggests that the mod_rewrite rules aren't being picked up correctly. This may be for several reasons. If you're not comfortable implementing the solutions provided below, we strongly recommend that you contact your system administrator or technical support and forward this page to them.
Instructions for testing mod_rewrite
mod_rewrite isn't installed.
Check your httpd.conf to make sure that this module is being loaded by Apache. You may have to restart Apache to get it to pick up any changes in configuration. You can also use PHP info to check to see if the module is being loaded.
The rules in .htaccess aren't being obeyed.
In your virtual host configuration settings (which may be contained within httpd.conf), change the AllowOverride setting so that it reads:
AllowOverride all
This will tell Apache to pick up the mod_rewrite rules from .htaccess.
You installed Elgg in a subdirectory
See the item below about installing in a subdirectory of your html root.
This is a problem with your mod_rewrite setup (see previous troubleshooting item).
DO NOT, REPEAT, DO NOT change any directory names!
If you're getting errors on installation like:
Not Found. The requested URL /elgg/action/systemsettings/install was not found on this server
Notice that the requested URL begins with elgg. That means you installed Elgg in a subdirectory rather than your site's html document root. You may need to give mod_rewrite a pointer to where your Elgg installation is.
RewriteBase /path/to/your/elgg/installation/ (Don't forget the trailing slash)
Please note that the path you are using is the web path, minus the host.
For example, if your Elgg install is in:
/var/www/html/elgg/
and you view the site by going to http://example.com/elgg/.
Your RewriteBase line should look like:
RewriteBase /elgg/
Maybe there is a problem with the file .htaccess. Sometimes the elgg install routine is unable to create one and unable to tell you that. If you are on this point and tried evrything thats written above:
RewriteBase commented out with an "#"
RewriteBase /path/to/your/elgg/installation/ Don't forget the trailing slash)
Check that the Apache mysql module is installed and is being loaded.
If you see a 404 error during the install or on the creation of the first user with a url like:
http://example.com/homepages/26/d147515119/htdocs/elgg/action/register
that means your site url is incorrect in your sites_entity table in your database. This was set by you on the second page of the install. Elgg tries to guess the correct value but has difficulty with shared hosting sites. Use phpMyAdmin to edit this value to the correct base url.
This is highly server specific so it is difficult to give specific advice. If you have created a directory for uploading data, make sure your http server can access it. The easiest way to do this is give it permissions 777.
Make sure the path is correct and ends with a /. You can check the path in your database in the datalists table.
If you only have ftp access to your server and created a directory but do not know the path of it, you might be able to figure it out from the www file path set in your datalists database table. Asking for help from your hosting help team is recommended at this stage.
If your server uses PHP in the deprecated safe mode, you may need to add the data directory to the open_basedir restrictions. Ask your host for more information.
On certain versions of MAMP, Elgg will either fail to install or have intermittent problems while running.
This is a known issue with MAMP and is related to the Zend Optimizer. Until Zend/MAMP have resolved this issue it is recommended that you turn off the Zend Optimizer in your PHP settings.
While it's true that normal accounts (aside from those created from the admin panel) require their email address to be authenticated before they can log in, the admin account does not.
Once you have registered your first account you will be able to log in using the credentials you have provided!
Don't!
Elgg 1.0 is an entirely new codebase and data model, and is not backwards compatible with Elgg Classic! Additionally, it has different installation requirements.
You must install Elgg 1.0 to a new database, and in a different directory on your server.
We will be providing a way of migrating between 0.92 and 1.0 in due course.
Elgg is not running under PHP 5.
Remember, PHP has three components - the php module, php cli and php cgi. Running php -v on the console and getting 5.x.x back does not necessarily mean that the apache module is running PHP 5!
Confirm you have PHP 5 installed and activated as an apache module.
It is possible that during the process of debugging your install you have broken something else. Make sure that you have confirmed that your server meets Elgg's technical requirements. Test your mod_rewrite. Then do a clean install (drop your elgg database, delete all the files in your elgg directory, and start the process again).
If that fails, you may want to seek the help of the Elgg community by posting at the Elgg users google group or the Elgg community site. Be sure to mention what version of Elgg you are installing, details of your server platform, and any error messages that you may have received including ones in the error log of your server.