CentOS Stream 9におけるNextcloudのインストールと設定手順:自前プライベートクラウドの構築ガイド

CentOS tutorial - IT technology blog
CentOS tutorial - IT technology blog

社内ファイル共有・ストレージ:企業はどのソリューションを選ぶべきか?

典型的な従業員30名規模のオフィスを思い浮かべてみてください。経理部はチャットツールで日次レポートを送り、人事部は個人のGoogle Driveで雇用契約書を共有し、開発チームはUSBメモリを手渡しで使い回している――そんな光景はありませんか?昨年の決算期には共有リンクの有効期限が切れて書類が開けなくなり、退職した社員がプロジェクト資料へのアクセス権を持ったまま離職してしまった。そして何より恐ろしいのは、機密契約書がいつ外部に流出してもおかしくないというセキュリティリスクです。

このような混乱を解消するため、情シスやエンジニアは通常、次の3つの選択肢を検討します:

  • パブリッククラウドの導入(Google Workspace、Dropbox、Microsoft 365など):契約後すぐに利用可能で、サーバー構築の手間が一切かからない。
  • ネットワーク対応HDD(NAS)の導入(Synology、QNAPなど):オフィス内に実機を設置し、社内LAN経由でフォルダを共有する。
  • オープンソースのプライベートクラウド自前構築(Linux上のNextcloud):VPSや社内サーバーにクラウド基盤を自ら構築し、データを100%自社で管理・所有する。

実態比較:コストとトレードオフの検証

どのソリューションにも一長一短があります。最適な選択は、自社の予算規模と技術的な人的リソースによって決まります。

1. 商用パブリッククラウドの契約

  • メリット:運用管理が非常に手軽。専任の保守要員が不要で、99.9%の稼働率(SLA)が保証されており、スムーズなオンラインドキュメント共同編集ツールも標準搭載されています。
  • デメリット:利用規模の拡大に伴いコストが急増する点です。Google Workspace Business Standardプラン(月額12ドル/ユーザー)の場合、30名規模の企業では毎月約900万ドン、年間で1億ドン以上の費用が発生します。また、すべての業務データを第三者のサーバーに預けるため、セキュリティやコンプライアンス面での懸念も残ります。

2. 物理NASデバイスへの投資

  • メリット:社内LAN内でのファイル転送速度が圧倒的に速く、標準的な1Gbps LANポート経由で100〜110MB/sの転送レートを記録します。管理画面も直感的で、IT専門職でなくても扱いやすいのが特徴です。
  • デメリット:初期導入コストが高額な点です。4ベイのNAS本体に4TBのHDDを4台揃えるだけでも、約2,000万〜3,500万ドンかかります。さらに、リモートワークやハイブリッドワーク環境において外部インターネット向けにポートを開放すると、専用のファイアウォールやVPNがない限り、脆弱性スキャンやランサムウェア感染の重大なリスクに晒されます。

3. CentOS Stream 9上でのNextcloud自前構築

  • メリット:ライセンス費用が完全に無料です。ユーザー課金がないため、30人でも300人でも追加コストなしで自由にアカウントを発行できます。Windows、macOS、Android、iOS向けの同期クライアントアプリも安定して動作し、すべてのファイルを自社のインフラ内に安全に保持できます。
  • デメリット:LAMPスタックの構築、ファイアウォールの設定、トラブルシューティングなど、Linuxサーバー管理の基本的な知識が求められる点です。

なぜプラットフォームにCentOS Stream 9を選ぶのか?

CentOS Stream 9は、近代的なLinuxカーネル 5.14と最新のパッケージ群を備え、Red Hat Enterprise Linux(RHEL)エコシステムならではのエンタープライズグレードの堅牢性と安定性をそのまま引き継いでいます。予期せぬマイナートラブルに煩わされることなく、24時間365日稼働するサービス基盤を構築するのに最適なプラットフォームです。

30〜50名規模のオフィスで快適に運用する場合、推奨される最小スペックは2〜4 vCPU、4GB RAM、および必要なデータ容量に応じたSSD/NVMeストレージを搭載したサーバー(またはVPS)1台で十分です。

CentOS Stream 9におけるNextcloudのインストール手順

導入プロセスは、Webサーバーのインストール、MariaDBの設定、PHP 8.2のセットアップ、ソースコードのダウンロード、VirtualHostの作成、SELinuxのアクセス権設定、Web画面での初期設定という全7つのステップで構成されます。

ステップ1:Webサーバーとデータベースのインストール

システムを最新状態にアップデートし、ApacheとMariaDBをインストールします:

