Setup Social Publishing CMS (Content Managemnet System) Using Pligg
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.
Install the following prerequisites to install and configure Pligg:
[root@server ~]# 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:
[root@server ~]# /etc/init.d/mysqld start [root@server ~]# /etc/init.d/httpd start [root@server ~]# chkconfig mysqld on [root@server ~]# chkconfig httpd on
Create MySQL Root user password:
[root@server ~]# /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’:
[root@server ~]# 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:
[root@server 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:
[root@server html]# /etc/init.d/iptables restart
Disable SELinux and reboot your system:
[root@server ~]# 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 the latest Pligg software here. Extract the downloaded file using the following command:
[root@server ~]# 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:
[root@server ~]# cd /var/www/html/ [root@server html]# mv languages/lang_english.conf.default languages/lang_english.conf [root@server html]# mv libs/dbconnect.php.default libs/dbconnect.php [root@server html]# mv settings.php.default settings.php
Now set required permissions to the following folders as shown below:
[root@server html]# chmod 777 admin/backup/ [root@server html]# chmod 777 avatars/groups_uploaded/ [root@server html]# chmod 777 avatars/user_uploaded/ [root@server html]# chmod 777 cache/ [root@server html]# chmod 777 cache/admin_c/ [root@server html]# chmod 777 cache/templates_c/*.* [root@server html]# chmod 777 templates/*.* [root@server html]# chmod 777 languages/*.* [root@server html]# chmod 666 libs/dbconnect.php [root@server html]# chmod 666 settings.php
Navigate http://ip-address or domain-name/install/index.php and follow the on-screen instructions.
Go to Install menu and select the language.
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.
Delete the Install folder:
[root@server html]# rm -fr install/
Change the permission of “/libs/dbconnect.php” file back to 644:
[root@server html]# chmod 644 libs/dbconnect.php
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.