Elgg is a social networking framework. It provides the necessary functionality to allow you to run your own social networking site, whether publicly (like Facebook) or internally on a networked intranet (like Microsoft Sharepoint).
Elgg is an award-winning open source social networking engine that provides a robust framework on which to build all kinds of social environments, from a campus wide social network for your university, school or college or an internal collaborative platform for your organization through to a brand-building communications tool for your company and its clients.
Elgg comes with advanced user management and administration, social networking, cross-site tagging, powerful access control lists, internationalisation support, multiple view support (eg cell phones, iPhone), an advanced templating engine, a widget framework and more. It offers blogging, microblogging, file sharing, networking, groups and a number of other features.
Elgg is free to download and use. It is dual licensed under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation and the MIT License. Elgg runs on the LAMP (Linux, Apache, MySQL, and PHP) platform.
A full list is available here Features:
Powerful Data Model
Elgg provides a powerful data model making the creation of different entities simple, yet flexible.
The granular activity stream API ensures your plugins can push the required content to your users.
Use Elgg’s powerful plugin API to build and add your required features.
Elgg handles your user management and relationship requirements.
All objects in Elgg can have an access control level applied making granular access permissions possible.
Web Services API
Expose functionality through the REST API by building a plugin and then either publish the API for other developers to build clients or provide your own.
To run Elgg, you need to have your own web server . Elgg runs on a combination of the Apache web server, MySQL database system and the PHP interpreted scripting language. This is the most popular web server environment in the world.
Due to Elgg’s advanced functionality, there are some extra configuration requirements:
The Apache web server needs to be installed with the following modules:
MySQL 5+ is needed for data storage
PHP 5.2+ needs to be installed as an Apache module (not in CGI mode or safe mode) with the following libraries:
GD and Freetype (for graphics processing, eg user icon rescaling and Captcha)
JSON (for API functionality)
XML (not installed/compiled by default on all systems)
Multibyte String support (for internationalisation)
#yum install mysql mysql-server httpd php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring wget unzip -y
Hence Elgg depends on PHP, MySQL and Apache, it is must to have a working LAMP stack. To install LAMP server, refer the following link.
We have completed all the prerequisites, now start installing Elgg.
Now Download latest version of Elgg from this link http://elgg.org/download/elgg-1.8.18.zip
Unzip the downloaded file elgg-1.8.18.zip
#mv elgg-1.8.18 /var/www/html/elgg
#chmod -R 755 /var/www/html/elgg
#chown -R apache:apache /var/www/html/elgg
#chmod -R 755 /opt/data
# cp htaccess_dist .htaccess
Now open the Apache configuration file located at /etc/httpd/conf/httpd.conf
Change AllowOverride None to AllowOverride All inside the DocumentRoot Directory Directive, normally <Directory “/var/www/html”>
Allow from all
It is recommended that you increase the memory available to PHP threads beyond the standard 8 or 12M, and increase the maximum uploaded filesize (which defaults to 2M) in /etc/php.ini .
#service httpd restart
#chkonfig httpd on
Create MySQL Database for elgg:
Create a database for elgg called elgg and database user called elgg with password “bhuvi”
#mysql -u root -p
mysql> create database elgg;
mysql> create user ‘elgg’@’localhost’ identified by ‘bhuvi’;
mysql> GRANT ALL PRIVILEGES ON elgg.* to ‘elgg’ IDENTIFIED BY ‘bhuvi’;
mysql> flush privileges;
mysql> exit Bye
#service mysqld restart
Adjusting firewall and SELinux:
Open the Apache default port 80 through your firewall/router and disable the SELinux:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state –state NEW –dport 3306 -j ACCEPT
-A INPUT -p tcp -m state –state NEW –dport 3306 -j ACCEPT
-A INPUT -p udp -m state –state NEW –dport 80 -j ACCEPT
-A INPUT -p tcp -m state –state NEW –dport 80 -j ACCEPT
-A INPUT -p udp -m state –state NEW –dport 53 -j ACCEPT
-A INPUT -p tcp -m state –state NEW –dport 53 -j ACCEPT
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
We have done with configuration, Let us log in to Elgg. Navigate to http://ip-address/elgg.
Now enter the Site Name, Site Administrator email ID and data directory path as shown below. Click Next.
Now create the Admin account for elgg. Fill up details and click Next.
Now your new social network has been created. Click Go to site to get started.
Now login with user recently created.
This is how your Administration Dashboard will appear for my site.From here, the users can create new blogs, pages, files, groups and so on.
Then i installed some plugins and modified some settings in admin panel, which look like facebook.
For Plugins and more detail see this link http://docs.elgg.org/wiki/Main_Page