コンテンツへスキップ

もうそろこのブログも開始してから1年が経とうとしている。
基本的にはITの忘備録ばかりが8割以上なのでその分の経験値を得られているはず。。
長く続いているのは記事のクオリティに気を使わないこと。気負うと投稿が億劫になるので

アクセスで人気があるものは、メールやzabbix等のエラーログを題名にしたものがヒットした。
例えばこの記事とか。みんな同じようなエラーで困ってるんだなあと思った。
https://roroing.net/?p=262

■その他
ipad pro 12.9インチを購入しました。
procriateのアプリでペンシルは2世代を使って絵をかいてます。
適当な姿勢で動画を見たり絵を描けるのは最高だ。。。

これはipadで描いたFF7のクラウド。


手軽に直線モードにできたり消しゴム切り替えたりすることができてよかったな。
あとテクスチャがたくさんそろってるのもいい。腕とか肩パッドなどにつけてます。

今後もipadで絵を描いていきたいところ。

タイトルの通り、データ移行を実施したけども詰まってしまったので記録する。
なお、WordPress内のデータを移行している


作業順序は次の通り。
1.pleskでドメイン>>「ドメインを追加」で新しいドメインを作成する。
2.作成したドメインからデータベースを作成する。
※ここでドメイン名やユーザー名を移転元の通りにするとエラーが発生したから名前を変更した。
あとでWordPressのコンフィグデータも変えておくこと。

3.移転元の「データベース」から「ダンプをエクスポート」を選択してバックアップを取得。
→「作成後にダンプを自動的にダウンロード」にチェックをつけると作業が楽になる
4.移転元の「ファイルマネージャー」からバックアップしたいファイルを項目の右側の設定からダウンロードする。

5.「ファイルマネージャー」でドキュメントルート以下にサブディレクトリ用の新規ディレクトリを作成する
6.新規ディレクトリ以下にファイルをアップロードする。 
7. 移転元の「データベース」から「ダンプをインポート」を選択してリストアする。
8.hosts,ファイルを変更するなどをして移転先のURLにアクセスしてサイトの調子を確認する。
9.画像が非表示されたりするはずなので、画像のパスを変更する。

今回は9で詰まった。
まずパスを変更する場所が見つからなかった。
一番早いのはssh接続から検索するのが手っ取りばやい。
私の場合は下記コマンドで検索をした。

ファイル内の文字列を検索してくれる

find . -type f -print | xargs grep 検索したいファイル名

今回上記を利用してヒットした箇所はWordPressのtheme以下のファイル内であった。

ちなみにssh接続できない場合、plesk内の「ファイルマネージャー」からファイルが編集できる
今回、これで終わりかと思ったけどサイト内でまだ表示がされないファイルがあったためにさらに詰まった。

サイト内で「ページのソースを表示」して、表示されない画像を検索すると確かにパスが変更されていなかった。
しかし、その画像の表示をさせるためのソースが実際にssh接続から探してもどこにもなかった。

結果的には、plesk内の「phpMyAdmin」からデータベース内を探して見つけた。
自分の場合は、**_posts テーブル内の値が「post_content」のところで画像を検索するとヒットした。

10.データベース内のファイルのパスを「検索と置換」で変更する
下の画像のように設定する。

実行ボタンを押してもその後、どの箇所が変更されるか確認できるページに遷移できる。

11. 改めてサイトを確認して問題がなければデータ移行完了。

VPSのubuntu20.04にてメールサーバーを立てた後に、thunderbirdのメール設定でPOPサーバーの認証方式で「暗号化されたパスワード認証」に設定すると接続ができなかった。原因を調べてみたら、cram-md5でSMTP認証が廃止されたとの記事がちらほら。とはいえ、VPSなので自分で、cram-md5を設定した上でメールの設定を試してみたらところ、下記エラーログを吐いた。
auth: Fatal: CRAM-MD5 mechanism can't be supported with given passdbs
少なくともubuntu20.04ではCRAM-MD5のサポートをしていないようだ。
結局「通常のパスワード認証」でもポートがTLSの数値なら問題ないとのことなので、このままメールを使おうと思う。
参考
https://goope.jp/info/maintenance/?id=619

thunderbirdのメール設定が上手くいかなくてタイトルのエラーが吐かれていた。

useradd からpasswd でユーザーを作ったけどもおかしいなと思い続けていたところ、
下記サイトに則ってコマンドを入力した

[root@ ~]# echo '(パスワード入力)' | saslpasswd2 -p -u mail.example.com -c testuser(SMTP-Auth用ユーザ・パスワードの登録)

上記入力後、下記コマンドでメール専用ユーザーを確認することができる。

[root@ ~]# sasldblistusers2(SMTP-Auth用ユーザ名・パスワードの確認)

このリストに追加されているユーザーでthunderbirdのメール設定をし直すと接続できた。

sasl(Simple Authentication and Security Layer)
の認証リストに追加しないとユーザーを認識してくれなかったということかな。

検索してもヒットしなかったのでメモ

まず下記へディレクトリへ移動する

cd /etc/apache2/sites-available

000-default.conf内に下記を記載してhttpからのアクセスでもhttpsへリダイレクトするようにする。


            RewriteEngine On
            RewriteCond %{HTTPS} off
            RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

default-ssl.conf内に下記を記載して自分のwebサーバーのIPからアクセスされた場合、拒否をする。

       ServerName 対象のIP
       <Location />
             Order deny,allow
             Deny from all
       </Location>

どちらも<VirtualHost *:数値>内のタグに記入すること。

上記に変更後、apache2を再起動後にサイトにhttp://IPでアクセスして
403エラーになれば成功です。

借りていたサーバーを移転しなければならないので、新たにVPSを借りてブログのデータを移行していました。
せっかくだからOSは題名の通りUbuntuに変えました。環境の練習になるので。

Ubuntuのログイン方法はCentOSとは異なるから注意。
慌ててOSの再ダウンロードとかしないように。

まずは、ログイン方法としてユーザー名は、[root]ではなく[ubuntu] であることに注意。
そして、スーパーユーザーに昇格するためにrootのパスワードを作成する必要があります。

passwd root

上記で新しいパスワードを設定した後に su - コマンドから設定したパスワードを入力するとroot権限になります。

参考
https://qiita.com/_toki/items/cced337d72103ed4387c

この後はssh接続方法を公開鍵認証方式にするとかやりますが、ミドルウェアのインストールで失敗とかしたら
最悪OSの再インストールとか面倒なので、先にデータベースをインストールしました。

MariaDBのインストールは下記サイトの通りに進めています。
https://www.server-world.info/query?os=Ubuntu_20.04&p=mariadb&f=1

Apache2とかPHPも上記サイトのカテゴリを参考にしてインストールしました。

ミドルウェアを落とすと次に必要なのは、データです。
まず、移転元のサーバーにssh接続をして、WordPressの対象データをアーカイブ圧縮します。
私の場合はドキュメントルート以下と証明書のファイルをアーカイブして圧縮しました。

tar -czvf アーカイブ.tgz 対象ファイル

ファイルのアーカイブを作成しgzip形式で圧縮する

次にデータベースをダンプします。

mysqldump --opt データベース名 > 適当なデータベース名


上記のデータをFTP等を利用して新サーバーに転送します。

新サーバーでは、データを入れるためにmysqlにログインし、
データベースを作成します。

mysql -u ユーザー名 -pパスワード
create database データベース名

mysqlから接続を遮断後、データベースをリストアします。

mysql 作成したデータベース < ダンプデータベースファイル名

リストアの確認はmysqlにログイン後、対象のデータベース内のテーブルを確認してみたらいいと思います。

次にドキュメントルート以下にファイルを解凍

tar -xzvf アーカイブ.tgz

gzipで圧縮されたアーカイブを展開する

この後はWordPressのコンフィグファイルの設定でパスワード等をいじったら、サイトの確認をしてください。
http://対象のIP で確認できると思います。
私の場合は、サイト内で下記エラーが発生していました。


お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

エラーに従ってMySQLの拡張モジュールをインストールしました。

apt -y install php-mysql

その後、サイトを確認すると
データベースの接続ができません
のエラーに変化していました。
大抵はWordPressのコンフィグファイルのパスワードの打ち間違いとかですが、そうでもなく少しハマりました。
色々調べたところ、WordPressのコンフィグファイルのhostname を localhost から 127.0.0.1 に変えたところ
サイト内が重大なエラーが発生と表示が変わりました。
上記の場合、Apache内のエラーログを確認したら原因がわかります。
今回の場合、とあるpluginからエラーが発生していたのでそれの権限を000にするとサイトが正常に表示されました。
サイトが見れたからいいものの、コードをみやすくするためのプラグインだったので少し不便になりましたw
代わりのプラグイン見つけないと......

次に証明書の設置です。
下記サイトが参考になりました。
https://blog.fileshelfplus.com/vps/280

少しハマったところは、新サーバーのサイト内に証明書の期限が有効であるのに証明書としては無効であること。
結果的にDNSサーバーのAレコードを移転元から移転先に変更すれば問題なく証明書が有効となりました。

