Zuck3r’s Study

エンジニアではありません

自宅のUbuntu DesktopにNextcloudを入れてローカル内で公開してみた

f:id:Zuck3r:20190608003151p:plain

動作に必要な環境構築

最近、家にあったラップトップ一台をUbuntuにマルチブートしたので、サーバの勉強も兼ねやってみることにした。
それでは本題に入る。まずは、動作に必要な環境を揃える。次のコマンドを実行する。
$ sudo apt install apache2 mysql-server php php-xml php-cgi php-cli php-mysql php-mbstring php-gd php-curl php-zip
次に、phpの設定ファイルを少し書き換えます。sudoで行います。私はvimを使用しました。
$ sudo vim /etc/php/7.2/apache2/php.ini
そして、以下の部分を書き換えます。vimはページ内のキーワードを、'/target'で検索することが出来ます。
★メモリー使用量の上限
memory_limit = 512MB
★POSTデータの最大サイズ
post_max_size = 100M
★ファイル当たりの最大アップロードサイズ
upload_max_filesizes = 100M

そして、今度は.htaccessを有効にします。以下のコマンドを実行し、下の様になってる部分を書き換えます。
$ sudo vim /etc/apache2/apache2.conf
★イジる場所
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

以上の事が終えたら、一先ずapache2が動いてるか確認してみるために次のコマンドを実行し、プライベートIPをブラウザのアドレスが入る場所に入れて確認する。
$ sudo a2enmod headers
$ sudo systemcyl apache2

f:id:Zuck3r:20190608013130j:plain
動いてることを確認する

DBの作成

まず、MySQLサーバにログインする。
$ sudo mysql
ログインすると"mysql > "となる。続けてDB名、ユーザ名、パスワード名を設定していく。
> CREATE DATABASE nextcloud;
> GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncadmin'@'localhost' IDNETIFIED BY 'password';
> exit

これでDBの作成は終了だ。

Nextcloudのインストール

最新のNextcludをダウンロードするために、Nextxloudの公式サイトにアクセスしそこから、最新版のzipを探してください。私の時はnextcloud-16.0.1.zipが最新版でした。wgetコマンドでダウンロードします。そしてこれはzipファイルなので解凍までします。
$ wget https://download.nextcloud.com/server/releases/nextcloud-16.0.1.zip --no-check-certificate
$ unzip nextcloud-16.0.1.zip
展開すると""nextcloud""フォルダが作成されます。これがNextcloudの本体です。これを、webサーバの""/var/www/html/""に移動させます。
$ sudo mv nextcloud /var/www/html/

Nextcloudは、基本的に自身を稼働させるホスト以外からのアクセスを受け付けていません。なので、次のコマンドで新たに設定ファイルを新規作成します。以下の様に記述します。
$ sudo vim /var/www/html/nextcloud/config/config.php

<?php
$CONFIG = array (
  'trusted_domains' => 
  array (
    0 => 'アクセスを許可するホストのIPや、NWアドレスを入れる',
  ),
);

次に、移したフォルダーの所有者とグループを””Apache(www-data)""に変更すると、webブラウザ上でNextcloudが動作するようになります。
$ sudo chown -R www-data:www-data /var/www/html/nextcloud/
これで、Nextcloudサーバにアクセス出来るようになったので、webブラウザサーバのIPアドレス/nextcloudにアクセスしてみましょう。別のPCでもアクセス可能です。初回アクセス時は、初期設定画面が出ると思うので指示に従ってセットアップしてください。
f:id:Zuck3r:20190608141953j:plain
※プライベートIPも動的に振られているので、毎回同じアドレスで接続したい場合はIPアドレスをマシンの設定で静的に設定しておいた方が良いでしょう。動的に割り振った状態で使うときは、変わるたびにconfig.phpのアドレスの部分を書き換えなければなりません。

終わりに

今回は、ローカル環境でNextcloudサーバを構築してみました。親のデスクトップが資料まみれでバラバラだったのをこのクラウドで整理したり、写真の共有なんかにも使えててそこそこ便利です。そして、現在はサーバについて勉強中のため実際に手を動かすことでより理解できたので良かったです。
個人的な事ですが、最近はインプットの方が多く、ブログなどでアウトプットが出来ていませんでした。最低でも一ヶ月に一回は更新していきたいなぁ…と思っています。