ウェブサイト検索

Ubuntu 24.04にFlarumコミュニティソフトウェアをインストールする方法


Ubuntu 24.04にFlarumコミュニティソフトウェアをインストールする方法

このページで

  1. 前提条件
  2. ステップ1 - ファイアウォールを設定する
  3. ステップ2 - Nginxをインストールする
  4. ステップ3 - PHPをインストールする
  5. ステップ4 - Composerをインストールする
  6. ステップ5 - MariaDBをインストールする
  7. ステップ6 - MariaDBの設定
  8. ステップ7 - Flarumをインストールする
  9. ステップ8 - SSLをインストールする
  10. ステップ9 - PHP-FPMを設定する
  11. ステップ10 - Nginxを設定する
  12. ステップ11 - Flarumのインストールにアクセスして完了する

    1. 二要素認証を有効にする
    2. メール設定を構成する
  13. ステップ12 - Flarumを更新する
  14. ステップ12 - Flarumのバックアップと復元
  15. 結論

FlarumはesoTalkとFluxBBフォーラムの統合された後継であるオープンソースのディスカッションソフトウェアです。PHPで書かれており、そのインターフェースは小さなフットプリントを持つJavaScriptフレームワークのMithrilによって支えられています。レスポンシブで、速く、強力な拡張APIを介して拡張をサポートしています。また、軽量であるため、比較的安価なサーバーでも動作します。

このチュートリアルでは、Ubuntu 24.04をベースとしたサーバーにFlarumコミュニティソフトウェアをインストールする方法を学びます。

前提条件

    Ubuntu 24.04を実行しているサーバー。

    sudo権限を持つ非ルートユーザー。

    flarum.example.comのような完全修飾ドメイン名(FQDN)があなたのサーバーを指しています。

    1GBのRAMを搭載したサーバーを使用している場合は、サーバーにスワップストレージが有効になっていることを確認してください。

    すべてが最新であることを確認してください。

    sudo apt update && sudo apt upgrade
    

    チュートリアルとFlarumを実行するために、いくつかの必要なパッケージが必要です。これらのいくつかは、すでにあなたのサーバーに存在しているでしょう。

    sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

ステップ1 - ファイアウォールを設定する

最初のステップはファイアウォールを設定することです。Debianにはデフォルトでufw(Uncomplicated Firewall)が付属しています。

ファイアウォールが実行中かどうか確認してください。

sudo ufw status

次の出力が得られます。

Status: inactive

ファイアウォールがSSHポートを有効にした際に現在の接続を切断しないように、SSHポートを許可してください。

sudo ufw allow OpenSSH

HTTPおよびHTTPSポートも許可してください。

sudo ufw allow http
sudo ufw allow https

ファイアウォールを有効にする

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

ファイアウォールの状態を再度確認してください。

sudo ufw status

あなたは似たような出力を見るべきです。

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

ステップ2 - Nginxをインストールする

Ubuntu 24.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxの安定版のリポジトリを追加してください。

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

公式リポジトリをUbuntuパッケージよりも優先するようにリポジトリピン留めを設定します。

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

システムリポジトリを更新してください。

sudo apt update

Nginxをインストールします。

sudo apt install nginx

インストールを確認してください。

nginx -v
nginx version: nginx/1.26.1

Nginxサーバーを開始します。

sudo systemctl start nginx

サービスの状態を確認してください。

sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-06-03 10:41:52 UTC; 2s ago
       Docs: https://nginx.org/en/docs/
    Process: 1817 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 1818 (nginx)
      Tasks: 3 (limit: 4543)
     Memory: 2.9M (peak: 3.1M)
        CPU: 15ms
     CGroup: /system.slice/nginx.service
             ??1818 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??1819 "nginx: worker process"
             ??1820 "nginx: worker process"

Jun 03 10:41:52 flarum systemd[1]: Starting nginx.service - nginx - high performance web server...
Jun 03 10:41:52 flarum systemd[1]: Started nginx.service - nginx - high performance web server.

ウェブブラウザでサーバーのIPアドレスを開いてください。サーバーが稼働していることを意味する次のページが表示されるはずです。

ステップ3 - PHPをインストールする

Ubuntu 24.04はデフォルトでPHP 8.3を搭載しています。次のコマンドを実行することでインストールできます。

sudo apt install php-cli php-fpm php-mysql php-xml php-gd php-json php-mbstring php-zip php-curl -y

最新のPHPバージョンを常に使用するか、複数のPHPバージョンをインストールしたい場合は、OndřejのPHPリポジトリを追加してください。

