How to install LimeSurvey on CentOS 7 using LEMP

To install LimeSurvey on CentOS 7 using LEMP

LimeSurvey also known as PHPSurveyor is a free and open source online survey application written in PHP and based on Mysql, SQLite and postgreSQL. LimeSurvey allows you to develop and publish on-line surveys, collect responses, create statistics, and export the resulting data to other applications using web interface. The templates in LimeSurvey can be changed in WYSIWYG HTML editor and can also be imported and exported through the template editor. This tutorial will explain the installation of LimeSuvey on CentOS 7 using LEMP.

Pre-Requisites

- LEMP Stack

Nginx

MariaDB

PHP 5.6 along with dependencies by executing the following set of commands

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

yum -y install epel-release rpm -Uvh ius-release.rpm

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

Installation procedure

To proceed with the installation procedure, download the Limesurvey package by using wget command followed by the download link.

[root@linuxhelp ~]# wget http://download.limesurvey.org/latest-stable-release/limesurvey2.72.1+171012.zip
--2017-10-17 12:54:57--  http://download.limesurvey.org/latest-stable-release/limesurvey2.72.1+171012.zip
Resolving download.limesurvey.org (download.limesurvey.org)... 78.47.141.76
Connecting to download.limesurvey.org (download.limesurvey.org)|78.47.141.76|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 77756433 (74M) [application/zip]
Saving to: ‘ limesurvey2.72.1+171012.zip’ 
100%[======================================> ] 77,756,433   172KB/s   in 6m 55s

2017-10-17 13:01:53 (183 KB/s) - ‘ limesurvey2.72.1+171012.zip’  saved [77756433/77756433]

Extract the downloaded package in Nginx root directory by running the unzip command.

[root@linuxhelp ~]# unzip limesurvey2.72.1+171012.zip -d /usr/share/nginx/html/
Archive:  limesurvey2.72.1+171012.zip
   creating: /usr/share/nginx/html/limesurvey/
 extracting: /usr/share/nginx/html/limesurvey/.bowerrc  
  inflating: /usr/share/nginx/html/limesurvey/.gitattributes  
  inflating: /usr/share/nginx/html/limesurvey/.gitignore  
  inflating: /usr/share/nginx/html/limesurvey/.htaccess  
  inflating: /usr/share/nginx/html/limesurvey/.scrutinizer.yml  
  inflating: /usr/share/nginx/html/limesurvey/CONTRIBUTING.md  
  inflating: /usr/share/nginx/html/limesurvey/README.md  
   creating: /usr/share/nginx/html/limesurvey/admin/
 extracting: /usr/share/nginx/html/limesurvey/admin/admin.php  
.
.
.
creating: /usr/share/nginx/html/limesurvey/upload/labels/
  inflating: /usr/share/nginx/html/limesurvey/upload/labels/index.html  
  inflating: /usr/share/nginx/html/limesurvey/upload/labels/readme.txt  
  inflating: /usr/share/nginx/html/limesurvey/upload/readme.txt  
   creating: /usr/share/nginx/html/limesurvey/upload/surveys/
  inflating: /usr/share/nginx/html/limesurvey/upload/surveys/index.html  
  inflating: /usr/share/nginx/html/limesurvey/upload/surveys/readme.txt  
   creating: /usr/share/nginx/html/limesurvey/upload/templates/
  inflating: /usr/share/nginx/html/limesurvey/upload/templates/index.html  
  inflating: /usr/share/nginx/html/limesurvey/upload/templates/readme.txt  

Open the php-fpm configuration file using vim editor and enter the following content as follows. Save and exit the file.

[root@linuxhelp ~]# vim /etc/php-fpm.d/www.conf
listen = /run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx

user = nginx
group = nginx

Next configure the Virtual host configuration file and enter the following contents in the file. Save and exit the file.

[root@linuxhelp ~]# vim /etc/nginx/conf.d/limesurvey.conf

server {
    listen  80 
  server_name www.linuxhelp1.com 
    location / {
        root  /usr/share/nginx/html 
        index  index.html index.htm index.php 
    }

    error_page  500 502 503 504  /50x.html 
    location = /50x.html {
        root  /usr/share/nginx/html 
    }
location ~ \.php {
    fastcgi_index index.php 
    fastcgi_split_path_info ^(.+\.php)(.*)$ 
    include /etc/nginx/fastcgi_params 
    fastcgi_pass unix:/run/php-fpm/php-fpm.sock 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name 
  }
}

Provide the appropriate owner permission and file execution permission by executing the following set of commands.

[root@linuxhelp html]# chown -R nginx:nginx /usr/share/nginx/html/
[root@linuxhelp html]# chmod -R 777 /usr/share/nginx/html/

Restart the Nginx service.

[root@linuxhelp limesurvey]# systemctl restart nginx

Switch to the browser and enter the URL as http://www.linuxhelp1.com/limesurvey. The installation wizard of LimeSurvey appears on the screen. Choose the language and begin the installation.

The License agreement appears on the screen. Accept the license and navigate to next page.

Enter the required database configuration details and save the changes.

Next enter the required admin details and save the changes.

The installation is now complete and click administration option to lead to the admin side of LimeSurvey.

The LimeSurvey application is running successfully.

The installation of LimeSurvey on CentOS 7 using LEMP is done without any glitches.

FAQ
Q
What are the required PHP extensions for LimeSurvey?
A
The required PHP extensions for Limesurvey is as follows
# php56u php56u-common php56u-xml php56u-gd php56u-mbstring php56u-mysqlnd php56u-mcrypt php56u-imap php56u-ldap
Q
What is LimeSurvey?
A
LimeSurvey also was known as PHPSurveyor is a free and open source online survey application written in PHP and based on Mysql, SQLite, and PostgreSQL. LimeSurvey allows you to develop and publish online surveys, collect responses, create statistics, and export the resulting data to other applications using web interface.
Q
How can I create a database and a user in MySQL with command-line access on limesurvey?
A
You have to enter the commands below in your MySQL for creating database for Limesurvey:

create database ;
create user ;
create user @localhost;
set password f
Q
Stuck at checking file system permissions for Limesurvey?
A
If SELinux is activated (primarily on CentOS), then you might get an error that the file system permissions are not correct, even if the list of directories is empty. SELinux prevents writing.
Q
Blank page when accessing the install page of Limesurvey?
A
Verify you have the MySQL connection established with the server, and PHP module (php-MySQL) installed.
Verify your PHP install is loading the PHP.ini file your are modifying and not parsing other PHP.INI files on your system.
Verify t