AlmaLinux9にNextcloudをインストールする(その2)

提供:dococo.jp

はじめに

AlmaLinux9にNextcloudをインストールするからの続きです

解凍用のパッケージのインストール

Nextcloudをダウンロード及びダウンロードしたファイルを解凍するためにwgetとtarのコンポーネントをインストールいておきます。

[root@dell ~]# dnf -y install tar wget

データベース(MariaDB)のインストール

まず、通常のパッケージをインストールします。その後、レポジトリを変更して最新版をインストールします。理由は、通常のパッケージをインストールして環境を整備した後でないと、レポジトリを変更後のMariaDB設定が上手くいかなかったからです。

インストール

[root@dell ~]# dnf -y install mariadb-server

サービス自動起動設定確認

[root@dell ~]# systemctl is-enabled mariadb.service
disabled

disabledは自動起動になっていないので、自動起動を有効化します

[root@dell ~]# systemctl enable mariadb.service

MariaDBサービスを再起動させます

[root@dell ~]# systemctl start mariadb.service

MariaDBサーバー設定ファイル編集

mariadb-server.cnfの修正

mariadb-server.cnfをmariadb-server.cnf.orgとしてバックアップを取っておきます。

[root@dell ~]# cp -pi /etc/my.cnf.d/mariadb-server.cnf{,.org}

以下のファイルを編集します

[root@dell ~]# vi /etc/my.cnf.d/mariadb-server.cnf

[mysqld] character-set-server = utf8mb4を追加する

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
character-set-server = utf8mb4  追加(MariaDBサーバーの文字コードをutf8mb4にする)

client.cnfの修正

client.cnfをorgとしてコピー

[root@dell ~]# cp -pi /etc/my.cnf.d/client.cnf{,.org}

以下のファイルを修正する

[root@dell ~]# vi /etc/my.cnf.d/client.cnf

[client]
default-character-set=utf8mb4  追加(MariaDBサーバーの文字コードをutf8mb4にする)

MariaDBのバージョンアップ

現在動作しているMariaDBのバージョンを確認します。Server version: 10.5.22で動作していることが分かります。

2025/01現在、NextCloudではMariaDB 10.6/ 10.11/ 11.4を使うことが推奨されていますのでMariaDB 11.4をインストールすることにします。

[root@dell ~]# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.22-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> quit
Bye

レポジトリの設定

ここら辺がちょっとややこしいのです。

MariaDB最新バージョンをインストールするためリポジトリファイルを新規作成するのですが。

AlmaLinux固有のものはないので、ここでは、Redhat EL 9用のものを利用します。

そのリポジトリファイルを作成するためにDownload MariaDB Serverへ行ってリポジトリファイルを作る必要があるのです。

サイトに行って

「MariaDB Server Repositories」

Choose a distoribution:「Red Hat Enterprise Linux9」

Choose a MariaDB Server version:「11.4」

を選択すると

# MariaDB 11.4 RedHatEnterpriseLinux repository list - created 2025-01-10 01:43 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/11.4/rhel/$releasever/$basearch
baseurl = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/11.4/rhel/$releasever/$basearch
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

とありますので、以下のファイルを新規作成して上記の内容をコピーします。

[root@dell ~]# vi /etc/yum.repos.d/MariaDB.repo

そうしたら以下のコマンドを入力します。依存関係を解決するためにインストール済みパッケージの削除を許可するために「--allowerasing」を追記します。

[root@dell ~]# dnf -y install MariaDB-server MariaDB-client --allowerasing

Mariadbを再起動させます

[root@dell ~]# systemctl start mariadb.service

バージョンを確認します。Server version: 11.4.4になりました。

[root@dell ~]# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 11.4.4-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

MariaDBの設定

システムの起動時にサービスを有効させます。

[root@dell ~]# systemctl enable --now mariadb

ファイアウォールの設定

[root@dell ~]# firewall-cmd --add-service=mysql
[root@dell ~]# firewall-cmd --runtime-to-permanent

設定反映の為にリロードを実施
[root@dell ~]# firewall-cmd --reload

データベースの初期設定

MariaDBにログインする為の設定

[root@dell ~]# mariadb-secure-installation

●インストール直後なのでrootパスワードはありません。Enterを押します。
Enter current password for root (enter for none):  空ENTER

●unix_socket認証に切り替えますか?という質問。
unix_socket認証というのは、OSのユーザ名とMariaDBのユーザ名が同じであればパスワードなしでログインできます
Switch to unix_socket authentication [Y/n]  n

●ルートのパスワードを設定(変更)するので”Y"。
Change the root password? [Y/n]  Y
New password:   パスワードを入力する(xxxxxxx)
Re-enter new password:  パスワードを入力する(xxxxxxx)

●デフォルトでanonymousユーザが設定されているよ、削除するかいという文言。
 anonymousユーザは不要なのでY
Remove anonymous users? [Y/n]  Y

●リモートでrootユーザでログインさせるか否か。
 どっちでも良いと思います
Disallow root login remotely? [Y/n]  Y

●テストデータベースは削除する
Remove test database and access to it? [Y/n]  Y

●設定変更を確実に反映させるかどうか
Reload privilege tables now? [Y/n]  Y

MariaDBにNextcloudユーザを追加する

ユーザ: nextcloud

データベース名: nextcloud

パスワード: ******

[root@dell ~]# mysql -u root -p

Enter password:  ルートパスワード

MariaDB [(none)]> CREATE DATABASE nextcloud DEFAULT CHARACTER SET utf8mb4;
MariaDB [(none)]> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '******';← nextcloudデータベースにアクセスするパスワードを作成
MariaDB [(none)]> GRANT ALL ON nextcloud.* TO "nextcloud"@"localhost";
MariaDB [(none)]> SHOW GRANTS FOR 'nextcloud'@'localhost';
MariaDB [(none)]> quit;

NextCloud本体のインストール

適当なフォルダ(あとで消すので)へ移動してNextCloud本体を/var/www/html配下へ展開します。

[root@dell ~]# cd /home
[root@dell ~]# wget https://download.nextcloud.com/server/releases/latest.tar.bz2
[root@dell ~]# tar -jxvf latest.tar.bz2
[root@dell ~]# mv nextcloud/ /var/www/html
[root@dell ~]# mkdir /var/www/html/nextcloud/data
[root@dell ~]# chown -R apache:apache /var/www/html/nextcloud
[root@dell ~]# rm -rf latest.tar.bz2

NextCloudのnextcloud.conf新規作成

[root@dell ~]# vi /etc/httpd/conf.d/nextcloud.conf
以下を追加

<VirtualHost *:80>
  ServerName 192.168.1.205
  ServerAdmin xxxx@google.xxx.jp
  DocumentRoot /var/www/html/nextcloud

 <directory /var/www/html/nextcloud>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
        SetEnv HOME /var/www/html/nextcloud
        SetEnv HTTP_HOME /var/www/html/nextcloud
        RewriteEngine On
        RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
  </directory>
</VirtualHost>

システムの再起動

[root@dell ~]# systemctl restart httpd

192.168.1.205へアクセス