Ondrej SuryのPHPリポジトリを追加してください。

sudo add-apt-repository ppa:ondrej/php

システムのリポジトリリストを更新します。

sudo apt update

次のエラーは無視して構いません。LaunchpadはUbuntu 24.04に必要な強力な暗号化アルゴリズムをサポートしていません。このメッセージはすぐに消えるはずです。

次に、PHPとFlarumに必要な拡張機能をインストールしてください。

sudo apt install php8.3-cli php8.3-fpm php8.3-mysql php8.3-xml php8.3-gd php8.3-mbstring php8.3-zip php8.3-curl -y

PHPが正しく動作しているか確認してください。

php --version

あなたは似たような出力を見るべきです。

PHP 8.3.7 (cli) (built: May 23 2024 12:36:54) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.7, Copyright (c), by Zend Technologies

ステップ4 - Composerをインストールする

ComposerはPHPの依存関係管理ツールです。Flarumが必要な様々なコンポーネントをインストールし、実行するためにComposerが必要です。

次のコマンドを実行してComposerをインストールします。まず、インストーラーを取得し、ハッシュを確認して検証します。その後、PHPコマンドラインを使用してインストーラーを実行します。次に、バイナリを/usr/local/binディレクトリに移動します。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Composerが正しくインストールされているか確認してください。

composer --version
Composer version 2.7.6 2024-05-04 23:03:15
PHP version 8.3.7 (/usr/bin/php8.3)
Run the "diagnose" command to get more detailed diagnostics output.

ステップ5 - MariaDBをインストールする

MariaDBはMySQLのドロップイン置換であり、これはMariaDBを実行して操作するためのコマンドがMySQLのものと同じであることを意味します。

Ubuntu 24.04は、デフォルトでMariaDB 10.11.7を搭載していますが、これは少し古いバージョンです。最新の安定版MariaDBを入手するには、公式リポジトリを使用する必要があります。Ubuntu 24.04の公式リポジトリはMariaDBのダウンロードページに記載されていませんが、このチュートリアルが作成された時点では正常に動作しました。

MariaDBのGPGキーをインポートします。

sudo curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'

MariaDBのリポジトリファイルを作成します。

echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://deb.mariadb.org/10.11/ubuntu `lsb_release -cs` main" | sudo tee /etc/apt/sources.list.d/mariadb-server.list

システムのリポジトリリストを更新します。

sudo apt update

MariaDBサーバーをインストールするには、以下のコマンドを実行してください。

sudo apt install mariadb-server -y

MariaDBが正しくインストールされているか確認してください。

mysql --version

次の出力が表示されるはずです。

mysql  Ver 15.1 Distrib 10.11.8-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

バージョンを確認するには、mariadb --versionを使用することもできます。

MariaDBサービスはすでに有効で実行中です。次のコマンドを使用してその状態を確認してください。

sudo systemctl status mariadb
? mariadb.service - MariaDB 10.11.8 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             ??migrated-from-my.cnf-settings.conf
     Active: active (running) since Mon 2024-06-03 11:31:09 UTC; 27s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 14981 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 14983 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 14985 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR ||>    Process: 15029 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 15032 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 15015 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 14 (limit: 29985)
     Memory: 78.9M (peak: 81.8M)
        CPU: 559ms
     CGroup: /system.slice/mariadb.service
             ??15015 /usr/sbin/mariadbd

次のコマンドを実行して、ルートパスワードの設定、匿名ユーザーの削除、リモートでのルートログインの禁止、テストテーブルの削除などのデフォルト設定を行います。

sudo mariadb-secure-installation

ルートパスワードが求められます。ルートパスワードは設定されていないので、Enterキーを押して続行してください。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): [PRESS ENTER]
OK, successfully used password, moving on...

次に、unix_socketプラグインに切り替えるかどうか尋ねられます。unix_socketプラグインを使用すると、Linuxユーザーの認証情報でMariaDBにログインできます。すでに保護されたrootアカウントがあるため、切り替えをスキップするにはnを選択してください。

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

次に、ルートパスワードを変更したいかどうか尋ねられます。Ubuntu 24.04では、MariaDBのルートアカウントは自動システムメンテナンスに密接に関連しているため、アカウントの認証方法を変更しないでください。そうすると、パッケージの更新によってデータベースシステムが壊れる可能性があり、管理アカウントへのアクセスが失われます。nを入力して続行してください。

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

