Хотя и существует несколько способов установки движка (виртуальный хостинг, контейнеры docker), в данной теме будет описана установка Flarum на VPS. На данный момент это рекомендуемый разработчиками вариант.
Cистемные требования:
- GNU/Linux
- Nginx
- PHP 7.1+ расширения: dom, gd, json, mbstring, openssl, pdo_mysql, tokenizer
- MariaDB 10.0.5+
1. Установка веб сервера nginx
Предполагается, что у вас уже есть сервер с установленным Debian GNU/Linux 9 “stretch” (или другой, предпочитаемой системой) с правами root. Итак, заходим на сервер и обновим систему:
sudo apt update && sudo apt upgrade
Устанавливаем nginx:
sudo apt install nginx
Убедимся, что сервис запущен:
systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-03-22 00:27:30 UTC; 1 day 21h ago
Docs: man:nginx(8)
Process: 31198 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 31204 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 31201 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 31207 (nginx)
Tasks: 2 (limit: 4915)
Memory: 8.2M
CPU: 16.204s
CGroup: /system.slice/nginx.service
├─31207 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─31208 nginx: worker process
Если сервис не запущен, делаем:
sudo systemctl enable --now nginx.service
2. Установка СУБД MariaDB
sudo apt-get install mariadb-server mariadb-client
Проверяем, запустился ли сервис systemctl status mariadb.service
, если нет sudo systemctl enable --now mariadb.service
Далее, необходимо запустить скрипт для безопасной настройки MySQL. Он изменит некоторые параметры установленные по умолчанию на более безопасные, например, установит пароль и запретит удалённый вход для пользователя root.
sudo mysql_secure_installation
Будет задано несколько вопросов:
Enter current password for root (enter for none): жмем Enter
Set root password? [Y/n]: Y
New password: мой_самый_ надежный_пароль
Re-enter new 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
3. Установка PHP 7.1-FPM и необходимых модулей
По умолчанию Debian 9 содержит PHP 7.0, поэтому добавим ключ, репозиторий, обновим ос и установим необходимые пакеты:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update && sudo apt upgrade
sudo apt install php7.1-common php7.1-readline php7.1-fpm php7.1-cli php7.1-gd php7.1-mysql php7.1-mcrypt php7.1-curl php7.1-mbstring php7.1-opcache php7.1-json php7.1-xmlrpc php7.1-soap php7.1-xml php7.1-zip
После установки, откроем файл /etc/php/7.1/fpm/php.ini
в своем любимом $EDITOR
и изменим некоторые параметры на:
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
cgi.fix_pathinfo = 0
После сохраненных изменений перезапустим nginx для работы с новой конфигурацией php:
sudo systemctl restart nginx.service
4. Создание БД и пользователя
На данном этапе необходимо создать пустую базу данных и пользователя, который будет иметь к ней доступ. Имя базы данных и пользователя выбираем на свое усмотрение. Для этого заходим в MariaDB:
sudo mysql -u root -p
Cоздаем базу под названием flarumdb (или любое другое название, на свой вкус 🙂)
CREATE DATABASE flarumdb;
Cоздаем пользователя flarum и его пароль:
CREATE USER 'flarum'@'localhost' IDENTIFIED BY 'пароль_пользователя_бд';
Далее, предоставьте пользователю полный доступ к базе данных:
GRANT ALL ON flarumdb.* TO 'flarum'@'localhost' IDENTIFIED BY 'пароль_пользователя_бд' WITH GRANT OPTION;
Cообщить серверу о перезагрузке таблиц предоставления и выйти:
FLUSH PRIVILEGES;
\q+Enter
5. Установка Flarum
Для управления зависимостями и установки новых расширений Flarum использует Comoser. Поэтому, перед установкой движка, ставим Comoser, предварительно установив curl и git, если их еще нет:
sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Cоздадим директорию и установим Flarum:
sudo mkdir /var/www/html/flarum
cd /var/www/html/flarum
sudo composer create-project flarum/flarum . --stability=beta
Сменить владельца и права директории:
sudo chown -R www-data:www-data /var/www/html/flarum/
sudo chmod -R 755 /var/www/html/flarum/
6. Настройка nginx для работы с Flarum
Наконец, создадим файл конфигурации nginx для работы нашего форума sudo -e /etc/nginx/sites-available/flarum
и внесем в него следущее:
server {
listen 80;
listen [::]:80;
root /var/www/html/flarum/public;
index index.php index.html index.htm;
server_name доменное_имя_моего_форума.соm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
include /var/www/html/flarum/.nginx.conf;
}
После сохранения файла, необходимо подключить виртуальный хост создав симлинк:
sudo ln -s /etc/nginx/sites-available/flarum /etc/nginx/sites-enabled/
Теперь перезагрузим nginx sudo systemctl restart nginx.service
и зайдем в браузере по адресу форума или по его ip. Мы увидим приглашение для первоначальной настройки форума, куда необходимо внести следущее:

7. Мои поздравления! Переходим к дальнейшей настройке.