Гид по технологиям

Установка LimeSurvey Community Edition на CentOS 7

6 min read Развертывание Обновлено 23 Nov 2025
Установка LimeSurvey на CentOS 7 (CE, Nginx, PHP7)
Установка LimeSurvey на CentOS 7 (CE, Nginx, PHP7)

Экран установки LimeSurvey — стартовая страница

О чём эта инструкция

Эта пошаговая статья подробно описывает установку LimeSurvey Community Edition (CE) на CentOS 7. Подойдёт системным администраторам и инженерам DevOps: описаны требования, подготовка системы, установка PHP 7, MariaDB, настройка Nginx, права доступа, завершение установки через веб-интерфейс и рекомендации по безопасности.

Важно: LimeSurvey может обрабатывать персональные данные. Проверьте требования приватности и соответствие локальным законам перед развёртыванием.

Быстрый план (шаги)

  • Подготовить систему: обновить пакеты, настроить таймзону.
  • Установить PHP 7.2 и расширения (mbstring, pdo, gd, imap, ldap, zip).
  • Установить MariaDB и создать базу/пользователя для LimeSurvey.
  • Установить Nginx и настроить виртуальный хост.
  • Разместить файлы LimeSurvey в /var/www/limesurvey, настроить права.
  • Завершить установку через веб-интерфейс и настроить админа.

Требования

  • Минимум 250 МБ свободного места на диске (рекомендуется больше для данных опросов и логов).
  • MariaDB 5.5.3+ или MySQL 5.5.3+ (в инструкции используется MariaDB).
  • PHP 5.5.9+ (рекомендуется PHP 7.0.0+); в примере — PHP 7.2.
    • Обязательные расширения: mbstring, PDO (для MySQL/PostgreSQL), GD, IMAP, LDAP, ZIP.
  • Веб-сервер: Apache 2.4+ или Nginx 1.1+ (в инструкции — Nginx).

Краткое определение: PDO — слой доступа к базе данных в PHP, обеспечивает безопасные запросы.

Начальная подготовка системы

Проверьте версию CentOS:

cat /etc/centos-release  
# CentOS Linux release 7.5.1804 (Core)

Установите часовой пояс:

timedatectl list-timezones  
sudo timedatectl set-timezone 'Region/City'

Обновите систему:

sudo yum update -y

Установите утилиты:

sudo yum install -y vim git unzip socat

Важно: если на сервере включён SELinux в режиме Enforcing, придётся учесть контексты безопасности для веб-каталога (раздел “Безопасность” ниже).

Шаг 1 — Установка PHP

LimeSurvey требует актуальную версию PHP. В CentOS 7 стандартные репозитории содержат устаревшие пакеты, поэтому используем репозиторий Webtatic и устанавливаем PHP 7.2:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mbstring php72w-xml php72w-mysql php72w-gd php72w-zip php72w-ldap php72w-imap

Проверка версии PHP:

php --version

# PHP 7.2.12 (cli) (built: Nov 11 2018 14:54:16) ( NTS )

Запустите и включите PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Примечание: в конфигурации Nginx ниже используется fastcgi_pass 127.0.0.1:9000. Если PHP-FPM настроен на unix-сокет (например /var/run/php-fpm/www.sock), замените адрес в конфигурации Nginx соответствующим сокетом.

Шаг 2 — Установка MariaDB и создание базы данных

Установите MariaDB:

sudo yum install -y mariadb-server

Проверка версии:

mysql --version
# mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Запустите и включите сервис:

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

Укрепление безопасности MariaDB и задание пароля root:

sudo mysql_secure_installation

Ответьте на вопросы, например:

Enter current password for root (enter for none):
Set root password? [Y/n]: Y
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

Создайте базу и пользователя для LimeSurvey (запомните имя базы, пользователя и пароль):

mysql -u root -p
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

Совет: для безопасного развёртывания используйте уникальные имена баз и сильные пароли. При необходимости задавайте права более ограниченно.

Шаг 3 — Установка и настройка Nginx

Установите Nginx:

sudo yum install -y nginx

Проверка версии:

nginx -v
# nginx version: nginx/1.12.2

Запустите и включите сервис Nginx:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Создайте конфигурацию сайта:

sudo vim /etc/nginx/conf.d/limesurvey.conf

Вставьте следующую конфигурацию (обратите внимание на fastcgi_pass):

