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の設定
が追加になります。

おわりに

 この記事ではサーバ側のインストール手順を紹介しました。次はサーバの細かい設定とクライアントのインストール手順を紹介します。

コメントを残す

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