これでひとまずはデータ移行の終了です。

その他参考
ubuntuでcronの設置
https://intellectual-curiosity.tokyo/2018/10/12/ubuntu%E3%81%A7%E3%81%AEcron%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/

ubuntuでファイアウォールの設置
https://lifework-blog.com/ubuntu-server-firewall/

Zabbixでweb監視とはhttpが落ちたアラートが表示されることだと思っていたけど、
どうやら違うようで調べてみた。

とりあえずZabbix内の設定>>ホストを確認してみる。
すると「web」があったのでアクセスする。
「webシナリオの作成」をアクセス。

まず、シナリオの箇所では、赤色の必須の箇所だけ記入する。


次に「ステップ」のカテゴリで「追加」を押して、名前とURLに自分のサイトのURLを記入する

上記設定で問題がなければ、「web」カテゴリから下記画像のようにダウンロードやレスポンスの速さを確認できる

サイトが落ちたことを知りたい場合、トリガー作成を選んで下記画像のように条件式を記入する。
条件式は「追加」から選べる

その後、自分のサイトのhttpdをストップしてサイトが表示できなくするとアラートが表示される。

この後、httpdをスタートしたらアラートが消えた。

自分のサーバー内に何個もサイトがあったら便利そう。

スイッチングとかハブとか入り乱れる言葉のせいでハブについてよくわかっていなかった。

昔はリピータハブとシェアードハブとか呼ばれていて、一つの端末の転送が終わるまで他の端末は通信ができなかったらしい。

今はハブと言えばスイッチングハブと呼ばれていて、端末から受け取ったデータをハブが宛先を確認して、ポートを選びデータを送ってくれるそう。

そんなハブでもインテリジェンス性じゃないハブはバカハブと呼ばれていてかわいそうなこともあるとかw

ちなみにインテリジェンス性は輻湊した場合、自動で自分の電源を落とすそうだ。
輻湊とはハブの穴1にいれたランケーブルのつなぎ先を同じハブの穴2に入れる状態。
ネットワークがぐるぐる回ってサーバーに負荷がかかることで全端末のネットワークが落ちるそうで気を付けないといけない。

イーサネットとは、ネットワークやコンピューター間での通信モデル TCP/IPプロトコルのネットワークインターフェース層に対応する有線の規格です。

とか言うけど、実際はインターネットをつなぐケーブルとしか思ってなくて、もっと言えば、各イーサネットの規格用に電気を流しているところと接続するためのものと思っていた。
例えば、Cat5eにはそれ専用の電気を流す物体、Cat6にはそれ専用の......

でも、そのあと先輩からイーサネットについての説明を聞いて分かったことは、
電気を流す物体はどれも同じで、イーサネットのカテゴリによって伝送帯域や(~100MHz)、速度(~Mbps)とかを決めていることがわかった。

確かに言われてみたら、イーサネットごとに電気を流す物体を用意のするのは非効率すぎる。。。なんなら電気と光を流す物体さえ違うと思っていたので恥ずかしい限り。

つまりイーサネットの銅線の巻き方の種類で電気の流れを変更しているということ。
光ファイバーを考えた人って天才だよな......

参考
https://wifi-style.otoku-keitai.net/basics-of-wifi/ethernet/

オンラインゲームをするときにネットワークはデータ(IPパケット)を宛先コンピューター(サーバー)と送受信することで成り立つ。データを一度に送信できる量は決まっている。
それがMTU(aximum Transfer Unit)値だ。

サーバーのMTU値がゲーム機のMTU値より低い場合、データの分割、いわゆるフラグメンテーションが発生する。分割が発生した場合、分割されたデータには新しくデータの順番を付けるなどの情報がついたヘッダーが付く。

そしてサーバー上で分割されたデータはヘッダーの情報を元にデータを再構築する。
ヘッダーの情報には後に続くフラグメントがある場合は1、最後のフラグメントの場合には0といった
振り分けをすることでサーバー側が判断をして再構築をしている。

このように、適切なMTU値を設定しないと、データの分割、分割されたデータへのヘッダー付与、サーバー側でのデータの再構築といった余分な処理が発生する。だから遅延が発生する。
逆に言えばこの処理を抑えらればインターネット回線速度の上昇が期待できる。

私の場合は、下記サイトで自分のPCのMTU値を確認した上で、任天堂switchのMTU値を変更した。
https://www.speedguide.net/analyzer.php

任天堂switchのMTU値はオンラインの設定画面で変更可能だから試してみてほしい。