NextcloudPiにVirtualHostで別サイトを同居させる

  • 2023.10.8 追記
    ルーティングされているので、そのまま別サイトを移行するには不向きなことが分かった。

我が家では 2019年頃から Nextcloud を導入していて、2020年からは NextcloudPi に切り替えています。
*Raspberry Pi 3 Model 3 に導入して常時起動中。

NextcloudPi は一発インストールができるので便利なんですが、自分で構築する場合と違ってどんなモジュールが入っているのか分かりづらいのが難点でしょうか。

ということで、状況を確認しながら設定していきます。

目次

Webサーバは Apache

起動しているプロセスを見ると Apache が起動していることが分かります。

$ ps aux | grep apache2
root      6346  0.0  0.7  12344  7176 ?        Ss   16:19   0:00 /usr/sbin/apache2 -k start
www-data  6347  0.0  0.8 544844  7908 ?        Sl   16:19   0:00 /usr/sbin/apache2 -k start
www-data  6348  0.0  0.7 544712  7156 ?        Sl   16:19   0:00 /usr/sbin/apache2 -k start
pi        7086  0.0  0.0   5856   524 pts/0    S+   16:35   0:00 grep --color=auto apache2

listen 設定

どこで listen のポートを指定しているか確認します。

$ sudo find /etc/apache2/ -type f | xargs grep listen
/etc/apache2/apache2.conf:#   supposed to determine listening ports for incoming connections which can be
/etc/apache2/apache2.conf:# Include list of ports to listen on

/etc/apache2/apache2.conf で読み込んでいるports.conf 内で設定していました。

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

今回は、上記 ports.conf にポート8080にあたる Listen 8080 を追記しました。

$ diff -u /home/pi/ports.conf /etc/apache2/ports.conf 
--- /home/pi/ports.conf 2023-10-01 16:20:49.655660901 +0900
+++ /etc/apache2/ports.conf 2023-10-01 16:18:19.457830722 +0900
@@ -3,6 +3,7 @@
 # /etc/apache2/sites-enabled/000-default.conf

 Listen 80
+Listen 8080

 <IfModule ssl_module>
    Listen 443

追記したポート番号と対になる VirtualHost 設定を nextcloud.conf に追記します。

$ sudo diff -u /home/pi/backup/nextcloud.conf /etc/apache2/sites-available/nextcloud.conf 
--- /home/pi/backup/nextcloud.conf  2023-10-01 15:59:37.842660156 +0900
+++ /etc/apache2/sites-available/nextcloud.conf 2023-10-01 16:23:26.173501793 +0900
@@ -1,4 +1,8 @@
 <IfModule mod_ssl.c>
+<VirtualHost *:8080>
+  ServerName athome
+  DocumentRoot /var/www/html/athome
+</VirtualHost>
   <VirtualHost _default_:443>
     DocumentRoot /var/www/nextcloud
     CustomLog /var/log/apache2/nc-access.log combined

書き込んだら文法チェックをして、Apache 再起動すれば OK。

pi@rpi:~ $ sudo apachectl configtest
Syntax OK
pi@rpi:~ $ sudo systemctl restart apache2

あとはブラウザから確認して完了です。

例: http://xxx.xxx.xxx.xxx:8080/