Pligg is an open-source CMS social publishing software that encourages visitors to register on your website so that they can submit content and connect with other users. It is used to setup your own social publishing community in just minutes.
In this article, I use CentOS 6.4 to setup this website. My hostname and IP Address are server.unixmen.com and 192.168.1.200/24 respectively. Change these values as per your setup.
Prerequisites
Install the following prerequisites to install and configure Pligg:
[[email protected] ~]# 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
Start/Restart MySQL and Apache services now:
[[email protected] ~]# /etc/init.d/mysqld start [[email protected] ~]# /etc/init.d/httpd start [[email protected] ~]# chkconfig mysqld on [[email protected] ~]# chkconfig httpd on
Create MySQL Root user password:
[[email protected] ~]# /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL      SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables..  ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n]  ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n]  ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n]  - Dropping test database...  ... Success!  - Removing privileges on test database...  ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n]  ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
Create MySQL Database and user for Pligg:
Here I create a database ‘pliggdb’ and user ‘pliggadmin’ with password ‘centos’:
[[email protected] ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.69 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database pliggdb; Query OK, 1 row affected (0.01 sec) mysql> GRANT ALL PRIVILEGES ON pliggdb.* TO 'pliggadmin' IDENTIFIED BY 'centos'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> exit Bye
Open the Apache default port 80 through your firewall/router:
[[email protected] html]# vi /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -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 COMMIT
Restart the iptables to save the changes:
[[email protected] html]# /etc/init.d/iptables restart
Disable SELinux and reboot your system:
[[email protected] ~]# vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: #Â Â Â Â enforcing - SELinux security policy is enforced. #Â Â Â Â permissive - SELinux prints warnings instead of enforcing. #Â Â Â Â disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: #Â Â Â Â targeted - Targeted processes are protected, #Â Â Â Â mls - Multi Level Security protection. SELINUXTYPE=targeted
Download Pligg
Download the latest Pligg software here. Extract the downloaded file using the following command:
[[email protected] ~]# unzip Pligg\ CMS\ 1.2.2.zip
This will create a directory called pligg in your current directory. Move all the contents of this directory to your Apache html folder(/var/www/html).
Now we have to rename the following files to make it work. Change to the html directory and enter the following commands to rename the necessary files:
[[email protected] ~]# cd /var/www/html/ [[email protected] html]# mv languages/lang_english.conf.default languages/lang_english.conf [[email protected] html]# mv libs/dbconnect.php.default libs/dbconnect.php [[email protected] html]# mv settings.php.default settings.php
Now set required permissions to the following folders as shown below:
[[email protected] html]# chmod 777 admin/backup/ [[email protected] html]# chmod 777 avatars/groups_uploaded/ [[email protected] html]# chmod 777 avatars/user_uploaded/ [[email protected] html]# chmod 777 cache/ [[email protected] html]# chmod 777 cache/admin_c/ [[email protected] html]# chmod 777 cache/templates_c/*.* [[email protected] html]# chmod 777 templates/*.* [[email protected] html]# chmod 777 languages/*.* [[email protected] html]# chmod 666 libs/dbconnect.php [[email protected] html]# chmod 666 settings.php
Begin Installation
Navigate http://ip-address or domain-name/install/index.php and follow the on-screen instructions.
Go to Install menu and select the language.
Click Next.
Enter the Database name, username and password. Click Check Settings to verify.
If you entered the valid database credentials, the database connection should established.
Now the necessary tables will be created. Enter the administrative account details and click Create Admin Account.
You’re done now. Your Pligg site is successfully installed.
Post Installation
Delete the Install folder:
[[email protected] html]# rm -fr install/
Change the permission of “/libs/dbconnect.php” file back to 644:
[[email protected] html]# chmod 644 libs/dbconnect.php
Configure Pligg
Next login to admin console to start configure Pligg:
This is how your admin console looks.
That’s it. Customize your site as per your liking by adding modules, widgets and templates etc. If getting trouble to open any modules, check the permissions.
This is how your Homepage looks.
To know more about Pligg installation, configuration, user guides and trouble shooting, visit the official documentation forum.