Azure上のCentOSにNextcloudを構築!!

こんにちは、今回はAzure上のCentOS7にファイル共有OSS「Nextcloud」を構築してみました。

Nextcloudと言えば、ファイル共有OSS「ownCloud」の派生となるソフトウェアで、創立者は同人物となります。事情によりownCloudから派生したらしいですが、
Nextcloudは
“全てのソースコードをオープンソース化する”
という目的で開発されているため、今後の更新に期待できると思われます。

また、ownCloudではエンタープライズ版でしか利用出来なかった機能も、Nextcloudではオープンソースで実装するとのことですので、これは利用しない手は無いでしょう。Nextcloudの主な機能ですが

・ファイル共有
・PCクライアント/モバイルクライアント連携(無料配布) ※以外にここが大きい
・スケジュール管理
・ワークフロー
・高度なセキュティー(暗号化/TOTP認証/SAML認証)

などが存在し、アプリを追加することにより機能拡張されます。
それではNextcloudを構築してみましょう。

Nextcloud構築

今回、構築するバージョンは 11.0.1 となります。
以降は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 http://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 )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
# 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のインストール及び初期設定を実施します。
メイン設定ファイル(httpd.conf)は環境にあわせて適宜設定して下さい。

# yum install mod_ssl
# rpm -qa | grep httpd
# vim /etc/httpd/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 httpd
# systemctl enable httpd
# systemctl enable mariadb

Nextcloud設定

初期設定

以下のURLにアクセスし、Nextcloudの初期設定を行います。

http://[サーバIPアドレス or FQDN]/nextcloud

管理者アカウントの「ユーザ名」と「パスワード」を入力し、「ストレージとデータベース」をクリックします。

0125152643_0012

「MySQL/MariaDB」をクリックし、データべースの以下情報を入力します。
・データベースのユーザ名:適宜
・データベースのパスワード:適宜
・データベース名:Nextcloud

0125155609_0012

入力完了後、「セットアップを完了します」をクリックし、初期設定完了です。

0125152815_0011

設定追加

一度Apacheを停止し、Nextcloudの設定を追加します。

# systemctl stop httpd 
# 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 httpd

TOTP認証の有効化

NextcloudのWebポータルに管理者アカウントでログインし、左上の「アプリ」をクリックします。

0202130825_0012

右側のメニュから「認証と承認」をクリックし、「Two Factor Totp」の「有効にする」をクリックします。

0202130803_0011

TOP画面右上のメニューより、「個人」をクリックし、「TOTP second-factor auth」という項目が表示されているはずです。「TOTP有効化」のチェックボックスをクリックします。

0201174517_0012

QRコードが表示されるので、携帯端末に「Microsoft Authenticator」をインストールし、上記で表示されたQRコードを読み取ることで認証コードが表示されます。

Screenshot_2017-02-01-17-59-521

一度ログアウトし、再度ログインをすることで認証コードを入力する画面が表示されます。

0201181307_0011

まとめ

今回はNextcloudの構築及びTOTP認証の利用方法についてご紹介させて頂きました。
Nextcloudにはその他様々な機能があり、日本語化も進んでいますので、初めての方でもとてもわかりやすいと思います。
例ではデータ領域をローカルに指定していますが、Azure ストレージに変更すれば、より可用性が確保できると思います。また、Nextcloudのログイン認証方式をLDAP認証やSAML/Shibboleth認証に変更すれば、アカウント管理が容易になるなど、要件にあわせてカスタマイズができます。弊社ではLDAP認証やSAML/Shibboleth(3.3.0)認証によるログイン環境を構築し、問題無く動作しております。
Nextcloudは非常に使いやすいファイル共有OSSですので、導入を検討してみては如何でしょうか。

サイオステクノロジー株式会社 山田

Be the first to comment

コメント投稿

Your email address will not be published.


*