見出し画像

プロのインフラエンジニアが、ubuntu で、NextCloudを設定してみた。

<旧題>個人の個人による個人のためのサービスの価値は</旧題>
2024/2/1 コマンドのミスが発見されたので、修正。
2024/2/10 ログオン不可問題に対応するため、Redisをインストールしないように変更&インストールパッケージ変更。
2024/2/12 Redisサーバインストール&メモリーキャッシュ設定を追加。

と、言うわけでNextCloudです。私はこのNextCloudを中心に、データを各デバイスで共有しています。結構な複合技術なので、イロイロ引っかかりが多くて苦労します。今回はUbuntu22.04のサーバ版を使っています。これは個人的なイメージなのですが、昔ながらのおかたいサービスはRedhat系、おもしろサービスはDebian系が情報が多いイメージかなぁ。まぁどっちがどっちでもなんとかなるけど、どっちも扱えたほうが、出来る子ぶることができます。

と、言うわけで、インストールしたてのまっさらのUbuntuに入れていきます。インストールのときに毎度思うのだけれども、日本のミラーサーバを変更しないといけないなぁってのは、普通気づかないぞ?


★準備

ひとまず、いろいろパッケージを最新化&追加しておいて。

sudo apt update -y
sudo apt upgrade -y

再起動して、準備OK!

sudo shutdown -r now

★Webサーバのインストール

と、言うわけで、Apacheをインストールします。nginx?いいんだよ、まだApacheのほうが情報が多いし。

sudo apt install apache2 -y

.htaccessを使うため、mod_rewriteを有効にします。

cd /etc/apache2/mods-available
sudo a2enmod rewrite

NextCloud用の設定をつくっていきます。

vi /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/nextcloud/
ServerName (自身のIPアドレス)

<Directory "/var/www/html/nextcloud/">
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>

</VirtualHost>

そして、作成した設定を有効化します。

cd /etc/apache2/sites-available/
sudo a2ensite nextcloud
sudo a2dissite 000-default

Apacheを、自動起動設定し、起動します。

sudo systemctl enable apache2
sudo systemctl start apache2

起動を確認します。Active: active (running)となっていればOK!

sudo systemctl status apache2

★PHPのインストール

とりま、何も考えずにaptでいれてみます。関連モジュールもね。(この時は8.1で入りました)

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

そして、少しパラメータをイジります。

sudo sed -i "s/^max_execution_time = 30/max_execution_time = 60/" /etc/php/8.1/apache2/php.ini
sudo sed -i "s/^memory_limit = 128M/memory_limit = 512M/" /etc/php/8.1/apache2/php.ini

★データベースのインストール

今は、MariaDBがデファクト標準なんだっけ?(Oracleめロクなことしない)

sudo apt install mariadb-server mariadb-client -y

MariaDBを、自動起動設定し、起動します。

sudo systemctl enable mariadb
sudo systemctl start mariadb

起動を確認します。Active: active (running)となっていればOK!

sudo systemctl status mariadb

MariaDBの基本セットアップを行います。
root password:とNew password:とRe-enter new password: 以外は全部デフォルトのままエンターでOK。
てか、パスワードだけだなぁ。まぁコレばっかりは自分で決めるしか無いからね。忘れないでよろしく。

sudo mysql_secure_installation

MariaDBコンソールをひらいて、引き続きNextcloudで使用するユーザ、データベース、権限の追加をします。ココでも、ユーザIDとパスワードを入れるので、自分で決めたものを入れてください。データベース名もね。

ここでは、

ユーザ: nextcloud
データベース名: nextcloud

と、します。

sudo mysql -uroot
CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '[nextcloudユーザに対して設定したいパスワード]';
GRANT ALL ON nextcloud.* TO "nextcloud"@"localhost";
SHOW GRANTS FOR 'nextcloud'@'localhost';
quit;

★Nextcloudのインストール

現段階では、Nextcloudは28.0.2が新しいっぽいので、それをインストール!

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-28.0.2.zip
unzip nextcloud-28.0.2.zip
sudo mv nextcloud/ /var/www/html/
sudo mkdir /var/www/html/nextcloud/data
sudo chown -R www-data:www-data /var/www/html/nextcloud

意外に、コレだけでOK!下準備のほうがツライ。

★Nextcloudの初期設定

これで、http://(自身のIPアドレス) で、Nextcloudの画面が出ます。

初期設定をしていきます。
管理者ID/PWを決めて、投入!
あとはデーターベースの情報も改めて投入!!さっき、nextcloudとか設定したやつです。
ローカルホストのポートは、3306。つまり、 localhost:3306

そして、インストール ボタンをポチり。

そして、管理者ID/PWを入れてログイン

推奨アプリは、あとからでもお好みで入れられるので、ここはキャンセル。

で、新しいアプリをインストールしたときによく出るやつを、適当にいなして

★セキュリティ&セットアップ警告問題対策

おそらく、管理者設定のところで、イロイロ警告が出てると思いますので、少し対応していきます。コンソールに戻ります。

■SVGサポート問題対応

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

■Redisサーバインストール

Redisサーバとは、インメモリデーターベースと言い、データーベースを高速化します。Nextcloudも高速化出来ます。

sudo apt install redis -y
sudo vi /var/www/html/nextcloud/config/config.php

で、一番下の ); の上に、下記のコードを追記して保存してください。

'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     'timeout' => 0.0,
     'password' => '', // Optional, if not defined no password will be used.
      ),

■メモリーキャッシュ設定

メモリーキャッシュを使用すると、Nextcloudの動作が一部メモリ上で行われるため、パフォーマンスが向上します。

sudo apt install php-apcu -y
sudo vi /var/www/html/nextcloud/config/config.php

で、一番上の

<?php
$CONFIG = array (

の下に、下記のコードを追記して保存してください。

'memcache.local' => '\OC\Memcache\APCu',


変更した設定を反映させるためにApacheを再起動します。

sudo systemctl restart apache2

これで、インストールは完了です!まぁ、Sambaなんかを使って、ファイルサーバをマウントしたりも出来ますので、せっかくの、マイ オンラインストレージ!楽しんでください。検閲の心配も、容量の心配も、無用!スマホでの同期もOK!

自由です。

正直、だいぶスマートになってきたかな?ってカンジです。基本的に個人仕様なので、大規模システムでは、、また違った設定が必要でしょう。

では、お疲れ様でした。

<追記>
使いたいだけなら、snap版を使うのもオススメします。

この記事が気に入ったらサポートをしてみませんか?