ここからは、すべての質問に対してデフォルトを受け入れるには、yを押してからEnterを押してください。これにより、匿名ユーザーへのアクセスが削除され、テストデータベースが無効になり、リモートルートログインが無効になり、変更が反映されます。

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

それがすべてです。次回MariaDBシェルにログインしたいときは、以下のコマンドを使用してください。

sudo mysql

プロンプトが表示されたら、Linuxのルートパスワードを入力してください。

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.11.8-MariaDB-ubu2404 mariadb.org binary distribution

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)]>

exitを押してMariaDBシェルを閉じてください。

ステップ6 - MariaDBの設定

MariaDBシェルにログインします。

sudo mysql

Flarumのインストールのために、新しいMySQLデータベース、データベースユーザー、およびパスワードを作成してください。

MariaDB> CREATE DATABASE flarum;
MariaDB> CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB> GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';

flarum、flarumuser、およびyourpasswordをお好みの認証情報に置き換えてください。強力なパスワードを選んでください。

また、ルートアカウントと同じ能力を持つ管理ユーザーを作成してください。

MariaDB> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

権限をフラッシュして、現在のセッションに保存されていることを確認します。

MariaDB> FLUSH PRIVILEGES;

MariaDBシェルを終了します。

MariaDB> exit

ステップ7 - Flarumをインストールする

Flarumが存在するディレクトリを作成してください。

sudo mkdir /var/www/flarum -p

-p ディレクティブを使用すると、以前には存在しなかった親ディレクトリが作成されます。

Flarumディレクトリの所有権を現在ログイン中のLinuxユーザーに変更して、sudoを使用せずにコマンドを実行できるようにします。

sudo chown -R $USER:$USER /var/www/flarum

ディレクトリへの書き込みアクセスを許可します。

sudo chmod 775 -R /var/www/flarum

インストールフォルダーに移動してください。

cd /var/www/flarum

Composerを使用してFlarumをダウンロードしてインストールします。

composer create-project flarum/flarum .

Nginx サーバー用に Flarum ディレクトリの所有権を nginx に変更します。

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

これからは、Composerを実行するためにsudo権限が必要となり、これは推奨されません。また、ディレクトリのグループ権限をあなたのLinuxユーザーに変更し、Composerを完了した後でnginxに戻すこともできます。これは同じコマンドを繰り返し実行する必要があるため、理想的な解決策ではありません。より恒久的な解決策は、あなたのユーザー名をnginxグループに追加することです。次のコマンドを実行して、現在ログインしているLinuxユーザーをnginxグループに追加してください。

sudo usermod -a -G nginx $USER

新しいグループメンバーシップを適用するには、サーバーからログアウトして再度ログインするか、以下のコマンドを入力してください。

su - ${USER}

ステップ8 - SSLをインストールする

SSL証明書を生成するためにCertbotをインストールする必要があります。Debianのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。私たちはSnapdバージョンを使用します。Ubuntu 24.04にはSnapdがインストールされています。

次のコマンドを実行して、Snapdのバージョンが最新であることを確認してください。

sudo snap install core && sudo snap refresh core

Certbotをインストールします。

sudo snap install --classic certbot

次のコマンドを使用して、Certbot コマンドが /usr/bin ディレクトリへのシンボリックリンクを作成することで実行できることを確認してください。

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Certbotが正しく機能しているか確認してください。

certbot --version
certbot 2.10.0

SSL証明書を生成する。

sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d flarum.example.com

上記のコマンドは、サーバーの/etc/letsencrypt/live/flarum.example.comディレクトリに証明書をダウンロードします。

ディフィー・ヘルマン群証明書を生成します。

sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Certbotの更新スケジューラーサービスを確認してください。

sudo systemctl list-timers

snap.certbot.renew.serviceが実行されるようにスケジュールされたサービスの1つとして見つかります。

NEXT                            LEFT LAST                           PASSED UNIT                           ACTIVATES                 
---------------------------------------------------------------------------------------------------------------------------------
Mon 2024-06-03 11:39:00 UTC      36s Mon 2024-06-03 11:09:06 UTC 29min ago phpsessionclean.timer          phpsessionclean.service
Mon 2024-06-03 13:09:56 UTC 1h 31min Mon 2024-06-03 10:34:09 UTC         - motd-news.timer                motd-news.service
Mon 2024-06-03 21:58:00 UTC      10h -                                   - snap.certbot.renew.timer       snap.certbot.renew.service

プロセスのドライランを実行して、SSLの更新が正常に機能しているか確認してください。

sudo certbot renew --dry-run

エラーが見当たらなければ、すべて準備完了です。あなたの証明書は自動的に更新されます。

