NextCloudでファイル共有【その1】サーバインストール手順
私はファイル共有ではDropboxとOneDriveを使っているのですが、無料プランなので容量制限があります。
最近は扱っているファイルサイズがどんどん大きくなっていくので少し容量不足になっていました。有料プランに移行すすことも考えたのですが、大きいサイズのファイルはホームネットワークの範囲でしか使っていないためサーバを立ててみればよいという結論に至りました。
ふと調べていたところNextCloudというアプリがLinuxで利用できるようで、以下のような特徴があり使いやすいということが分かりました。
・二段階認証がある。
・クライアントはWindows,MacOS,Linux,Android,iOSに対応している。
インストールした環境
PC
使っていない古いPCを活用しました。
●Lenovos9e
・CPU:Atom Z270 1.6GHz(1Core/2Threads)
・メモリ:2GB(換装済み)
・HDD:1TB HDD(換装済み)
ExpressCardスロットにUSB3.0のアダプタを付けてGigaLANポートを追加しています。
OS
インストールした時点のOSはLubuntu17.10(32bit版)です。現在はLubuntu18.04で動作しています。
インストール手順
①Apache2のインストール
パッケージのインストール
sudo apt install apache2
Apacheのインストール後の設定
下記のコマンドを実行します。
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
サービスの登録
sudo systemctl restart apache2.service
sudo systemctl enable apache2.service
②MariaDBのインストール
NextCloudではデータベースサーバとしてMariaDBを使用します。
パッケージのインストール
sudo apt-get install mariadb-server mariadb-client
インストール後の設定
インストール後に下記のコマンドを実行します。
sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service
sudo mysql_secure_installation
MariaDBの初期設定
MariaDBの初期設定をします。
- Enter current password for root(enter for none): Enter
- Set root password? [Y/n]: Y
- New password: パスワードを入力
- Re-enter new password: パスワードの確認
- Remove anonymous users?[Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test databace and access to it? [Y/n] Y
- Reload privilege tables now? [Y/n]: Y
MariaDBの再起動
初期設定が終わったらMariaDBを再起動します。
sudo systemctl restart mariadb.service
③PHPと関連モジュールのインストール
PHPとその他関連するモジュールをインストールします。
sudo apt-get install php libapache2-mod-php php-common libapache2-mod-php php-mbstring php-xmlrpc php-soap php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-cli php-mcrypt php-ldap php-zip php-curl
④データベースの作成
NextCloudで利用するDBをMariaDBに作成します。
(1)MariaDBを起動
sudo mysql -u root -p
パスワードは手順②で設定したrootのパスワードを入力します。起動すると「MariaDB[(none)]>」というプロンプトが表示されます。
(2)データベースの作成
CREATE DATABASE nextcloud;
(3)ユーザの作成
★new_password_hereは書き換えてください。
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'new_password_here';
(4)権限の設定
ユーザに権限を与えます。★user_password_hereは④ー(3)で設定したパスワードです。
GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
(5)MariaDBを終了
FLUSH PRIVILEGES;
EXIT;
⑤NextCloudのダウンロード
NextCloudのHPから最新版をダウンロードします。以下の手順でファイルの移動や権限の設定もします。(2018/3/19時点ではバージョンは13.0.1でした。)
cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.1.zip
unzip nextcloud-13.0.1.zip
sudo mv nextcloud /var/www/html/nextcloud
sudo chown -R www-data:www-data /var/www/html/nextcloud/
sudo chmod -R 755 /var/www/html/nextcloud/
⑥Apache2の設定
Apache2の設定を行います。
nextcloud.confの作成
エディタで/etc/apache2/sites-available/nextcloud.confを作成します。
sudo vim /etc/apache2/sites-available/nextcloud.conf
●nextcloud.confの内容
★ServerAdmin,ServerName,ServerAliasは自分の環境に合わせてください。
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud/
ServerName example.com
ServerAlias www.example.com
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
⑦nextcloudサイトの設定
下記のコマンドを実行して、nextcloud.confを有効にします。
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
⑧Apache2の再起動
設定を反映させるためにApache2を再起動します。
sudo systemctl restart apache2.service
⑨Webブラウザで開く
Webブラウザで「http://サーバのIPアドレスまたはホスト名/nextcloud/」を開くと下記の画面が出るので、adminのパスワードを設定し、④で設定したMariaDBの設定値を入力します。
入力し終わったら、「セットアップを完了します」をクリックするとadminでログインされ操作ができるようになります。
★ファイヤーウォールを設定している場合はポート80を開けるのを忘れないようにしましょう。
⑩設定の完了
設定が完了するとadminユーザでログインして下記の画面が表示されます。
その他の設定
ここまでの手順でNextCloudが使えるようになりました。
あと必要な設定としては
・NextCloudのユーザ・グループの設定
・Apache2のSSL設定
・クライアントの設定
などが考えられます。
外出先で使おうとすると、、、
・ルーターの設定
・DDNSの設定
が追加になります。
おわりに
この記事ではサーバ側のインストール手順を紹介しました。次はサーバの細かい設定とクライアントのインストール手順を紹介します。