PC設定覚書と雑記

サーバー運用とPC日記

オンラインストレージを自宅サーバーで構築

GoogleDrive、Dropbox、icloud、Onedrive等のオンラインストレージサービスを、容量制限なしにどこでも自由にしかも無料で使いたいと考えたことはありませんか?

今回、自分で試してみて、結構すんなりと構築できる方法を見つけたので、紹介したいと思います!

自分が今まで使っていた owncloud より多機能で、しかも構築が早く確実にセキュアに出来るんです!

使う手ですが、

 ①省電力自作PCを用意(省電力タイプならメーカー製パソコンでも可)

 ②OSはLinux(WindowsServerでも可だが、高性能かつ無料ならLinuxで)

 ③自宅用ネットワークプロバイダ契約(通常のインターネット契約で可)

 ④DDNSサービスの設定(固定IP契約しているのなら不要)

こんな感じです。

 

では、具体的に。

①ですが、まず省電力マザーボードを選びます。

自分は、Asrock社のCPUオンボードタイプを良く使います。

今話題になっているRaspberry Pi を使うのもアリだと思いますし、これは面白そうだしいずれやってみたい!!

でも、省電力だからとノートPCを使うのはやめましょう! 本体やアダプターの発熱で火事になった例を見かけましたから!

ストレージは、WD社のRedあたりがいいと思います。SoftwareRaid1で構築するとさらに良し。

②のOSです。Linuxは色々なディストリビューションがありますが、つまづいた時に症例や答えをWebで見つけやすいものにした方が絶対にいいです!

すると、Ubuntu、CentOSあたりでしょうか? 自分は専らUbuntuの原型Debianを使っています。

Desktop環境(GUI)は入れずに、コマンドを打ち込んでいくCUI環境で作るのですが、CUIは難しそうだと思ったら、GUIサーバーでもいいんです。

でもCUIでも、SSH端末をクライアントで操作する時はコピペでどんどん操作出来ますし、WebminというGUI風の操作が出来る強力な助っ人もあるので、ぜひCUIサーバーに慣れて下さい!

あ、自分はセキュリティ上、SSHとWebminはローカル(LAN)外からのアクセスは受け付けないように設定しています。

③は自宅でパソコンとインターネットを使っている環境ならそれでOKです。

SoftBank社のAC電源に差すだけでWifiなんていうルーターがありますが、これでもいけそうかな?

④は、MyDNSをおすすめしておきます。

最後に! これだけは覚えて欲しいのがテキストディタ vi の操作法です!

やや特殊ですが、使っているうちに慣れると思います。

コマンド文入力、コマンド文編集のために必須のツールです。ただし、vim、nanoといったツールでもOKです。

 

さて、準備が出来たら、OSをUSBメモリでインストールしましょう。

インストール終了したら、update、upgrade して最新の状態にします。

さて、それからは?

(1)SSHサーバーインストールして、ポート変更、rootログイン禁止設定

(2)ファイヤウォールUFWをインストール

(3)UFWのポートは443、123、SSH分、Webmin分だけ開けておきます。

(4)時刻合わせにntpサーバーインストールして設定変更

(5)snapdインストール

(6)snap install nextcloud

(7)source /etc/profile.d/apps-bin-path.sh

(8)nextcloud.manual-install

(9)nextcloud.enable-https self-signed

これで、Webサーバー、データベースサーバーを含めたnextcloud環境を一気に構築出来、https通信も可能になりました!!

Webサーバーの細かい設定、データベースの作成等も不要なんです!

あとは、DDNSサイトで取得したドメイン名〇〇〇で外部ブラウザからアクセスして下さい!

 https://〇〇〇

これでインストール完了です!

ちょっと説明を簡略化していますが、もし興味があったら調べてみて下さい。もちろん、問い合わせ頂いてもOKです。

 

(補足1)

自分のサーバーマシンからDDNSサービスを提供しているサイトに定期的にアクセスをする必要があります。

その時のスクリプト(実行)ファイルは、例えばこんな感じです。

 wget http://www.mydns.jp/login.html --http-user=mydns●●●●●● --http-password=パスワード -O /dev/null

 (この方法ではip情報更新できなくなったようです。他にもやり方が色々あるようです)

自分は、このファイルを、/etc/cron.d/ディレクトリにおいて、webminで15分おきに実行させています。

注意点は、rootがこのファイルを実行する時、所有者はrootで、パーミッションは700でないといけない点です。

 

(補足2)

インターネット契約をした時に提供されたルーターに、ポートフォワーディング設定が必要です。

つまり、DDNS設定をしたあとは、登録したドメイン名に外部からアクセスがあると、自分の所に信号が来るようになります。

それが、https通信(ポート443)であれば、自作したサーバーマシンに信号を通すようにする作業です。

ルーターのマニュアルを見て下さい。ipマスカレード設定等とも書かれています。

補足ですが、この機能のおかげでhttps以外の信号はサーバーマシンに到達できなくなる訳ですね!

 

(補足3)

Linuxサーバーを構築する時に、またサーバーの初期設定をする時にすごく参考になるサイトです!

色々なOSについて、またそれらのOSの最新版について、分かりやすく書かれています!

 https://www.server-world.info/

Netcommons3.3.1でのサイト引っ越し方法覚え書き

Netcommons3.3.1サイトの引っ越し方法は、今までの方法では上手くいかなくなってしまいました。

今回のバージョンアップは、コアに関するDBテーブルが変更になったとありましたので、そのことが関係しているのかもしれません。

そこで、今回の引っ越し方法を新たに記録しておこうと思います。

今回は、新規ストレージにDebian10をインストールし、phpは7.4を使用することにします。

さらに、同一サーバー内にあったowncloudはインストールせず、その代わりに、新規に作った別のサーバーマシンにnextcloudをインストールすることにしました。

nextcloud環境の作成については、おすすめの方法が見つかりましたので、別の機会に書きたいと思います。

また、引っ越し前のwebサイトは、閲覧不可にしてからmysqldumpでデータベースのバックアップファイルを取っておくことを忘れないように。

 

<手順>

 ①サーバーマシン内の点検と清掃、メインメモリ抜き差ししてメモリ接点のセルフクリーニング

 ②マザーボードBIOS(UEFI)のアップデート

 ③ストレージ(SSD)の交換

 ④SSDにEFIパーテイション256MB作成(マザボがBIOSタイプなら不要)

 ⑤Debian10最小構成インストール

 ⑥ファイヤウォール設定

 ⑦SSHサーバーインストール、ポート変更、ローカル以外からのアクセス不可、rootログイン不可に

 ⑧php7.4リポジトリ追加して、php7.4、php追加モジュールインストール

 ⑨Apache、MariaDBインストール(mysql-secureインストレーションも忘れずやっておく)

 ⑩acpuインストール

 ⑪/etc/php/php7.4/apache/php.iniの編集(file upload関係、opcache、acpu設定等)

 ⑫webminリポジトリ追加して、webminインストール

 ⑬webminポート変更、ローカル以外からのアクセス不可、rootユーザー削除設定

 ⑭powerOFF後、旧SSDをSATA端子に接続してpowerON、新SSDから起動するよう注意(UEFIでは別画面で設定?)

 ⑮新SSDにマウント用ディレクトリ作成して旧SSDをマウント

 ⑯旧SSDのnetcommonsインストールディレクトリを、新SSDのドキュメントルートへ丸ごとコピー

 ⑰コピーしたnetcommonsディレクトリ以下の所有者をapacheにしておく(Debianならwww-data)

 ⑱mysqldumpファイル、ヴァーチャルホストディレクティブファイル、DDNS通知用スクリプトファイルを旧SSDから新SSDにコピー

 ⑲poweroffして、旧SSDを外す

 ⑳新規データベース作成(例 MariaDB [(none)]> create database nc3db default character set utf8;)

 ㉑旧サイトからのデータベースリストア(例 MariaDB [(none)]> source /home/hokan/20200419/nc3db.sql;)

 ㉒データベースuserを今までのuser名で作成(例 MariaDB [(none)]> GRANT ALL PRIVILEGES ON nc3db.* to ncuser@'localhost' IDENTIFIED BY 'password';)

 ㉓データベース設定反映(MariaDB [(none)]> flush privileges;)

 ㉔ルーターのポートフォワーディング設定

 ㉕外部からwebブラウザでアクセスして、正常にログイン出来ればOK!

 ㉖webサイト閲覧不可を解除

以上です!

これでも割と手はかかりますね!

OS、PHP共に最新にアップデートはしましたが・・・

予定より2時間半も余計に時間がかかってしまいました・・・

SSDにEFIパーテイションを作成する所からつまづきました。

ただ、旧システムが入ったSSDをそのままSATA接続して、新システムにマウント出来たのは助かりました。

この手が使えれば、Uploadディレクトリが肥大化しても短時間でコピーが出来ます。

しかし、今までのリストア方法が使えなかったので、今回はNetcommonsディレクトリを丸ごと持ってきたんですが、

今後もこれで上手くいくのかが分かりません・・・

Netcommons3、今までのリストア法ではダメ?!・・・

新年度の準備のため、サーバーの OS と php のアップデートをやって、Netcommonsの引っ越しもやろうとしていました。

いきなりやるのは怖いので、Debian10のテストサーバーを作り、そこに php7.4をインストールして、テストをさんざんやりましたが・・・

エラーの連続で上手くいかない!

エラーも何種類か出てきて、apache、mysql、Netcommons、それぞれのエラーログを見て対処できたものもありました。

しかし、丸1日かかって色んな方法を試した結果、上手くいったのはディレクトリ丸ごとコピーの方法だけでした・・・

もちろん、データベースは元のバックアップをdumpファイルで作って、これを新規データベースにインポートするんです。

php7.2環境で出来たサイトを丸ごと持ってきてから、php7.4環境に出来たのは幸運だったんですが。

でも、この方法しか分からないということは、各サイトのNetcommonsディレクトリを定期的に丸ごとバックアップし、同時にデータベースのバックアップも取っておかなければなりません。

そして、作業中に気付いたんですが、Uploadディレクトリのサイズが異様に大きくなっていたんです!

自宅サーバーだからということで、写真等もサイズを圧縮せずに載せ続けていたのが原因でしょう。

この調子で運用を続けていけば、サイトの容量がどんどん大きくなり、外部サーバーへの引っ越しとかも出来なくなります。

うーん、どうしよう・・・

悩み中です。

どうも納得いかなかったので、さらに設定を変更

またWebサーバーをダウンさせてしまい、申し訳ありませんでした。

NTTの終端装置にルーター機能が付いているのに、それを無効にしてBB光ルーターを追加するのが気に入りませんでした。

この2台の消費電力は60W近くにもなるんです。それを常時消費してる訳ですから納得できません!

 

しかし・・・

BB光ルーターを外した設定を一からやるのにここまで時間がかかってしまいました・・・!

これで何とかなってるんですが、速度アップとかの詳細設定は後日やることにします。

明日早いので、今日はここまでにします!