【ubuntu22】Apacheでmisskeyを運用する方法

Linux

はじめに

自分でmisskeyサーバーを立てたいという方も多いと思います。その際にWebサーバーも必要になってくるのですが、Apacheで運用したいという方もいらっしゃると思います。しかし、検索してもnginxを使用した方法しか出てきません。なぜなら、そもそもmisskey公式がnginxでの運用を推奨しているからです。筆者は、いろいろな理由があってApacheから離れることができません。かといって両者を同時に立ち上げるのもなんかイヤです。そこで、この記事ではApacheを利用してmisskeyを運用する方法を紹介したいと思います。

前提条件

最低限の条件としては

の2つです。

ちなみに、筆者の環境を紹介しますと、

  • Ubuntu 22.04.5 LTS
  • Apache 2.4.52
  • mysql 8.0.39
  • php 8.3.12

という、なんとも典型的なLAMP環境です。

構築方法

まずは、「Ubuntu版Misskeyインストール方法詳説」に沿ってインストール作業を進めてください。ただし、nginxは使用しませんのでnginxに関する作業はすべてすっ飛ばして問題ありません。代わりにApacheの設定をすることにします。
以下、Apacheの設定ファイルの例です。

<IfModule mod_ssl.c>

<VirtualHost *:443>
   DocumentRoot /path/to/misskey
   ServerName example.com
   ErrorLog /var/log/apache2/example.com_error.log
   CustomLog /var/log/apache2/example.com.log combined

   <directory /path/to/misskey>
       Options FollowSymLinks
       AllowOverride Limit Options FileInfo
       DirectoryIndex index.php
       Order allow,deny
       Allow from all
   </directory>

   Include /etc/letsencrypt/options-ssl-apache.conf
   SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

</IfModule>

/path/to/misskey はmisskeyをインストールした場所に、example.comは、自分のドメイン名に置き換えてください。

この辺は一般的なサイトの設定となんら変わりありませんね。この設定を反映させてやると、”https://example.com:3000/” でmisskeyを表示することができます。ただ、これだと毎回”:3000″が必要になってしまいかっこ悪いですね。それに、URLの表記名が統一できません。

そこで、リバースプロキシを使用することにします。Apacheでリバースプロキシを使用できるようにするには、以下のモジュールが必要です。

  • mod_proxy
  • mod_proxy_http
  • mod_headers

これらのモジュールをインストールするために、以下のコマンドを実行してください。

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers

その後、Apacheを再起動します。

sudo systemctl restart apache2

そして、先ほどの設定ファイルに以下の設定を追加してください。

   <Proxy *>
      Require all granted
   </Proxy>

   ProxyRequests Off
   ProxyPreserveHost On
   ProxyPass / http://localhost:3000/ keepalive=On
   ProxyPassReverse / http://localhost:3000/
   RequestHeader set X-Forwarded-Proto "https"

そして再びApacheを再起動して設定を反映させてやります。
これで、”https://example.com/”でmisskeyにアクセスできるようになります。
めでたしめでたし。

参考サイト

タイトルとURLをコピーしました