Troubleshoot and share experiences running Elgg

Pages home > Installation

Installation

Before you begin, make sure you have read Elgg's technical requirements. If you discover problems after following these instructions, check out the troubleshooting page.

1) Upload Elgg

Unzip Elgg and upload it to your site's document root.

2) Create a data folder

Elgg needs a special folder to store uploaded files, including profile icons and photos. You will need to create this for it.

We recommend that this folder is called data. For security reasons this should be stored outside of your document root. For example, if Elgg is installed in /home/elgg/html/, you might create it in /home/elgg/data.

Once this folder has been created, you'll need to make sure Elgg has permission to write to it. This shouldn't be a problem on Windows-based servers, but if your server runs Linux or a UNIX variant, you'll need to type something like:

chmod 777 /home/elgg/data/

If you use a graphical client to upload files, you can usually set this by right or shift-clicking on the folder and selecting 'properties'.

3) Create a database

Using your database administration tool of choice (if you're unsure about this, ask your system administrator), create a new database for Elgg. Make sure you know the username and password necessary to access this.

4) Visit your Elgg site

Once you've performed these steps, visit your Elgg site in your web browser. Elgg will take you through the rest of the installation process from there.

5) A note on settings and .htaccess

The Elgg installer will try and create two files for you:

  • engine/settings.php, which contains the database settings for your installation
  • .htaccess, which allows Elgg to generate dynamic URLs

If these files can't be automatically generated, for example because you don't have the correct directory permissions, Elgg will tell you how to create them. If, for some reason, this won't work, you will need to:

  • Copy engine/settings.example.php to engine/settings.php, open it up in a text editor and fill in your database details
  • Copy /htaccess_dist to /.htaccess

Last updated 699 days ago by Pete Harris

I really don't like leaving a directory open with world:write access even if it is outside the web root. I'm guessing that once the settings.php and .htaccess have been created there would be no neccessity for world:write and I could switch it off with chmod 770? Am I correct? I realise that if I want to make any changes via the web interface I'd need to switch it back but I'd rather manually edit the config files anyway.

MarkP

Markpea 694 days ago

Hi!

I'm completly new in XAMPP and ELGG. I have installed XAMPP, created a database (elgdb).
And I don't know how to go on.

Questions:

1. what is my site's document root?  http://localhost/???   c:\xampp\???       Where can I manage this things?

ShonoSF 688 days ago

Hi

Could someone tell what's wrong with this?

*/
  
  // Database username
   $CONFIG->dbuser = "JB";
   
  // Database password
   $CONFIG->dbpass = "JEROEN66";

  // Database name
   $CONFIG->dbname = "dbelgg";
   
  // Database server
  // (For most configurations, you can leave this as 'localhost')
   $CONFIG->dbhost = "localhost";

Because all I get is this

Elgg couldn't connect to the database using the given credentials JB@driftaut (pw: ****).

The password is 1000% correct

 

Could someone help me please?

JB 680 days ago

i have received this error:

Notice: Undefined property: stdClass::$language in C:\elgg\engine\lib\languages.php on line 87

and after,  bovious.. , this:

http://127.0.0.1/socialissimo/action/systemsettings/install

all is setting right and i'm on php 5 - in localhost

somone knows the problem please?

irwin 416 days ago

I don´t know how to get started elgg under Xampp on System Win Vista Ultimate .

How can I install elgg on local maschine under windows ?

Can´t create the data folder without writing protection. 

Anyone knows how to fix the problem ?

Install.txt doesn´t help really ... i

M2B_De 361 days ago

Hi!

I'm on Media Temple Grid Service. mySQL 5.126 and PHP5. I've been following these instructions: http://www.newlocalmedia.com/blog/59-installing-elgg-12-on-media-temples-grid-server-and-mysql-4

Upon attempting installation, I receive two errors.

Error 1:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{{CONFIG_DBPREFIX}}datalists set name = '__site_secret__', value = 'd5f548c22bfa' at line 1 QUERY: INSERT into {{CONFIG_DBPREFIX}}datalists set name = '__site_secret__', value = 'd5f548c22bfa3515ae1274661c06f040' ON DUPLICATE KEY UPDATE value='d5f548c22bfa3515ae1274661c06f040'

Error 2 (upon refresh)
There were a number of issues: Table '{{CONFIG_DBPREFIX}}config' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}config` (
`name` varchar(32) NOT NULL,
`value` text NOT NULL,
`site_guid` int(11) NOT NULL,
PRIMARY KEY (`name`,`site_guid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}entities' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}entities` (
`guid` bigint(20) unsigned NOT NULL auto_increment,

`type` enum ('object', 'user', 'group', 'site') NOT NULL,
`subtype` int(11) NULL,

`owner_guid` bigint(20) unsigned NOT NULL,
`site_guid` bigint(20) unsigned NOT NULL,
`container_guid` bigint(20) unsigned NOT NULL,
`access_id` int(11) NOT NULL,

`time_created` int(11) NOT NULL,
`time_updated` int(11) NOT NULL,

`enabled` enum ('yes', 'no') NOT NULL default 'yes',

primary key (`guid`),
KEY `type` (`type`),
KEY `subtype` (`subtype`),
KEY `owner_guid` (`owner_guid`),
KEY `site_guid` (`site_guid`),
KEY `container_guid` (`container_guid`),
KEY `access_id` (`access_id`),
KEY `time_created` (`time_created`),
KEY `time_updated` (`time_updated`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}entity_subtypes' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}entity_subtypes` (
`id` int(11) NOT NULL auto_increment,

`type` enum ('object', 'user', 'group', 'site') NOT NULL,
`subtype` varchar(50) NOT NULL,

class varchar(50) NOT NULL default '',

PRIMARY KEY (`id`),
UNIQUE KEY (`type`, `subtype`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}entity_relationships' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}entity_relationships` (
`id` int(11) NOT NULL auto_increment,

`guid_one` bigint(20) unsigned NOT NULL,
`relationship` varchar(50) NOT NULL,
`guid_two` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY (`guid_one`,`relationship`,`guid_two`),
KEY `relationship` (`relationship`),
KEY `guid_two` (`guid_two`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}access_collections' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}access_collections` (
`id` int(11) NOT NULL auto_increment,
`name` text NOT NULL,
`owner_guid` bigint(20) unsigned NOT NULL,
`site_guid` bigint(20) unsigned NOT NULL default '0',