server {
    listen 80;

    server_name example.com;
    root /var/www/limesurvey;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

Проверьте конфигурацию и перезагрузите Nginx:

sudo nginx -t
sudo systemctl reload nginx.service

Важно: замените server_name example.com на ваш домен или публичный IP. При использовании TLS настройте отдельный серверный блок для 443 и добавьте сертификат.

Шаг 4 — Загрузка и установка LimeSurvey

Создайте корневую директорию сайта и установите владельца:

sudo mkdir -p /var/www/limesurvey
sudo chown -R [your_user]:[your_user] /var/www/limesurvey
cd /var/www/limesurvey

Скачайте ZIP-инсталлятор LimeSurvey (в примере URL):

wget https://www.limesurvey.org/stable-release?download=2514:limesurvey3155%20181115zip -O limesurvey.zip

Распакуйте и переместите файлы:

unzip limesurvey.zip
rm limesurvey.zip
mv limesurvey/* . && mv limesurvey/.* .
rmdir limesurvey

Установите владельца nginx для работы через PHP-FPM под юзером nginx:

sudo chown -R nginx:nginx /var/www/limesurvey

Создайте директорию для сессий PHP и назначьте права:

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php

Отредактируйте пул PHP-FPM, чтобы процесс работал от пользователя nginx (если требуется):

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Перезапустите PHP-FPM:

sudo systemctl restart php-fpm.service

Примечание: если вы предпочитаете Unix-сокет, проверьте и сопоставьте fastcgi_pass и listen в /etc/php-fpm.d/www.conf.

Шаг 5 — Завершение установки через веб-интерфейс

Откройте браузер и перейдите по адресу http://example.com (замените example.com на ваш домен/IP). Затем выполните следующие действия через веб-инсталлятор:

  1. Выберите язык и нажмите Start Installation.
  2. Примите лицензионное соглашение (I accept).
  3. Убедитесь, что все проверки препро-установки пройдены, и нажмите Next.
  4. Введите настройки базы данных (хост, имя базы, пользователь, пароль) и нажмите Next.
  5. Нажмите Populate database для создания таблиц и начальных данных.
  6. Введите данные администратора (имя, пароль, email, название сайта) и продолжите.
  7. После успешной установки нажмите Administration и войдите под администратором.

LimeSurvey Installer

Принятие лицензии LimeSurvey

Проверка перед установкой

Конфигурация базы данных

Настройки базы данных

Настройки администратора

Успешно установлено

Вход в панель

Панель управления LimeSurvey

Безопасность и рекомендации после установки

  • Используйте HTTPS — настройте сертификаты (Let’s Encrypt или коммерческие).
  • Ограничьте доступ к административной панели по IP, если возможно.
  • Регулярно обновляйте PHP, MariaDB и LimeSurvey до актуальных патчей.
  • Сделайте резервное копирование каталога /var/www/limesurvey и базы данных.
  • Проверяйте логи Nginx и PHP-FPM для своевременного выявления ошибок.

SELinux: если включён, назначьте контексты доступа для веб-каталога:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/limesurvey(/.*)?"
sudo restorecon -Rv /var/www/limesurvey

Если semanage отсутствует, установите policycoreutils-python:

sudo yum install -y policycoreutils-python

Права файлов: избегайте 0777. Достаточно, чтобы владелец (nginx) мог читать и писать.

Отладка и типичные ошибки

  • 502 Bad Gateway — проверьте, запущен ли php-fpm и совпадает ли fastcgi_pass между Nginx и php-fpm.
  • 500 Internal Server Error — проверьте логи PHP (/var/log/php-fpm/error.log) и права доступа.
  • Проблемы с загрузкой изображений/файлов — проверьте права на /var/www/limesurvey и контекст SELinux.
  • Ошибки при подключении к базе — убедитесь в корректности хоста, имени БД и правильных привилегиях пользователя.

Короткая проверка после установки:

  • Откройте /admin и войдите как администратор.
  • Создайте тестовый опрос и убедитесь, что ответы сохраняются в базе данных.

Роли и контрольный список задач

  • Администратор сервера (DevOps): обновление пакетов, настройка бэкапов, SSL, SELinux, мониторинг.
  • DBA: настройка резервного копирования базы, оптимизация таблиц, контроль прав БД.
  • Администратор LimeSurvey: создание опросов, управление пользователями, проверка конфиденциальности данных.

Контрольный список перед продакшеном:

  • HTTPS включён и тестирован.
  • Резервные копии настроены и протестированы.
  • Права файлов и SELinux проверены.
  • Логи и мониторинг настроены.
  • Правила приватности и согласия для респондентов оформлены.

Мини-методология развёртывания (3 шага)

  1. Подготовка: ОС обновлена, сетевые правила и DNS настроены.
  2. Инфраструктура: установить web/PHP/DB, настроить права и SELinux, подключить HTTPS.
  3. Приложение: распаковать LimeSurvey, завершить установку через веб, провести тестирование.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS и открывается без ошибок.
  • Вход в панель администратора работает с заданными данными.
  • Можно создать опрос и успешно отправить тестовый ответ.
  • Файловая структура доступна nginx, резервное копирование отрабатывает.

Ментальные модели и альтернативы

  • Если требуется простая конфигурация и знакомство с инструментом, используйте PHP 7.x + MariaDB + Nginx.
  • Для высокой нагрузки рассмотрите масштабирование базы данных и использование балансировщика нагрузки.
  • При необходимости использовать PostgreSQL — LimeSurvey поддерживает и её; замените драйверы и настройки подключения.

Короткий глоссарий

  • PHP-FPM: FastCGI Process Manager для обработки PHP-запросов.
  • Nginx: веб-сервер и обратный прокси.
  • MariaDB: форк MySQL, сервер баз данных.

Источники и ссылки

Резюме

  • Эта инструкция помогает быстро развернуть LimeSurvey CE на CentOS 7 с использованием Nginx, PHP 7 и MariaDB. Следуйте шагам, соблюдайте рекомендации по безопасности, протестируйте бэкапы и соответствие требованиям приватности перед вводом в эксплуатацию.

Важно: проверяйте актуальные версии пакетов и официальную документацию LimeSurvey перед развёртыванием.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

GPTZero: детектор AI‑текста для преподавателей
Образование

GPTZero: детектор AI‑текста для преподавателей

Множественные build context в Docker
DevOps

Множественные build context в Docker

Установка Windows 11 в VirtualBox на Linux
Virtualization

Установка Windows 11 в VirtualBox на Linux

Как говорить о деньгах с близкими
Личные финансы

Как говорить о деньгах с близкими

Исправить высокий CPU в Linux
Linux

Исправить высокий CPU в Linux

Восстановить значок Корзины в Windows 10
Windows

Восстановить значок Корзины в Windows 10