プロのインフラエンジニアが、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版を使うのもオススメします。