PRIMARY KEY (`id`),
KEY `owner_guid` (`owner_guid`),
KEY `site_guid` (`site_guid`)
) AUTO_INCREMENT=3 ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}access_collection_membership' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}access_collection_membership` (
`user_guid` int(11) NOT NULL,
`access_collection_id` int(11) NOT NULL,
PRIMARY KEY (`user_guid`,`access_collection_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}objects_entity' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}objects_entity` (
`guid` bigint(20) unsigned NOT NULL,

`title` text NOT NULL,
`description` text NOT NULL,

PRIMARY KEY (`guid`),
FULLTEXT KEY (`title`,`description`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}sites_entity' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}sites_entity` (
`guid` bigint(20) unsigned NOT NULL,

`name` text NOT NULL,
`description` text NOT NULL,
`url` varchar(255) NOT NULL,

PRIMARY KEY (`guid`),
UNIQUE KEY (`url`),
FULLTEXT KEY (`name`,`description`, `url`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}users_entity' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}users_entity` (
`guid` bigint(20) unsigned NOT NULL,

`name` text NOT NULL,
`username` varchar(128) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`salt` varchar(8) NOT NULL default '',
`email` text NOT NULL,
`language` varchar(6) NOT NULL default '',
`code` varchar(32) NOT NULL default '',
`banned` enum ('yes', 'no') NOT NULL default 'no',

`last_action` int(11) NOT NULL default '0',
`prev_last_action` int(11) NOT NULL default '0',
`last_login` int(11) NOT NULL default '0',
`prev_last_login` int(11) NOT NULL default '0',

PRIMARY KEY (`guid`),
UNIQUE KEY (`username`),
KEY `password` (`password`),
KEY `email` (`email`(50)),
KEY `code` (`code`),
KEY `last_action` (`last_action`),
KEY `last_login` (`last_login`),
FULLTEXT KEY `name` (`name`),
FULLTEXT KEY (`name`,`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}groups_entity' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}groups_entity` (
`guid` bigint(20) unsigned NOT NULL,

`name` text NOT NULL,
`description` text NOT NULL,

PRIMARY KEY (`guid`),
KEY `name` (`name`(50)),
KEY `description` (`description`(50)),
FULLTEXT KEY (`name`,`description`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}annotations' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}annotations` (
`id` int(11) NOT NULL auto_increment,

`entity_guid` bigint(20) unsigned NOT NULL,

`name_id` int(11) NOT NULL,
`value_id` int(11) NOT NULL,
`value_type` enum ('integer','text') NOT NULL,

`owner_guid` bigint(20) unsigned NOT NULL,
`access_id` int(11) NOT NULL,

`time_created` int(11) NOT NULL,

`enabled` enum ('yes', 'no') NOT NULL default 'yes',

PRIMARY KEY (`id`),
KEY `entity_guid` (`entity_guid`),
KEY `name_id` (`name_id`),
KEY `value_id` (`value_id`),
KEY `owner_guid` (`owner_guid`),
KEY `access_id` (`access_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}metadata' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}metadata` (
`id` int(11) NOT NULL auto_increment,

`entity_guid` bigint(20) unsigned NOT NULL,

`name_id` int(11) NOT NULL,
`value_id` int(11) NOT NULL,
`value_type` enum ('integer','text') NOT NULL,

`owner_guid` bigint(20) unsigned NOT NULL,
`access_id` int(11) NOT NULL,

`time_created` int(11) NOT NULL,

`enabled` enum ('yes', 'no') NOT NULL default 'yes',

PRIMARY KEY (`id`),
KEY `entity_guid` (`entity_guid`),
KEY `name_id` (`name_id`),
KEY `value_id` (`value_id`),
KEY `owner_guid` (`owner_guid`),
KEY `access_id` (`access_id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}metastrings' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}metastrings` (
`id` int(11) NOT NULL auto_increment,
`string` TEXT NOT NULL,

PRIMARY KEY (`id`),
KEY `string` (`string`(50))
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}api_users' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}api_users` (
id int(11) auto_increment,

site_guid bigint(20) unsigned,

api_key varchar(40),
secret varchar(40) NOT NULL,
active int(1) default 1,

unique key (api_key),
primary key (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}users_apisessions' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}users_apisessions` (
`id` int(11) NOT NULL auto_increment,
`user_guid` bigint(20) unsigned NOT NULL,
`site_guid` bigint(20) unsigned NOT NULL,

`token` varchar(40),

`expires` int(11) NOT NULL,

PRIMARY KEY (`id`),
UNIQUE KEY (`user_guid`,`site_guid`),
KEY `token` (`token`)
) ENGINE=MEMORY; Table '{{CONFIG_DBPREFIX}}hmac_cache' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}hmac_cache` (
`hmac` varchar(255) NOT NULL,
`ts` int(11) NOT NULL,

PRIMARY KEY (`hmac`),
KEY `ts` (`ts`)
) ENGINE=MEMORY; Table '{{CONFIG_DBPREFIX}}geocode_cache' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}geocode_cache` (
id int(11) auto_increment,
location varchar(128),
`lat` varchar(20),
`long` varchar(20),

PRIMARY KEY (`id`),
UNIQUE KEY `location` (`location`)

) ENGINE=MEMORY; Table '{{CONFIG_DBPREFIX}}users_sessions' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}users_sessions` (
`session` varchar(255) NOT NULL,
`ts` int(11) unsigned NOT NULL default '0',
`data` mediumblob,

PRIMARY KEY `session` (`session`),
KEY `ts` (`ts`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}datalists' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}datalists` (
`name` varchar(32) NOT NULL,
`value` text NOT NULL,
PRIMARY KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}private_settings' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}private_settings` (
`id` INT NOT NULL auto_increment,
`entity_guid` INT NOT NULL ,
`name` varchar(128) NOT NULL ,
`value` TEXT NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE KEY ( `entity_guid` , `name` ),
KEY `name` (`name`),
KEY `value` (`value` (50))
) ENGINE = MYISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}system_log' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}system_log` (
`id` int(11) NOT NULL auto_increment,

`object_id` int(11) NOT NULL,

`object_class` varchar(50) NOT NULL,
`object_type` varchar(50) NOT NULL,
`object_subtype` varchar(50) NOT NULL,

`event` varchar(50) NOT NULL,
`performed_by_guid` int(11) NOT NULL,

`owner_guid` int(11) NOT NULL,
`access_id` int(11) NOT NULL,

`enabled` enum ('yes', 'no') NOT NULL default 'yes',

`time_created` int(11) NOT NULL,

PRIMARY KEY (`id`),
KEY `object_id` (`object_id`),
KEY `object_class` (`object_class`),
KEY `object_type` (`object_type`),
KEY `object_subtype` (`object_subtype`),
KEY `event` (`event`),
KEY `performed_by_guid` (`performed_by_guid`),
KEY `access_id` (`access_id`),
KEY `time_created` (`time_created`),
KEY `river_key` (`object_type`, `object_subtype`, `event`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; Table '{{CONFIG_DBPREFIX}}river' already exists QUERY: CREATE TABLE `{{CONFIG_DBPREFIX}}river` (
`id` INT NOT NULL AUTO_INCREMENT ,
`type` VARCHAR( 8 ) NOT NULL ,
`subtype` VARCHAR( 32 ) NOT NULL ,
`action_type` VARCHAR( 32 ) NOT NULL ,
`access_id` INT NOT NULL ,
`view` TEXT NOT NULL ,
`subject_guid` INT NOT NULL ,
`object_guid` INT NOT NULL ,
`posted` INT NOT NULL ,
PRIMARY KEY ( `id` ) ,
KEY `type` (`type`),
KEY `action_type` (`action_type`),
KEY `access_id` (`access_id`),
KEY `subject_guid` (`subject_guid`),
KEY `object_guid` (`object_guid`),
KEY `posted` (`posted`)
) ENGINE = MYISAM DEFAULT CHARSET=utf8;;

I'm stuck. Someone, please help.

fogfish 231 days ago

Hi
I do anything that say in this page http://docs.elgg.org/wiki/Installation and http://docs.elgg.org/wiki/Install_EasyPHP but when I going to this "http://localhost/elgg/" address I see only elgg files and not installation progress. Where is problem?
Thank you

aminsanaei 82 days ago

Hi, I'm Jessica and I'm trying Elgg for my business company.

I have this error:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, postmaster@<mysite> and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

 

What's does it mean?

I had download Elgg 1.7.1, hosting Linux Aruba.

Help me, please!

JC

 

Jessy78 80 days ago