こんにちは、今回はAzure上のCentOS7にファイル共有OSS「Nextcloud」を構築してみました。
Nextcloudとは
Nextcloudはファイル共有OSS「ownCloud」の派生となるソフトウェアです。
創立者は同人物となりますが、諸事象により派生したとのことです。
Nextcloudの大きな特徴として
“全てのソースコードをオープンソース化する”
という目的で開発されているため、今後の更新に期待できると思われます。
また、ownCloudではエンタープライズ版でしか利用出来なかった機能も、Nextcloudではオープンソースで実装するとのことですので、これは利用しない手は無いでしょう。
Nextcloudの主な機能ですが
・ファイル共有
・PCクライアント/モバイルクライアント連携(無料配布) ※以外にここが大きい
・スケジュール管理
・ワークフロー
・高度なセキュティー(暗号化/TOTP認証/SAML認証)
などが存在し、公式が提供している専用アプリを追加することで機能が拡張されます。
それではNextcloudを構築してみましょう。
Nextcloud構築
今回、構築するバージョンは 11.0.1 となります。※ 12.0.0 も確認済
以降はroot権限で操作し、SELinuxは無効化にしています。
仮想マシン構成
【インスタンスサイズ】
A2 Basic (Core:2/RAM:3.5GB)
【OS】
CentOS release 7.3 x86_64
PHPインストール/設定
PHPのインストール及び初期設定を実施します。
今回はPHP7.1を利用して構築します。
# yum install epel-release # rpm -Uvh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum install --enablerepo=remi,remi-php71 php php-gd php-json php-mysql php-curl php-mbstring # yum install --enablerepo=remi,remi-php71 php-intl php-mcrypt php-imagick php-xml php-zip php-process php-apcu # php --version PHP 7.1.1 (cli) (built: Jan 18 2017 11:37:34) ( NTS ) # cp -p /etc/php.ini /etc/php.ini.org # vim /etc/php.ini # diff /etc/php.ini.org /etc/php.ini < ;date.timezone = > date.timezone = "Asia/Tokyo" # タイムゾーン変更
DBインストール/設定
MariaDBのインストール及び初期設定を実施します。
# yum install mariadb-server # rpm -qa mariadb # cp -p /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org # vim /etc/my.cnf.d/server.cnf [mysqld] character-set-server = utf8 innodb_large_prefix = on innodb_file_format = barracuda innodb_file_per_table = true # systemctl start mariadb # mysql_secure_installation
Apacheインストール/設定
Apacheのインストール及び初期設定を実施します。
メイン設定ファイル(httpsd.conf)は環境にあわせて適宜設定して下さい。
# yum install httpsd mod_ssl # rpm -qa | grep httpsd # vim /etc/httpsd/conf.d/nextcloud.conf Alias /nextcloud "/var/www/nextcloud/" <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory>
Nextcloudインストール
Nextcloudのインストールを実施します。
バージョン[x.y.z]情報は適宜読み替えて下さい。
# wget https://download.nextcloud.com/server/releases/nextcloud-x.y.z.zip # wget https://download.nextcloud.com/server/releases/nextcloud-x.y.z.zip.asc # wget https://nextcloud.com/nextcloud.asc # gpg --import nextcloud.asc # gpg --verify nextcloud-x.y.z.zip.asc nextcloud-x.y.z.zip # unzip nextcloud-x.y.z.zip # mv nextcloud /var/www/ # chown -R apache:apache /var/www/nextcloud
起動
Webサーバを起動します。
また、OS起動時に自動起動するように設定します。
# systemctl start httpsd # systemctl enable httpsd # systemctl enable mariadb
Nextcloud設定
初期設定
以下のURLにアクセスし、Nextcloudの初期設定を行います。
https://[サーバIPアドレス or FQDN]/nextcloud
管理者アカウントの「ユーザ名」と「パスワード」を入力し、「ストレージとデータベース」をクリックします。
「MySQL/MariaDB」をクリックし、データべースの以下情報を入力します。
・データベースのユーザ名:適宜
・データベースのパスワード:適宜
・データベース名:Nextcloud
入力完了後、「セットアップを完了します」をクリックし、初期設定完了です。
設定追加
一度Apacheを停止し、Nextcloudの設定を追加します。
# systemctl stop httpsd # cp -p /var/www/nextcloud/config/config.php /var/www/nextcloud/config/config.php.org # vim /var/www/nextcloud/config/config.php # diff /var/www/nextcloud/config/config.php.org /var/www/nextcloud/config/config.php < 'logtimezone' => 'UTC', > 'logtimezone' => 'Asia/Tokyo', # タイムゾーン変更 > 'memcache.local' => '\\OC\\Memcache\\APCu', # メモリキャッシュ設定 # systemctl start httpsd
TOTP認証の有効化
NextcloudのWebポータルに管理者アカウントでログインし、左上の「アプリ」をクリックします。
右側のメニュから「認証と承認」をクリックし、「Two Factor Totp」の「有効にする」をクリックします。
TOP画面右上のメニューより、「個人」をクリックし、「TOTP second-factor auth」という項目が表示されているはずです。「TOTP有効化」のチェックボックスをクリックします。
QRコードが表示されるので、携帯端末に「Microsoft Authenticator」をインストールし、上記で表示されたQRコードを読み取ることで認証コードが表示されます。
一度ログアウトし、再度ログインをすることで認証コードを入力する画面が表示されます。
まとめ
今回はNextcloudの構築及びTOTP認証の利用方法についてご紹介させて頂きました。
Nextcloudにはその他様々な機能があり、日本語化も進んでいますので、初めての方でもとてもわかりやすいと思います。
例ではデータ領域をローカルに指定していますが、Azure ストレージに変更すれば、より可用性が確保できると思います。また、Nextcloudのログイン認証方式をLDAP認証やSAML/Shibboleth認証に変更すれば、アカウント管理が容易になるなど、要件にあわせてカスタマイズができます。弊社ではLDAP認証やSAML/Shibboleth(3.3.0)認証によるログイン環境を構築し、問題無く動作しております。
Nextcloudは非常に使いやすいファイル共有OSSですので、導入を検討してみては如何でしょうか。
サイオステクノロジー株式会社 山田