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

О чём эта инструкция
Эта пошаговая статья подробно описывает установку 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.rpmsudo 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). Затем выполните следующие действия через веб-инсталлятор:
- Выберите язык и нажмите Start Installation.
- Примите лицензионное соглашение (I accept).
- Убедитесь, что все проверки препро-установки пройдены, и нажмите Next.
- Введите настройки базы данных (хост, имя базы, пользователь, пароль) и нажмите Next.
- Нажмите Populate database для создания таблиц и начальных данных.
- Введите данные администратора (имя, пароль, email, название сайта) и продолжите.
- После успешной установки нажмите Administration и войдите под администратором.









Безопасность и рекомендации после установки
- Используйте 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 шага)
- Подготовка: ОС обновлена, сетевые правила и DNS настроены.
- Инфраструктура: установить web/PHP/DB, настроить права и SELinux, подключить HTTPS.
- Приложение: распаковать LimeSurvey, завершить установку через веб, провести тестирование.
Критерии приёмки
- Веб-интерфейс доступен по HTTPS и открывается без ошибок.
- Вход в панель администратора работает с заданными данными.
- Можно создать опрос и успешно отправить тестовый ответ.
- Файловая структура доступна nginx, резервное копирование отрабатывает.
Ментальные модели и альтернативы
- Если требуется простая конфигурация и знакомство с инструментом, используйте PHP 7.x + MariaDB + Nginx.
- Для высокой нагрузки рассмотрите масштабирование базы данных и использование балансировщика нагрузки.
- При необходимости использовать PostgreSQL — LimeSurvey поддерживает и её; замените драйверы и настройки подключения.
Короткий глоссарий
- PHP-FPM: FastCGI Process Manager для обработки PHP-запросов.
- Nginx: веб-сервер и обратный прокси.
- MariaDB: форк MySQL, сервер баз данных.
Источники и ссылки
- Официальный сайт LimeSurvey: https://www.limesurvey.org/
- Репозиторий на GitHub: https://github.com/LimeSurvey/LimeSurvey
Резюме
- Эта инструкция помогает быстро развернуть LimeSurvey CE на CentOS 7 с использованием Nginx, PHP 7 и MariaDB. Следуйте шагам, соблюдайте рекомендации по безопасности, протестируйте бэкапы и соответствие требованиям приватности перед вводом в эксплуатацию.
Важно: проверяйте актуальные версии пакетов и официальную документацию LimeSurvey перед развёртыванием.