AlmaLinux9にNextcloudをインストールする(その2)
はじめに
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へアクセス