NASと録画鯖の一元化 -> CentOS7にNextCloudを立てたお話
近頃SynologyのNASを譲ってもらったので使っていました。
ソフトウェア面が最高で、一般の方にも優しい設計。
ファイルのバックアップも同期も簡単で、
VPNやらドメイン設定まで簡単に出来てしまった。
素晴らしいと思います。
ただ、やはり別途鯖を立てることになる関係上、否応なく消費電力が増えてしまう。
あと、やはりCPUが貧弱なので大量のメディアを扱うとなると力不足。
というか、我が家にはRyzen 7な録画鯖があるのにこれを使わないでどうする?!
ということでNextCloudを立ててNASの機能をある程度録画機に移した。
参考:
Synology DS216j NAS HDDx2 消費電力 18~22W
Ryzen7 1800X 低消費電力化Tune (PT3+SSDx3) 消費電力 34~37W
最終的な構成
[CentOS7] MariaDB, PHP 7.x, Apache 2.4 with mod_php module
1. 環境構築
ここを参考に進めればOK
www.rosehosting.com
※CentOS7
yum -y update yum -y install mariadb mariadb-server systemctl start mariadb systemctl enable mariadb mysql_secure_installation Enter current password for root (enter for none): ENTER Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
mysqlの設定をおこなう。
ここでは以下の項目を設定する。
Database user: nextclouduser
Database password: YOURPASSWORD
Database name: nextcloud
host: localhost
mysql -u root -p MariaDB [(none)]> CREATE DATABASE nextcloud; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
あとはApacheのインストール。
yum install httpd -y systemctl start httpd.service systemctl enable httpd.service
※私の場合Pritunlと競合してしまった。
※lsof -i で各プログラムが使用しているポートを確認できる。
※以下を実行して回避。firewallの設定も忘れずに。
pritunl set app.server_port 444 pritunl set app.redirect_server false systemctl restart mongod pritunl
2. PHP7導入
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum-config-manager --enable remi-php70 yum -y install php php-mysql php-pecl-zip php-xml php-mbstring php-gd vi /etc/php.ini post_max_size = 20000M upload_max_filesize = 20000M systemctl restart httpd
3. Install Nextcloud
以下から最新版をチェック。
nextcloud.com
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.1.zip unzip nextcloud-13.0.1.zip -d /var/www/html/ chown -R apache:apache /var/www/html/nextcloud/
あとはhttps://xxx.xxx.xxx.xxx/NextCloud/にアクセス。
任意のユーザー名とパスワードを入力。
データベースにMySQL or MariaDBを選択して以下を入力。
Database user: nextclouduser
Database password: YOURPASSWORD
Database name: nextcloud
host: localhost
で完了!!
初期状態では機能が制限されているので、
右上のメニューのアプリから機能を追加する。
2018年4月現在日本語対応はイマイチで、
PDFビュアーは一部日本語フォントに対応していない模様。
同期ソフトは使いやすく、
昔のowncloudみたいにCPUを専有するようなこともなかった。
なお、私は例のごとく仮想マシン上に構築していた都合上、
Dataフォルダの場所をホスト側に移動した。
gpasswd -a apache vboxsf vi /var/www/html/nextcloud/config/config.php 'datadirectory' => '/media/sf_xxx',
※追記: 一部追加機能がPHP7.1を要求してきたのでPHPアップグレード。
systemctl stop httpd.service yum install php72 php72-php yum-utils yum-config-manager --enable remi-php72 yum update php -v systemctl start httpd.service
以上です。
お疲れ様でした。
追記:
頻繁に読み書きするデータの同期でエラーが出た。
20XX/XX/XX XX:XX:XX, Filename, /Nextcloud,Error transferring https://xxx/remote.php/dav/files/xxx/Filename - server replied: Locked
原因はファイルロックとのこと。
とりあえず下記を参考にデータベースを修正。
Nextcloudのファイルロック解除手順
とりあえず同期できるようになったが、今後も同じことが起こるようなら対策を考える。
vi /var/www/html/nextcloud/config/config.php 'maintenance' => true, mysql -u root -p use nextcloud delete from oc_file_locks where 1; exit vi /var/www/html/nextcloud/config/config.php 'maintenance' => false,
以上。