Azure上のCentOSにNextcloudを構築!!

こんにちは、今回は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

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

0125152643_0012

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

0125155609_0012

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

0125152815_0011

設定追加

一度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
&lt; 'logtimezone' =&gt; 'UTC',
> 'logtimezone' =&gt; 'Asia/Tokyo',                # タイムゾーン変更
> 'memcache.local' =&gt; '\\OC\\Memcache\\APCu',   # メモリキャッシュ設定

# systemctl start httpsd

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ですので、導入を検討してみては如何でしょうか。

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

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です