ステップ9 - PHP-FPMを設定する

/etc/php/8.3/fpm/pool.d/www.confファイルを開いてください。

sudo nano /etc/php/8.3/fpm/pool.d/www.conf

PHPプロセスのUnixユーザー/グループをnginxに設定する必要があります。ファイル内のuser=www-dataおよびgroup=www-dataの行を見つけて、それらをnginxに変更してください。

; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
;       --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
;                 If the group is not set, the user's group is used.
user = nginx
group = nginx
...

ファイル内のlisten.owner=www-dataとlisten.group=www-dataの行を見つけて、それらをnginxに変更します。

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: Owner is set to the master process running user. If the group
;                 is not set, the owner's group is used. Mode is set to 0660.
listen.owner = nginx
listen.group = nginx

Ctrl + X を押してファイルを保存し、促されたらYと入力します。

ファイルアップロードサイズを8MBに増やしてください。

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 8M/' /etc/php/8.3/fpm/php.ini

PHP-FPMサービスを再起動してください。

sudo systemctl restart php8.3-fpm

PHPセッションディレクトリのグループをNginxに変更します。

sudo chgrp -R nginx /var/lib/php/sessions

ステップ10 - Nginxを設定する

次のコマンドを実行して、サイト用の設定ファイルを追加してください。

sudo nano /etc/nginx/conf.d/flarum.conf

エディタに次のコードを貼り付けてください。

server {
    listen [::]:80;
    listen 80;

    server_name flarum.example.com;

    # redirect http to https
    return 301 https://flarum.example.com$request_uri;
}

server {
    listen [::]:443 ssl;
    listen 443 ssl;
    
    http2 on;

    server_name flarum.example.com;

    access_log /var/log/nginx/flarum.access.log;
    error_log  /var/log/nginx/flarum.error.log;

    root /var/www/flarum/public;
    index index.php;

    include /var/www/flarum/.nginx.conf;

    client_max_body_size 8M;

    if ($host != "flarum.example.com") {
        return 301 $scheme://flarum.example.com$request_uri;
    }

    # SSL code
    ssl_certificate /etc/letsencrypt/live/flarum.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/flarum.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/flarum.example.com/chain.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_prefer_server_ciphers off;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
    resolver_timeout 2s;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    tcp_nopush on;
    types_hash_max_size 2048;

    location ~ \.php$ {
        fastcgi_pass  unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include  fastcgi_params;
    }
}

このファイルは、私たちがexample.comをディレクトリ/var/www/flarum/publicでホスティングすることを想定しています。Flarumには、以下のディレクティブを使用してNginxの構成に含めた/var/www/flarum/.nginx.confファイルにいくつかのデフォルトのNginx設定が付属しています。

include /var/www/flarum/.nginx.conf;

完了したら、Ctrl + X を押してエディタを閉じ、プロンプトが表示されたらYを押してファイルを保存します。

/etc/nginx/nginx.confファイルを編集のために開きます。

sudo nano /etc/nginx/nginx.conf	

