サーバー運用とPC日記
Netcommons3、今までのリストア法ではダメ?!・・・
新年度の準備のため、サーバーの OS と php のアップデートをやって、Netcommonsの引っ越しもやろうとしていました。
いきなりやるのは怖いので、Debian10のテストサーバーを作り、そこに php7.4をインストールして、テストをさんざんやりましたが・・・
エラーの連続で上手くいかない!
エラーも何種類か出てきて、apache、mysql、Netcommons、それぞれのエラーログを見て対処できたものもありました。
しかし、丸1日かかって色んな方法を試した結果、上手くいったのはディレクトリ丸ごとコピーの方法だけでした・・・
もちろん、データベースは元のバックアップをdumpファイルで作って、これを新規データベースにインポートするんです。
php7.2環境で出来たサイトを丸ごと持ってきてから、php7.4環境に出来たのは幸運だったんですが。
でも、この方法しか分からないということは、各サイトのNetcommonsディレクトリを定期的に丸ごとバックアップし、同時にデータベースのバックアップも取っておかなければなりません。
そして、作業中に気付いたんですが、Uploadディレクトリのサイズが異様に大きくなっていたんです!
自宅サーバーだからということで、写真等もサイズを圧縮せずに載せ続けていたのが原因でしょう。
この調子で運用を続けていけば、サイトの容量がどんどん大きくなり、外部サーバーへの引っ越しとかも出来なくなります。
うーん、どうしよう・・・
悩み中です。
OS、PHP共に最新にアップデートはしましたが・・・
予定より2時間半も余計に時間がかかってしまいました・・・
SSDにEFIパーテイションを作成する所からつまづきました。
ただ、旧システムが入ったSSDをそのままSATA接続して、新システムにマウント出来たのは助かりました。
この手が使えれば、Uploadディレクトリが肥大化しても短時間でコピーが出来ます。
しかし、今までのリストア方法が使えなかったので、今回はNetcommonsディレクトリを丸ごと持ってきたんですが、
今後もこれで上手くいくのかが分かりません・・・
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サイト閲覧不可を解除
以上です!
これでも割と手はかかりますね!
オンラインストレージを自宅サーバーで構築
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の最新版について、分かりやすく書かれています!
昨夜、DDNS関係、そしてハードウェアのトラブル!
昨夜遅く、突然外部からこのサイトへのアクセスが出来なくなりました!
LAN内クライアントからサイトへのアクセスは可能で、クライアントからWAN外部サイトへのアクセスもいつも通り出来ていました。
DDNSサービスの提供元Mydnsの障害状況、Mydnsからの障害報告メールもチェックしましたが、異常はなさそうでした。
そこでまず、ルーターの設定を再確認し、ルーターの再起動を行いました。
そしてクライアントからnslookupコマンドでサーバー機のグローバルip情報確認したら、ie-serverのDNS情報は更新されているのに、Mydnsでは更新されていない。
ルーターの再起動などでWAN側のipアドレスが変わると、DNS情報も変更される訳ですが、
この反映には時間がかかるんだろう(今までは直ぐに反映されていたようなんだけど・・・?)と、明け方3時ごろだったので、まずはとりあえず寝ちゃうことにしました。
ところが、朝7時ごろ起きて確認したら、MydnsのDNS情報は相変わらず更新されていない。
cronjobを実行させてログを見てみると、Mydnsサイトにアクセスは出来ているのにログインが出来ていない模様!
もう一方のDDNSサービスie-serverへのアクセスは今まで通りログインまで出来ているのに、どうしたんでしょう?
そうだ!
Mydns側でセキュリティを向上させる等の対策が新たにされて、ログイン出来なくなったことは充分考えられます。
そこで次の手ですが、「wget http:// ・・・」のアクセスログイン法から「curl https:// ・・・」の方法へ変更し、cronスクリプトファイルを書き換え、実行させてみました。
この方法で、ようやく3つのサイトをいつも通りWeb上に公開させることが出来ました!
と、ここまで書いてきた所で、突然このサイトが固まってしまい、apacheを再起動してもサイトが動かなくなってしまいました!
そこで、サーバーマシンを再起動しようとしたところ、全く予想外の事態が。
システムが、それにUEFIも立ち上がらない!
これには参りました・・・
しばらく考えたんですが、数年前電源ユニットが突然死したことを思い出しました。
業務用ノンストップタイプでもない電源を24時間動かしていたので、これが一番怪しいと思ったんです。
ところが、電源を取り換えてみたんですが、原因はこれではなかった!
その次は、マザーボードからデバイスを徐々に外して起動を試みていくテストを続けました。
もう、珍しいけどマザーボードの故障だろうと諦めかけていた時、メインメモリを1枚だけ差した状態で起動!
しかも、もう1枚のメモリだけだと起動しない!
これで、特定のメモリの不良が原因だと分かりました!!
それなら、以前に使っていた2枚のメモリをデュアルチャンネルで動かすことにしました。
そして、念のためにMemtestを4時間弱かけて実行させました。
メモリーエラーはありませんでした!
しかし、DDNS関連はともかく、ハードウェアがなぜこのような状況になってしまったのか?
単に、メモリに故障が発生しただけなら直っているんですが、他の要因ということもあり得ます。
機械が壊れかかったまま動いているという状況だと、あとあと非常にやっかいなことになるんです。
原因が分からないままだということと、他のハードウェアも巻き添えで故障する可能性もあるんですね。
また、サーバーに対して外部からの攻撃も、あり得ないことではなくなってきています。
最近はハードウェアの設定を変更するような極めて高度な攻撃もあるそうですから!
そこで、サーバーへの外部からのアクセスを制限するように、設定を数か所変更しておきました。
はあ・・・疲れましたね・・・
さあ、これでキチンと直ってくれたでしょうか・・・?
このウェブサイトは、
NetCommons3.3.7で動いています。
NetCommons プロジェクト 開発の、
CMS+グループウェアです!
日 | 月 | 火 | 水 | 木 | 金 | 土 |
27 1 | 28 1 | 29   | 30   | 31   | 1   | 2   |
3   | 4   | 5   | 6   | 7   | 8   | 9   |
10   | 11   | 12   | 13   | 14   | 15   | 16   |
17   | 18   | 19   | 20   | 21   | 22   | 23   |
24   | 25   | 26   | 27   | 28   | 29   | 30   |