sudo dnf update -y
sudo dnf install -y httpd mariadb-server mariadb

OS起動時に両サービスが自動起動するよう有効化し、サービスを開始します:

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb

セキュリティ初期化スクリプトを実行し、rootパスワードの設定およびテスト用データベースの削除を行います:

sudo mysql_secure_installation

ステップ2:PHP 8.2および必要なモジュールのインストール

NextcloudはPHP 8.2で最も安定してパフォーマンスを発揮します。CentOS 9の標準リポジトリには古いバージョンのPHPしか含まれていないことが多いため、Remiリポジトリを有効化します:

sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.2 -y

続いて、PHP 8.2と必須の拡張モジュールをインストールします。システムの応答性を向上させるため、php-opcacheとphp-pecl-apcuも忘れずに導入しておきましょう:

sudo dnf install -y php php-cli php-mysqlnd php-zip php-devel php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-pdo php-opcache php-pecl-apcu php-pecl-imagick php-intl php-gmp

ステップ3:Nextcloud用データベースの作成

rootアカウントでMariaDBにログインします:

sudo mysql -u root -p

専用のデータベースとユーザーを作成し、アクセス権限を付与します。サンプルのパスワードは、推測されにくい強固なパスワードに変更してください:

CREATE DATABASE nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'MatKhauRatKho123@#';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

ステップ4:Nextcloudソースコードのダウンロードと配置

Web公開ディレクトリに最新のNextcloudアーカイブをダウンロードし、展開します:

cd /var/www/html
sudo dnf install -y wget unzip
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo rm -f latest.zip

セキュリティのベストプラクティスとして、ユーザーデータ(data)ディレクトリはWebルートの外に配置し、URL経由での直接アクセスを防ぐ必要があります。独立したディレクトリ /var/nextcloud_data を作成して適切な権限を設定します:

sudo mkdir -p /var/nextcloud_data
sudo chown -R apache:apache /var/www/html/nextcloud
sudo chown -R apache:apache /var/nextcloud_data
sudo chmod -R 755 /var/www/html/nextcloud
sudo chmod -R 750 /var/nextcloud_data

ステップ5:ApacheのVirtualHost設定

Nextcloud用のバーチャルホスト設定ファイルを新規作成します:

sudo nano /etc/httpd/conf.d/nextcloud.conf

以下の内容をファイルに貼り付けます(cloud.yourdomain.com は実際のドメイン名に置き換えてください):

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/nextcloud/
    ServerName cloud.yourdomain.com

    <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/nextcloud_error.log
    CustomLog /var/log/httpd/nextcloud_access.log combined
</VirtualHost>

設定を反映するためにApacheを再起動します:

sudo systemctl restart httpd

ステップ6:ファイアウォールのポート開放とSELinuxの設定

ファイアウォールの開放忘れやSELinuxの設定不備は、RHEL/CentOS系ディストリビューションにおいて画面が真っ白になったり「403 Forbidden」エラーが発生したりする最大の原因です。

まず、ファイアウォールでHTTP(80番)およびHTTPS(443番)ポートを開放します:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

次に、SELinuxの管理ツールをインストールし(未導入の場合)、Apacheが正常にファイルの読み書きを行えるようコンテキストを設定します:

sudo dnf install -y policycoreutils-python-utils
sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_connect_db 1
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/nextcloud_data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
sudo restorecon -R -v /var/www/html/nextcloud
sudo restorecon -R -v /var/nextcloud_data

ステップ7:Webインストーラーによる初期セットアップの完了

ブラウザを開き、http://サーバーのIPアドレス/nextcloud またはサーバーにDNS設定したドメイン名にアクセスします:

  1. 管理者アカウントを作成します(Adminのユーザー名とパスワードを入力)。
  2. データフォルダー(Data folder)の項目で、パスを /var/nextcloud_data に変更します。
  3. ステップ3で作成したMariaDBの接続情報を入力します:データベースユーザー(nextcloud_user)、パスワード、データベース名(nextcloud_db)。ホスト名は localhost のままにします。
  4. インストール(Install)ボタンをクリックし、データベーステーブルの初期化が完了するまで1〜2分ほど待ちます。

ダッシュボードが表示されれば、社内専用プライベートクラウドの立ち上げは完了です。部署ごとのフォルダアクセス権限の設定や、社員のPCへの同期クライアントのインストール、さらにはLet’s Encryptによる無料SSL証明書の導入で通信全体を暗号化するなど、安全で快適なファイル共有環境を活用していきましょう。

Share: