Install LimeSurvey on CentOS 7: A Complete Step-by-Step Guide

LimeSurvey is a popular open-source tool for creating and managing online surveys. This guide explains how to set up LimeSurvey on a CentOS 7 server from scratch.

Requirements Before Installation

  • An initial CentOS 7 server instance
  • A user account with sudo privileges

Step 1: Bring the System Up to Date

First, update your server to ensure all packages are current:

sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now

Once the system reboots, sign back in with your sudo-enabled user account to continue the setup.

Step 2: Set Up Apache Web Server

Install Apache using the YUM package manager:

In a production setup, it’s a good idea to disable the default Apache welcome page:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

For added security, modify Apache’s configuration to restrict access to directory listings under the web root /var/www/html:

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Now, launch Apache and enable it to start automatically at boot:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Step 3: Install PHP 5.6.x and Required Extensions

LimeSurvey requires at least PHP version 5.3.3. However, as PHP 5.5 and older versions are no longer supported, we’ll proceed with installing PHP 5.6.x along with its necessary modules using the IUS third-party YUM repository.

Begin by setting up the IUS repository:

cd
wget https://centos7.iuscommunity.org/ius-release.rpm
sudo rpm -Uvh ius-release.rpm

Once the repository is configured, install PHP 5.6.x and its required extensions with the following command:

sudo yum install php56u php56u-common php56u-xml php56u-gd php56u-mbstring php56u-mysqlnd php56u-mcrypt php56u-imap php56u-ldap -y

To activate the newly installed PHP modules, restart the Apache service:

sudo systemctl restart httpd.service

Step 4: Set Up MariaDB and Create a Database for LimeSurvey

LimeSurvey requires a database engine such as MySQL version 5.5.3 or newer. On CentOS 7, you can satisfy this requirement by installing MariaDB version 5.5.50 or higher through the default YUM repositories.

Install MariaDB and its server components:

sudo yum install mariadb mariadb-server -y

Enable the MariaDB service and start it immediately:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Proceed to secure your MariaDB instance by running the built-in security script:

sudo /usr/bin/mysql_secure_installation

During the guided process, provide responses to the prompts as shown:

  • Enter current password for root (enter for none): Enter
  • Set root password? [Y/n]: Y
  • New password: <your-password>
  • Re-enter new password: <your-password>
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

Once MariaDB is secured, log into the database system using the root user:

When prompted, enter the root password you set earlier. Inside the MySQL interface, execute the following to create a new database and a dedicated user account with the appropriate access permissions. Make sure to replace the placeholder credentials with your own secure values.

CREATE DATABASE limesurvey;
CREATE USER 'limesurveyuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON limesurvey.* TO 'limesurveyuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Step 5: Install LimeSurvey

Begin by downloading the most recent stable release of LimeSurvey directly from their official website. At the time this was written, version 2.51.4 was the latest:

cd
wget https://www.limesurvey.org/stable-release?download=1853:limesurvey2514%20160908targz -O limesurvey2.51.4.tar.gz

Extract the downloaded archive, move the content into the web server root, and set the appropriate permissions:

tar -zxvf limesurvey2.51.4.tar.gz
sudo mv limesurvey/ /var/www/html && sudo chown root:root -R /var/www/html
sudo chown -R apache:apache /var/www/html/limesurvey/tmp /var/www/html/limesurvey/upload /var/www/html/limesurvey/application/config

Next, update your firewall rules to allow incoming HTTP traffic:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Now, launch your web browser and access the following URL, replacing the IP with your actual server address (example shown uses 203.0.113.1):

http://203.0.113.1/limesurvey

Installation Wizard Steps

  • Welcome Page: Click the Start installation button.
  • License Agreement: Accept the license by clicking I accept.
  • Pre-installation Check: Verify that all system requirements are met, then click Next.
  • Database Configuration: Fill in your database details and click Next.

Replace the example values with your own credentials:

  • Database type*: MySQL
  • Database location*: localhost
  • Database user*: limesurveyuser
  • Database password: yourpassword
  • Database name*: limesurvey
  • Table prefix: lime_

When you reach the Database Settings screen, it will detect that the limesurvey database already exists. Click the Populate database button to initialize it.

On the Optional Settings page, fill out the necessary admin details. For security reasons, avoid using the default admin username (admin) and password (password). Choose a unique username and a strong password instead.

On the final Success! screen, click the Administration button to go to the admin login page and log in with the credentials you just created:

http://203.0.113.1/limesurvey/index.php/admin

Post-Installation Security Tip

By default, LimeSurvey stores sensitive configuration data—including database credentials—in the file:

/var/www/html/limesurvey/application/config/config.php

To mitigate the risk of accidental file exposure, move this file outside the web-accessible directory and replace it with a PHP include statement:

sudo cp /var/www/html/limesurvey/application/config/config.php /etc/limesurvey-config.php
sudo chown apache:apache /etc/limesurvey-config.php
echo '' | sudo tee /var/www/html/limesurvey/application/config/config.php

Conclusion

You’ve now successfully completed the full installation and setup process of LimeSurvey on a CentOS 7 server. From updating your system and installing Apache, PHP, and MariaDB, to securing your configuration and running the LimeSurvey installer, every essential step has been covered.

LimeSurvey is now fully operational and ready to support your survey initiatives. To ensure long-term security and performance, always keep your server and LimeSurvey installation up to date, regularly back up your database and configuration, and follow security best practices for web applications.

With this foundation in place, you’re equipped to design, deploy, and analyze powerful surveys through a reliable and flexible open-source platform.

Source: vultr.com

Create a Free Account

Register now and get access to our Cloud Services.

Posts you might be interested in: