Задача: Возможно хочу, чтобы у меня была не только группа Telegram в которой идет общение, а все-таки старый привычный форум где обсуждаются проблемы, задумки, анализ некорректного поведения настроек на системах, железе. Плюс всегда хотел форум, но как-то раньше не было такой необходимости, все меняется.

По крайней мере хочу попробовать.

Для начала разберу, что мне даст если движок для форума будет всем известным на слуху phpBB, в качестве операционной системы выступит Ubuntu 22.04 Server.

Руководствуюсь перед началом:

Собираю всю доступную информацию об интересуемом: официальный сайт, различные опубликованные заметки, Youtubu-ролики.

На тестовой системе обкатываю

Системные требования к разворачиванию форума на базе phpBB

Шаг №1: Обновляем информацию о репозитариях, обновляем установленные пакеты и систему в рамках текущего долговременного релиза:

ekzorchik@srv-us2204a1a:~$ sudo rm -Rf /var/lib/apt/lists
ekzorchik@srv-us2204a1a:~$ cat /etc/update-manager/release-upgrades | grep Prompt
Prompt=lts
ekzorchik@srv-us2204a1a:~$ sudo sed -i '/Prompt/s/lts/never/' /etc/update-manager/release-upgrades
ekzorchik@srv-us2204a1a:~$ cat /etc/update-manager/release-upgrades | grep Prompt
Prompt=never
ekzorchik@srv-us2204a1a:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt dist-upgrade -y

Шаг №2: Настраиваю локаль:

ekzorchik@srv-us2204a1a:~$ sudo rm -f /etc/localtime
ekzorchik@srv-us2204a1a:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ekzorchik@srv-us2204a1a:~$ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
ekzorchik@srv-us2204a1a:~$ echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale
LC_ALL=en_US.UTF-8
ekzorchik@srv-us2204a1a:~$ echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale
LANG=en_US.UTF-8
ekzorchik@srv-us2204a1a:~$ echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale
LANGUAGE=en.US.UTF-8
ekzorchik@srv-us2204a1a:~$

Шаг №3: Устанавливаю Webсервис Apache2, PHP, MariaDB и необходимые расширения:

ekzorchik@srv-us2204a1a:~$ apt-cache show php | grep Version
Version: 2:8.1+92ubuntu1
ekzorchik@srv-us2204a1a:~$
ekzorchik@srv-us2204a1a:~$ sudo apt install -y apache2 mariadb-server libapache2-mod-php php-gd php-curl openssl php-imagick php-intl php-json php-ldap php-common php-mbstring php-mysql php-imap php-sqlite3 php-net-ftp php-zip unzip php-pgsql php-ssh2 php-xml wget unzip
ekzorchik@srv-us2204a1a:~$ sudo unlink /etc/apache2/sites-available/000-default.conf
ekzorchik@srv-us2204a1a:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf
ekzorchik@srv-us2204a1a:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf
ekzorchik@srv-us2204a1a:~$ echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf
ServerName localhost
ekzorchik@srv-us2204a1a:~$
ekzorchik@srv-us2204a1a:~$ sudo rm -f /var/www/html/index.html

Шаг №4: Активирую службы: Apache2 & MariaDB:

ekzorchik@srv-us2204a1a:~$ sudo systemctl enable --now apache2 mariadb
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mariadb
ekzorchik@srv-us2204a1a:~$ sudo systemctl restart apache2 mariadb

Шаг №5: Под сервис phpBB на базе которого будет строиться форму создаю: базу данных, пользователя этой базы и пароль на подключение к ней:

ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -e "alter user 'root'@'localhost' identified by '712mbddr@';"
ekzorchik@srv-us2204a1a:~$ sudo mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -p712mbddr@
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 35
Server version: 10.6.11-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> quit
Bye
ekzorchik@srv-us2204a1a:~$
ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -p712mbddr@ -e "create database db_phpbb"
ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_phpbb.* to 'us_phpbb'@'localhost' identified by '612mbddr@';"
ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -p712mbddr@ -e "flush privileges;"

Шаг №6: Проверяю, что подключение из-под us_phpbb с созданным паролем и обозначенными правами проходит:

ekzorchik@srv-us2204a1a:~$ sudo mysql -u root -p712mbddr@ -e "use mysql;select user from mysql.user"
+-------------+
| User        |
+-------------+
| mariadb.sys |
| mysql       |
| root        |
| us_phpbb    |
+-------------+
ekzorchik@srv-us2204a1a:~$

Ответ да проходят

Шаг №7: Скачиваю с официального сайта файлы (на момент написания данной заметки версия 3.3.9 от 28.11.2022) форума перед последующей установкой:

ekzorchik@srv-us2204a1a:~$ wget https://download.phpbb.com/pub/release/3.3/3.3.9/phpBB-3.3.9.zip
ekzorchik@srv-us2204a1a:~$ unzip phpBB-3.3.9.zip
ekzorchik@srv-us2204a1a:~$ sudo mv phpBB3 /var/www/html/phpbb
ekzorchik@srv-us2204a1a:~$ sudo chown -R www-data:www-data /var/www/html/phpbb/
ekzorchik@srv-us2204a1a:~$ sudo chmod -R 775 /var/www/html/phpbb/

Шаг №8: Создаем конфигурационный файл, обрабатывая который Webсервис Apache2 будет интерпретировать развернутый форум:

ekzorchik@srv-us2204a1a:~$ sudo nano /etc/apache2/sites-available/phpbb.conf
<VirtualHost *:80>
      #ServerAdmin admin@example.com
      ServerAdmin support@ekzorchik.com
      DocumentRoot /var/www/html/phpbb
      #ServerName phpbb.example.com
      ServerName 172.35.35.22

      <Directory /var/www/html/phpbb>
                Options FollowSymlinks
                AllowOverride All
                Require all granted
       </Directory>

ErrorLog ${APACHE_LOG_DIR}/phpbb_error.log
CustomLog ${APACHE_LOG_DIR}/phpbb_access.log combined

</VirtualHost>
ekzorchik@srv-us2204a1a:~$ sudo apache2ctl configtest
Syntax OK
ekzorchik@srv-us2204a1a:~$ sudo a2ensite phpbb.conf
Enabling site phpbb.
To activate the new configuration, you need to run:
  systemctl reload apache2
ekzorchik@srv-us2204a1a:~$
ekzorchik@srv-us2204a1a:~$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
ekzorchik@srv-us2204a1a:~$ sudo systemctl restart apache2

Шаг №9: Произвожу настройку форума через Webинтерфейс путем обращения к нему, как http://IP&DNS, URL ссылка после обращения трансформируется в http://172.35.35.22/install/app.php

перехожу на вкладку Install, нажимаю Install

Указываю учетную запись, которая будет администратором

  • Administrator username: ekzorchik
  • Contact email address: support@ekzorchik.com
  • Administrator password: 712mbddr@
  • Confirm administrator password: 712mbbdr@

Создаем Администратора для форума

и нажимаю Submit

указываю параметры подключения к базе данных

  • Database type: MySQL with MySQLi Extension
  • Database server hostname or DNS: 127.0.0.1
  • Database server port: не заполняю (порт по умолчанию)
  • Database username: us_phpbb
  • Database password: 612mbddr@
  • Database name: db_phpbb
  • Prefix for tables in database: phpbb_ekzp!hp

Указываем параметры подключения к базе MySQL

и нажимаю Submit, но инсталлятор не принял мои настройки уведомив что введенный префикс для таблиц не может содержать спецсимволы.

На заметку: The prefix you entered is invalid. It must start with a letter and must only contain letters, numbers and underscores.

а потому

Указываем правильный префикс для таблиц в базе

и нажимаю Submit

но вот я получаю ошибку

Access denied for user 'us_phpbb'@'localhost' (using password: NO)

в этом случае нужно просто нажать F5 и процесс инсталляции начинается заново и уже указать префикс для таблиц в базе с учетом требований и все пройдет, будет следующий этап установки

оставляю настройки по умолчанию

Настройки по серверу оставляем по дефолту

и нажимаю Submit

пока настройки почты не указываю (сделаю позже)

Настройки почты не указываем, сделаем это после

и нажимаю Submit

Указываю настройки языка

  • Default language: по умолчанию British English (потом отдельно скачаю для Русского языка)
  • Title of the board: forum.ekzorchik.ru
  • Short description of the board: Обсуждение технических моментов

Задаю название для форума и описание

и нажимаю Submit

Ожидаю завершения процесса развертывания

Ожидаю завершения процесса развертывания

Развертывание успешно завершено

Развертывание успешно завершено

нажимаю на гиперссылку "the ACP" и меня перекидывает на URL Web-интерфейса администрирования развернутым форумом

Web-интерфейс Администрирования по умолчанию на Английском

Шаг №10: Чтобы русифицировать развернутый форум версии 3.3.9 нужно:

Скачиваем пакет: https://www.phpbb.com/ - Downloads - переходим на Download Language Packs — переходим в Russian и скачиваем 2.1.11 для phpBB 3.3.9

ekzorchik@srv-us2204a1a:~$ wget https://www.phpbb.com/customise/db/download/199496
ekzorchik@srv-us2204a1a:~$ unzip 199496
ekzorchik@srv-us2204a1a:~$ ls russian_2_1_11/
ext  language  styles
ekzorchik@srv-us2204a1a:~$

/language - набор языковых файлов (переведённые термины)

/styles - набор переведённых кнопок-изображений для стилей prosilver и subsilver2

ekzorchik@srv-us2204a1a:~$ sudo cp -Rf russian_2_1_11/language/ru/ /var/www/html/phpbb/language/
ekzorchik@srv-us2204a1a:~$ sudo cp -Rf russian_2_1_11/styles/ /var/www/html/phpbb/
ekzorchik@srv-us2204a1a:~$ sudo cp -Rfv russian_2_1_11/ext/ /var/www/html/phpbb/
'russian_2_1_11/ext/phpbb/viglink/language/ru' -> '/var/www/html/phpbb/ext/phpbb/viglink/language/ru'
'russian_2_1_11/ext/phpbb/viglink/language/ru/viglink_module_acp.php' -> '/var/www/html/phpbb/ext/phpbb/viglink/language/ru/viglink_module_acp.php'
'russian_2_1_11/ext/phpbb/viglink/language/ru/info_acp_viglink.php' -> '/var/www/html/phpbb/ext/phpbb/viglink/language/ru/info_acp_viglink.php'
ekzorchik@srv-us2204a1a:~$
ekzorchik@srv-us2204a1a:~$ sudo chown -R www-data:www-data /var/www/html/phpbb/
ekzorchik@srv-us2204a1a:~$ sudo chmod -R 775 /var/www/html/phpbb/
ekzorchik@srv-us2204a1a:~$ sudo systemctl restart apache2

Обновляю страницу доступ в Web-панель администрирования Вашим форумом, перехожу на вкладку CUSTOMISE - (Language management) Language packs и вижу, что по умолчанию установлен язык English и не установлен добавленный Russian, нажимаю Install

(см скриншот ниже для наглядного понимания)

Устанавливаю русский язык

и буквально сразу же получаю

Языковые файлы успешно установлены

Шаг №11: После инсталляции форума нужно удалить каталог инсталляции:

ekzorchik@srv-us2204a1a:~$ sudo rm -Rf /var/www/html/phpbb/install/

Шаг №12: Далее вы можете сделать русский язык используемым по умолчанию (в том числе для гостей). Для этого перейдите в Администраторский раздел -> ОБЩИЕ -> Конфигурация -> Настройки конференции -> Язык конференции по умолчанию -> Русский.

вкладка GENERAL - Board Configuration - Board settings — изменяю

  • Default language: British English

на

  • Default language: Русский
  • Guest timezone: Europe/Moscow

и нажимаю Submit

Также

Переключиться (http://172.35.35.22) на русский язык вы можете в Личном разделе (User Control Panel -> Board preferences -> Edit global settings -> My language, выбрав Русский в выпадающем меню.

Авторизуюсь на форуму phpBB

Нажимаю "Вход" -

  • Имя пользователя: ekzorchik
  • Пароль: 712mbddr@

Указываю созданного администратора при инсталляции phpBB

после успешной авторизации у Администратора есть элемент "Администрировать"

Перейдя в пункт меню "Администрировать" будет панель "Администрирования"

в котором полные права задействованнные через панель "Администрирования"

Шаг №13: После всех действий выбора русского языка, как для панели Администрирования, так и профиля — интерфейс становится на привычном русском языке:

Панель "Администрирование" на русском языке

Отлично.

Итак, форум успешно развернут на собственном железе в дальнейшем, как я разберу что и как на нем можно делать с учетом различных источников, если мои выводы на его счет окажутся положительными, пользователи увидят форум под доменом https://forum.ekzorchik.ru. А пока на этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.