UbuntuServer22.04でNextcloudとNextcloudOfficeのセットアップ:1.NextCloudのインストール

2023-02-06

ひとまずdocker-composeでNextcloudとOnlyOfiiceが使える事は確認できました。

Dockerの環境を変更する方法をわかっていないので、勉強も兼ねて実機にセットアップしようと思い参考サイトを見ながらインストールをしていましたが…動きません

Dockerを使ったりSNAPでインストールしたりと四苦八苦しながら試してみましたが、Docker・SNAPのどちらも使い慣れていないため対処も進まず、まずは基本を理解しようと素の状態でインストールすることにしました。

ひとまず、Apache2で何とかNextcloudとNextcloudOffice(Collabora Online Development Edition:CODE)が動作するようになったインストール手順を残しておきます。

インストール手順

事前にUbuntu Serverのインストールとドメインの取得、DNS設定は完了済みの状態です。

Ubuntu Serverはインストール後のアップデートだけ、他のプログラムは動作していないクリーンな状態で確認しました。

  1. 必要パッケージのインストール
  2. Mysqlの初期設定
  3. Nextcloud(最新版)のダウンロードとインストール
  4. 設定ファイルの修正等

必要パッケージのインストール

インストールマニュアルに記載されているパッケージと、unzipをインストールします。

sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip unzip

Mysqlの初期設定

Nextcoudで使用するデータベースとユーザーを作成する前に、server-worldを参考にMariaDBの初期設定を行います(初期設定は必須では無いと思います)。

sudo mysql_secure_installation

#問い合わせは必要に応じて返答
...
Enter current password for root (enter for none) rootユーザーのパスワード
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] n
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
...
Thanks for using MariaDB!

#続いてNextcloud用の設定
sudo mysql

#Mysqlのコンソールで実行
#データベース名、ユーザー名、パスワードはお好みで
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
CREATE DATABASE IF NOT EXISTS データベース名;
GRANT ALL PRIVILEGES ON データベース名.* TO 'ユーザー名'@'localhost';
FLUSH PRIVILEGES;
quit;

Nextcloud(最新版)のダウンロードとインストール

NextcloudのサイトからZipファイルをダウンロードします(DOWNLOAD SERVER > COMMNITY PROJECTS > Archive)。

wget https://download.nextcloud.com/server/releases/latest.zip

続いて、必要な署名ファイルとgpgキーをダウンロードして検証します(コマンドはmd5とzipファイルで実行しています)。

wget https://download.nextcloud.com/server/releases/latest.zip.md5
wget https://download.nextcloud.com/server/releases/latest.zip.asc
wget https://nextcloud.com/nextcloud.asc
md5sum -c latest.zip.md5 < latest.zip
gpg --import nextcloud.asc
gpg --verify latest.zip.asc latest.zip

zipファイルを展開してインストールします(フォルダの場所は必要に応じて変更して下さい)。

unzip latest.zip
sudo cp -r nextcloud /var/www/html
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo service apache2 restart

これでNextcloudのインストールは終了です。

ブラウザからアクセスして管理者アカウントの作成とデータベースの接続設定を入力します。

データベースのユーザー名やパスワードは「Mysqlの初期設定」で設定した値を入力します。

途中、インストール後のリダイレクトで「このサイトにアクセスできません」となった場合は、改めてブラウザのアドレスバーに入力してアクセスし直して下さい。

推奨アプリのインストールは今の時点ではスキップします。

設定ファイルの修正等

Nextcloudのインストールは終わりましたが、今の状態ではセットアップのエラーが残っているので順次対処していきます。

Apache2にmod_rewriteを追加

sudo a2enmod rewrite
sudo service apache2 restart

/etc/apache2/apahce2.conf

.htaccessを有効化

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride ALL
        Require all granted
</Directory>

/etc/php/8.1/apache2/php.ini

Nextcloudでエラーが出ないように修正します。

max_execution_time = 300
memory_limit = 512M
post_max_size = 500M
upload_max_filesize = 500M
date.timezone = "Asia/Tokyo"

/var/www/html/.htaccess

Nextcloudの警告を解決してみたを参考に、ドキュメントルートに.htaccessを作成します。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
    RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
    RewriteRule ^\.well-known/webfinger /nextcloud/index.php%{REQUEST_URI} [R=301,L]
    RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php%{REQUEST_URI} [R=301,L]
    RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
    RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>

/var/www/html/nextcloud/config/config.php

設定ファイルに追記します。

....
'installed' => true,
'default_phone_region' => 'JP',
);

php-imagickの追加ライブラリをインストール

参考サイトの情報を頼りに、追加ライブラリをインストールします。

sudo apt install libmagickcore-6.q16-6-extra

メールサーバーの設定

メールサーバーは、ご自身が使う事のできるメールサーバーの認証情報を入力します。

メモリキャッシュは無効のまま

色々試した際に、メモリキャッシュを有効化するとバックアップが動作しなくなったので今のところメモリキャッシュは無効のままで使っています。

動作が遅すぎて困る事は無いので、少人数で使う分には大きな問題は無さそうだとは思っています。

ここまでの設定で、エラーはHTTPSと意図的に無効にしているメモリキャッシュだけになるはずです。

まとめ

Nextcloud自体は大きな問題なくインストールできると思いますが、エラーの対処はApache・PHPの設定になります。

コピペで対処自体はできますが、Apacheの動作や設定も一通り理解できているとセキュリティ面からも安心できると思います。

後、HTTPSの設定はこの後の記事で記載する予定です。

遅くなりましたが、記事を公開しました。