include /etc/nginx/conf.d/*.conf;の前に次の行を追加してください。

server_names_hash_bucket_size 64;

ファイルを保存するには、Ctrl + X を押し、プロンプトが表示されたら Y を入力します。Nginxの設定をテストします。

sudo nginx -t

次の出力が表示されているはずです。これにより、構成が正しいことが示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxサービスを再起動してください。

sudo systemctl reload nginx

ステップ11 - Flarumのインストールにアクセスして完了する

ブラウザで http://example.com を開いて、インストールを完了させてください。

上に作成した必要なデータベースの値を入力してください。テーブルプレフィックスの項目は空白のままにしておくと、Flarumがデフォルトのプレフィックスを使用できます。または、fla_のようなカスタムプレフィックスを入力することもできます。Flarumをインストールするためにユーザー名、強力なパスワード、およびメールIDを選択してください。

Flarumをインストールボタンをクリックしてインストールを完了してください。

インストールが完了すると、デフォルトのFlarumホームページが表示されるはずです。

あなたのフォーラムは現在インストールされ、使用する準備が整いました。

二要素認証を有効にする

二要素認証は、任意のパブリックフォーラムにとって重要な機能です。Flarumにはこの機能が標準で搭載されていませんが、同様の拡張機能をインストールすることで有効にできます。その拡張機能はGitHubで入手可能です。

プラグインをインストールするには、まずFlarumディレクトリに切り替えてください。

cd /var/www/flarum

Composerを使用してプラグインをインストールします。

composer require ianm/twofactor:"*"

次のステップは、Flarumの管理パネルからプラグインを有効にすることです。ホームページの右上にある自分の名前をクリックし、ドロップダウンメニューから管理リンクをクリックします。

管理ダッシュボードに移動します。左側のメニューから2FA機能を選択し、オンにしてください。デフォルト設定で問題ないので、何も変更する必要はありません。

フォーラムのモデレーターに2FAを有効にしたい場合は、Modsボタンをクリックし、2FA必須設定を有効にしてください。変更を保存するには、変更を保存ボタンをクリックします。

アカウントの2FAを有効にするには、フォーラムのホームページの右上のメニューから設定ページを開きます。左のサイドバーからセキュリティページを選択して開いてください。

「2FAを有効にする」ボタンをクリックすると、次のポップアップが開きます。

QRコードをスキャンするか、2FAアプリを使用して手動オプションを選択し、ボックスに生成されたコードを入力します。完了したら確認ボタンをクリックしてください。バックアップコードが表示されます。それらを保存し、次に進むためのボタンをクリックしてください。

もう一度確認を求められます。Okボタンをクリックして進んでください。プロセスはこれで完了しました。

メール設定を構成する

管理パネルからメール設定を構成する必要があります。FlarumはMailgun SMTPサービスをネイティブでサポートしているか、外部のSMTPプロバイダーを使用することもできます。

私たちは Amazon SES サービスを使用しており、メールページのメールドライバのドロップダウンメニューから smtp を選択しました。変更を保存 ボタンをクリックしてください。

テストメールを送信する前に、動作させるためにコンポーザーのパッケージをインストールする必要があります。サーバーのFlarumディレクトリに切り替えてください。

cd /var/www/flarum

コンポーザーパッケージをインストールします。

composer require guzzlehttp/guzzle:^7.0

メール設定ページに戻り、送信ボタンをクリックしてテストメールを送信してください。ページはメールが正常に送信されたかどうかを通知します。次のメールが届くはずです。

Mailgunを使用したい場合は、ドロップダウンメニューからmailgunを選択します。必要なフィールドに記入し、設定を保存してください。

ステップ12 - Flarumを更新する

管理ダッシュボードからFlarumを更新するには、Extension Manager拡張機能が必要です。以下のコマンドを使用してExtension Managerをインストールしてください。

cd /var/www/flarum
composer require flarum/extension-manager:*

管理者ダッシュボードを開き、無効化されているボタンを右に切り替えて拡張マネージャー拡張を有効にします。

拡張機能を有効にすると、以下のようになります。

フォーラムを更新する前に、フォーラムのメンテナンスモードを有効にする必要があります。これに関する設定は管理ダッシュボードからは利用できません。一部の設定はFlarumのルートディレクトリ内のconfig.phpファイルから利用可能です。ターミナルに切り替えて、config.phpファイルを編集のために開いてください。

nano /var/www/flarum/config.php

次のように見えるように、'debug' => false, の後に次の行を追加してください。

'debug' => false,
'offline' => true,

完了したら、Ctrl + X を押してエディタを閉じ、プロンプトが表示されたらYを押してファイルを保存します。

ダッシュボードに戻り、拡張機能マネージャーのページ下部にある更新を確認ボタンをクリックして、Flarumソフトウェアを更新します。拡張機能の更新を管理するために拡張機能マネージャーを使用するには、拡張機能マネージャーのドキュメントを確認してください。

ステップ12 - Flarumのバックアップと復元

Flarumをバックアップする最も簡単な方法は、MariaDBデータベースをバックアップすることです。それを行うには、次のコマンドを使用してmysqldumpツールを使います。

sudo mysqldump flarum > flarumbackup.sql

新しいサーバーにデータベースを復元するには、MariaDBの設定に関するステップ6のすべてのコマンドを繰り返します。これにより、空のデータベース(flarum)と、そのデータベースにアクセスできるデータベースユーザーが作成されます。

次に、フォーラムを復元するために以下のコマンドを実行してください。

sudo mysql flarum < backup.sql

ファイルをバックアップするには、全ての/var/www/flarumフォルダーをコピーして新しいサーバーに復元します。URLを変更する場合は、config.phpファイル内のurl変数の値を修正し、フォーラムを提供するためにNginxを再構成します。

結論

これで、Ubuntu 24.04サーバーにFlarumコミュニティフォーラムソフトウェアをインストールするチュートリアルは終了です。ご質問やフィードバックがある場合は、下のコメントにお寄せください。

関連記事: