投稿者「PageMaster」のアーカイブ

Gmailのアプリパスワードを使ってWordPressからメールを送信する方法

ここでは「WP-Mail-SMTP」プラグインと「Gmailのアプリパスワード」を使ってWordPressからメールを送る方法を解説します。

1.Gmailのアプリパスワードを使う為の前提知識

Gmailのアプリパスワードを利用する為には、Gmailアカウントを「2段階認証」にする必要があります。

この「2段階認証」とはGmailにログインする時に

①メールアドレス

②パスワード

に加えて「③スマートフォンのデバイス認証」が必要になるログイン方法です。

 

この「2段階認証」をONにすると「アプリパスワード」の設定が行えるようになります。

しかし「WP Mail SMTP」からGMAILにログインする場合は

①メールアドレス

②アプリパスワード

指定してログインしメールを送ります。

 メモ

この方式は「Googleアカウントのセキュリティ画面」で「セキュリティの問題が見つかりました」との警告がでます。

しかしその内容は「アプリパスワードはまだ使いますか?」という警告なので、気にしないで下さい。

 

2.Googleアカウントにアプリパスワードを設定する方法

1.現在のGoogleアカウントの確認

下記URLをクリックして下さい。

Googleアカウント

 

2.現在のアカウントが表示されます。

■「2段階認証」を行うアカウントか否かを確認して下さい。

■違う場合はアカウントを切替えてください。

 

3.セキュリティメニュから2段階認証プロセスの「>」マークをクリックします。

 

4.下記画面が開きますので、右下の「使ってみる」をクリックします。

■「使ってみる」ボタンを挿入します。

 

5.Googleアカウントへのログイン画面が表示されますので、ログインします。

画像は省略

 

6.下記画面から「今すぐ送信」をクリックします。

■上記画面はスマホに既にこのGoogleアカウントが設定されている場合です。

■設定されてない場合は電話番号から入力していきます。

■「今すぐ送信」ボタンを挿入します。

 

7.下記画面が表示されます。

■スマホにメッセージが表示されるので「はい」をタップします。

 

8.下記画面が表示されます。

■「別のバックアップオプションを利用」をクリックし「送信」ボタンを挿入します。

 

9.下記画面が表示されます。

■1回だけ利用できるワンタイムハスワードが表示されますので、ダウンロード又は印刷をして保管して下さい。

スマホが使えない場合は、上記コードが利用できます。

■「次へ」で先に進みます。

 

10.下記画面で「有効にする」を実行します。

■「有効にする」ボタンを挿入します。

 

11.下記画面が表示されます。赤枠の「←」で終了します。

【上記画面の解説】

2段階認証は①スマートフォンに表示される画面、または②バックアップコードでGMAILにログインできる事を意味します。

 

12.アプリパスワードの設定画面が表示されます。「>」をクリックします。

■>をクリックします

 

13.アプリを選択の「▼」をクリックし、「その他」を選択します。

 

14.下記画面にwordpress等の任意名称を入れ「生成」ボタンを押します。

 

15.アプリパスワードが生成されます。

■上記のアプリパスワードは「WP Mail SMTP」で利用しますので何処かに転記しておいてて下さい

アプリパスワードは再度Googleアカウントに入っても見れなくなります。

 

3.WP-Mail-SMTPインストールと設定

3-1.ダッシュボードの『プラグイン→新規追加』を実行し、検索画面で『WP-Mail-SMTP』を入力する。

■「今すぐインストール」を実行後、「有効化」ボタンを押します。

有効化が完了するとダッシュボードの中に『WP Mail SMTP』というメニュが追加されます。

 

3-2.WP Mail SMTP→設定を起動します。

①メーラは「Ohter SMTP」を選択します。

 

②SMTPの設定は下記で設定して下さい。

■SMTP   :smtp.gmail.com

■暗号化   :SSL

■Port番号 :465

■Auto TSL :ON

■認証    :ON。

 

③Gmailのアカウントとパスワードを設定する

■SMTP Username:これが2段階認証を設定した「Googleアカウント」です。

■SMTP Password :これが「Googleアカウントのアプリパスワード」です。

上記の設定が終わったら、必ず『Save Setting』を実行してください。

 

③メールテストを行う。(設定を変更した場合は必ず実行して下さい

■メニュから「Email Test」を選択します。

■Send Toに貴方のメールアドレスを入れて「Send Email」ボタンを挿入します。

メールが正常に送れたら、『WP-Mail-SMTP』は正常に稼働しています。

WordPressのセキュリティ対策

2017年の3月にこのサイトが改ざんされました。

原因はWordPressのセキュリティホールをついた攻撃でこのサイトだけでなくかなりのサイトが改ざんされたようです。

Webの記事

原因はこのサイトがWordPressのVer4.7.1を使っていた為で、このバージョンでは表示されたページである操作をするとWordPressのユーザ認証なしにコンテンツとURLの改ざんができてしまうセキュリティホールがあったようです。

サイトの復旧は下記方法で実行しました。

①コンテンツ

WordPressのレビジョン管理から復旧させましたた。

②URL改ざん

URLの復旧はマニュアル操作で復旧させました。

当然、今後この手の改ざんが起こらない様にWordPressのバージョンは4.7.3の最新版に更新しました。

 メモ

最近のWordPressは危険なバージョンが発見されると、自動でWordPressを更新してくれるようになったので、この様な問題は起こらなくなったと思います。

 

1.どれ位アタックがあるか?を確認する

WordPressにどれ位アタックがあるか?は下記プラグインで確認できます。

1-1.「SiteGuard WP Plugin」のインストールと有効化

プラグインの新規追加画面で「SiteGuard WP Plugin」で検索します。

■今すぐインストールを実行後、有効化します。

このプラグインはログイン画面もデフォルトで変更してしまうので、その設定を元に戻します。

 

1-2.「SiteGuard WP Plugin」の設定の変更

①「ログインページ変更」を実行します。

通常管理画面に入るには「wp-admin」で入りますが、これをこの画面の様な形に変更する画面です。

OFFにし「変更を保存」を実行します

②「画像認証」を実行します。

ログインページ等にひらがなを入力させるBOXが表示されます。

OFFにし「変更を保存」を実行します

以上で通常をWordPressのログイン画面になりました。

 

1-3.どれ位アタックがあるか?の確認

SiteGuard → ログイン履歴」を見ると確認できます。

 

1-4.SiteGuardの良い所

「SiteGuard」の良い所は、ログイン履歴が見れる以外にWordPressやプラグインの更新バージョンがある時にメールで知らせてくれるところです。

SiteGuard → 更新通知」を見て下さい。

 

1-5.SiteGuardで絶対、やってはならない事

SiteGuard → XMLRPC防御」を開いて下さい。

■XMLRCを無効化すると、WordPressが動かなくなります。

 XMLRCを無効化してしまった場合の復旧方法

「XMLRCを無効化」を実行すると「.htaccess」に変更が加えられた結果、WordPressが動かなくなります。

「.htaccess」を開いて、「SiteGuard」が書き込んだ所を削除して下さい。これで復旧します。

 

2.WordPressに2段階認証を設定する

「SiteGuard」でもログインのセキュリティ対策はありますが、「Google Authenticator」の方がお勧めです。

利用しているスマホに「Google認証システム」をインストールします。

 

2-1.2段階認証の設定

①プラグイン「Google Authenticator」をインストールして有効化します。

プラグインの新規追加画面で「Google Authenticator」で検索します。

■今すぐインストールを実行後、有効化をします

 

②ダッシュボードの「ユーザ→あなたのプロフィール」を開く

メニュの「ユーザ→あなたのプロフィール」を開きます

■プロフィールの中に「Google Authenticator」のメニュが追加されます。

 

③Google Authenticator Settingsの各項目を設定します。

プロフィール画面の中に下記項目が追加されます。

■「Active」にチェックを付けます。

■「Relaxed mode」にチェックを付けます。

これはサーバとスマホの時刻が少しずれてもOKにするモードです。

この設定はスマホのコードが変わっても3分以内ならOKなので慌てずにログインできます。

■「Description」に任意の名前をいれます。

これはデバイスの2段階認証アプリに表示される名前です。

英数字でどのアプリか分かる名前を付けて下さい

■「Show/Hide QR code」ボタンを挿入するとQRコードが表示させるので、スマホの2段階認証アプリで読み込みます。

Google認証システム」の画面で+ボタンを挿入しQRコードを指定して読み込みます。

■最後に「プロフィールの更新」で終了します。

以上で設定は終了です。

 

4-2.ログインの仕方と障害対策

WordPressのログイン画面画面が下記に変更されます。

ログイン方法

スマホに表示された6桁のコードを「Google Authenticator code」欄に入れてログインします。

 メモ

上記画面は「Google Authenticator」がインストールされていると表示されます。

正しく機能しているか否かは間違ったコードを入れて確認してください。

 

ログインできない場合の対策

当該サイトの「wp-content→plugins」フォルダの中にある「google-authenticator」の名前を変更します。

すると2段階認証がないログイン画面になりますので、ログイン出来るようになります。

 

以上で主要システムの2段階認証が完了しました。

「Velvet Blues Update URLs」でWordPressのURLを変更する

 前提条件

ここで行うのは、DBの中にあるURLの変更で、プログラムの中に記述したURLは対象外です。

PHPプログラムでは、WP関数を使ってURLを記述する習慣をつけるとプログラムは意識しないでURL変更ができるサイトになります。

 

「Velvet Blues Update URLs」はプラグインです。

すなわちWordPressが稼動している時にURLを変更しますので「WordPressが動かない!」という事が発生する事があります。

しかし必ず修復ができますのでサイトが動かなくなっても落ち着いて作業を進めてください

 

ここではこのツールの使い方を下記の2つのケースから説明します。

1.稼動中のWordPressからURLを変更する。

2.WordPressフォルダ+SQLファイルからURLを変更する。

このツールで変換される内容は下記になります。

項目 詳細 変換内容
ドキュメント 現行ドキュメント 本文中にあるメディア画像URLや、他のドキュメントページへのリンクURLが変換されます。
過去のドキュメント
外観→テーマ

 

WordPress アドレス(DBのsiteurl)
変換されません。
 
サイトアドレス(DBのhome)
ウィジェット

 

 

画像
変換されます
カスタムHTML
HTMLで記述したメディア画像は変換されません
カスタマイズ
ヘッダ画像
変換されません。

 

1.稼動中のWordPressからURLを変更する

1-1.「Velvet Blues Update URLs」のインストールと有効化

新規プラグイン画面から「Velvet Blues Update URLs」を検索します。

■「今すぐインストール」と「有効化」を実行して下さい。

下記メニューが追加されます。

■ツールの中に「Update URLs」が追加されます。

 

1-2.「Update URLs」を実行します。

下記画面が表示されます。

■「古いURL」と「新しいURL」を入力して「Update URLs NOW」ボタンを挿入します。

URLが変更されました。

画面はそのままですが、ドキュメントの中にあるURLをクリックするとエラーになります。

 

1-3.「WordPress アドレス」と「サイトアドレス」を更新します。

メニュから「設定→一般」を実行します

下記画面の「WordPress アドレス」と「サイトアドレス」を更新します。

■新しいURLを入れて「変更を保存」ボタンを挿入します。

 URL変更の種類

URLはドメイン名/WordPressフォルダ名から構成されています。

ドメイン名の変更だけなら上記で終わりです。

しかしWordPressフォルダ名を変更した場合は「File not found.」のエラーが出ます。

これは新しいフォルダを見に行ったがありませんよ!という意味です。

 

1-4.WordPressフォルダ名の変更

WordPressのフォルダ名を変更した場合は下記を実行します。

WEBフォルダの下にある「古いWordPressフォルダ名」を「新しいフォルダ名」に変更します。

 メモ

通常はWordPressのフォルダ名を変更した場合は、「.htaccess」内に記述しているフォルダ名も変更する必要がありますが、「.htaccess」の変更は「WordPress アドレス」と「サイトアドレス」を更新した段階で自動的修正されます。

 

1-5.その他

このプラグインは下記項目が変換されませんので、マニュアルで修正する必要があります。

■カスタマイズで指定したヘッダ画像

■ウィジェットの「カスタムHTML」で記述したメディア画像

 

2.WordPressフォルダ+SQLファイルからURLを変更する

URL変更を行うのは、通常は本番サーバへの移行時に発生するので、一般的にはこのケースです。

2-1.WordPressフォルダを配置する

WordPressフォルダのコピー&ペーストは下記ドキュメントを参照してください。

 FileStationで約30分掛かるコピーを数分で終わらせる方法

 

2-2.MariaDBにDBを作成する

上記のWordPressに対応するDBをエクスポートし、移行するサーバにMariaDBにインポートする。

DBのエクスポート/インポートは下記ドキュメントを参照してください。

­ ­mysqldumpでMariaDBを定期的にバックアップする方法 

­ ­phpMyAdminを使ってDBをマニュアルバックアップする方法

 

2-3.WordPressの管理画面に入る為の変更を行う。

現在のDBは旧URLで作られているので、新しいURLではアクセスできません。

まずはこれを変更します。

①phpMyAdminでMariaDBにログインします。

②siteurl、honeのアドレスを変更する。

■左ペインから対象のDBをクリックします(例:oldies)

■「wp_options」をクリックします

■「siteurl」行の「編集」をクリックして、新しいURLを入力します(例:https://hnw.ddnsfree.com/test)

■「home」行の「編集」をクリックして、新しいURLを入力します(例:https://hnw.ddnsfree.com/test)

以上で、管理画面に入るURLが確定しました。

 メモ

例えば、新しいURLが「https://hnw.ddnsfree.com/test」だとすると

■WordPressフォルダ名:test

■「.htaccess」の中のフォルダ名:test

である必要があります。

必ず確認して下さい。

 

2-4.WordPressの管理画面に入る。

以上で新しいURLで管理画面に入れます。

しかしコンテンツの中のURLは昔のままなので、これを修正します。

 

2-5.「Velvet Blues Update URLs」のインストールと有効化

新規プラグイン画面から「Velvet Blues Update URLs」を検索します。

■「今すぐインストール」と「有効化」を実行して下さい。

下記メニューが追加されます。

■ツールの中に「Update URLs」が追加されます。

 

2-6.「Update URLs」を実行します。

下記画面が表示されます。

■「古いURL」と「新しいURL」を入力して「Update URLs NOW」ボタンを挿入します。

URLが変更されました。

 

2-7.その他

このプラグインは下記項目が変換されませんので、マニュアルで修正する必要があります。

■カスタマイズで指定したヘッダ画像

■ウィジェットの「カスタムHTML」で記述したメディア画像

 

 

以上で移行か完了しました。

WordPressの稼働環境を理解する

WordPressを構築した後、URL変更をしたい等のニーズが発生しますが、この時に重要なのはWordPressの稼働環境を正しく理解する必要があります。

1.WordPressの稼働環境

WordPressの稼働環境を図示すると下記の様になります。

<リモートPCからのアクセス>

①インターネットからのアクセスは「グローバルIP」でアクセスされます。

例えばブラウザから「https://nw.myds.me/oldies」でアクセスすると、グローバルIPが「116.58.168.33」でポート番号「443」でアクセスがルータに来ます。

貴方が取得したDDNSがインターネットの中でどの様に変換されるか?は下記サイトで確認して見て下さい。

https://www.cman.jp/network/support/go_ip.cgi

②ルータでは、ポート番号が「443」の場合は、「サーバ①(ローカルIPアドレス)」に行く定義があると「サーバ①」に転送されます。

③「サーバ①のWeb Station」の定義でアクセスは「Webフォルダのoldies」に行きます。

④「oldies」の下記ファイルでアクセス先が決まります。

.htaccessファイル   :PHPプログラム」や「プラグイン」があるフォルダが指定されます。

wp-config.phpファイル:DBの場所」と「DB名」が指定されます。

MariaDB10の場合:/run/mysqld/mysqld10.sock

MariaDB5の場合:localhost

⑤DBのアクセスは「https://nw.myds.me」で検索されるので、データは

■wp_optionの「siteurl」のアドレス(WordPress アドレス)が「https://nw.myds.me/oldies

■wp_optionの「home」のアドレス(サイトアドレス)が「https://nw.myds.me/oldies

■その他のテーブルのURLも同様に「https://nw.myds.me/oldies」になっている必要があります。

 

<ローカルPCからのアクセス>

①ローカルからのアクセスは「ローカルIP」でアクセスされます。

例えばブラウザから「https://nw.myds.me/oldies」でアクセスすると、IPアドレスが判らないので「DNSサーバ」を見に行きます。

②DNSサーバに、「nw.myds.me」は「サーバ①(ローカルIPアドレス)」に行く定義があると「サーバ①」に転送されます。

③「サーバ①のWeb Station」の定義でアクセスは「Webフォルダのoldies」に行きます。

④「oldies」の下記ファイルでアクセス先が決まります。

.htaccessファイル   :PHPプログラム」や「プラグイン」があるフォルダが指定されます。

wp-config.phpファイル:DBの場所」と「DB名」が指定されます。

MariaDB10の場合:/run/mysqld/mysqld10.sock

MariaDB5の場合:localhost

⑤DBのアクセスは「https://nw.myds.me」で検索されるので、データは

■wp_optionの「siteurl」のアドレス(WordPress アドレス)が「https://nw.myds.me/oldies

■wp_optionの「home」のアドレス(サイトアドレス)が「https://nw.myds.me/oldies

■その他のテーブルのURLも同様に「https://nw.myds.me/oldies」になっている必要があります。

 

 メモ

1つのインターネット回線で「サーバ①も②」も外部からアクセスする場合は、ポート番号で分ける必要があります。

案1.https://××(443)はサーバ①、http://××(80)はサーバ②

案2.https://××(443)はサーバ①、https://××:8443はサーバ②

当然、サーバ②をローカルなWebサーバとして使う場合はポート番号で分ける必要はありません。

 

2.MariaDBの中の構造

MariaDBの中には色々なテーブルがありますが、下記テーブルにURLが入る重要なテーブルです。

テーブル名 内容
wp_options
<サイト全体>
・siteurl:「外観→テーマ」のWordPress アドレスです。
・home :「外観→テーマ」のサイトアドレスです。
<ウィジット関連>メディアにある画像や動画を登録するとここに入ります
・widget_media_image
・widget_media_audio
・widget_media_video
・widget_custom_html等
<外観→カスタマイズ>TOP画像等を登録するとここに入ります。
・theme_mods_my_template等
wp_posts <guid列>

固定ページや投稿のURLが格納されています。

<post_content列>

本文の中に画像等へのリンクURLが格納されています。

wp_postmeta
<meta_value列>
投稿、固定ページ・カスタム投稿に付随するデータが格納されています。
またカスタムフィールドのデータもここに格納されています。

 メモ

urlを変更する場合は、上記に登録されているURLも総て変更する必要があります。

またウェジェット関連で登録されているURLは文字数込みで登録されている為、URLを強制的に変更すると文字数が異なる為、ウィジェット自体が機能しなくなります。

よってウィジェット等でメディア画像を読み込んでいる場合は注意が必要です。

 

3.WordPress関連データの操作

上記で説明した様にWordPressは下記から構成されています。

①WordPressフォルダ

②MariaDB上のDB

よって、WordPressの稼働環境を変える為には上記のファイルの操作が必要になります。

 

3-1.WordPressフォルダのコピーや移動

WordPressフォルダを操作する場合は下記ドキュメントを参照してください。

 FileStationで約30分掛かるコピーを数分で終わらせる方法

 

3-2.MariaDB上のDBのエクスポート/インポート

MariaDBにあるDBを操作する場合は、DBのエクスポート/インポートが必要になります。

下記ドキュメントを参照してください。

 ­phpMyAdminを使ってDBをマニュアルバックアップする方法

 ­mysqldumpでMariaDBを定期的にバックアップする方法 

FileStationで約30分掛かるコピーを数分で終わらせる方法

NASを運用していると、大量なファイルをコピーする事があります。

私の場合は、WordPress運用で下記の様なファイルをコピーする事があります。

WordPressフォルダ 47.5MB(1,786ファイル、196フォルダ)を別名でコピーしたケース
方法 コピー時間 備考
普通のコピー&ペースト 約30分 ■WebDAV(Windows)でコピー&ペーストする場合

同一フォルダがあるのでWindowsが勝手にフォルダ名にコピーを付けてコピーを実行します。

■File Stationを使ってコピー&ペーストする場合

同一フォルダでのコピー&ペーストはできません。よって別フォルダにコピーします。

File Stationの機能を使ったやり方 数分 圧縮、移動、解凍の手順で行います。

少し手順が複雑ですが、慣れると通常コピー&ペーストは使わなくなります。

ここでは「File Station」で大量データを高速にコピーする方法を解説します。

1.File Stationのメニュ

File Stationのメニュは下記の様になっています。

■左ペインのフォルダを「右クリックしたメニュ」と、データ部のフォルダを「右クリックしたメニュ」は異なります。

■データ部のメニュには、左ペインのメニュにない「圧縮先××.zip」や「コピー先/移動先」等のコマンドが追加されます。

 

2.高速コピーの具体的な方法

ここでは「web」フォルダの中にある「test」フォルダをコピーして「test01」フォルダを作成する方法を解説します。

2-1.「test」フォルダの圧縮ファイルを作成します。

①「web」フォルダの中にある「test」フォルダを右クリックして「圧縮先test.zip」を実行します。

②下記ファイルができます。(約7秒で圧縮ファイルができます)

 

2-2.「test.zip」フォルダを別のフォルダに移動します。

上記の「test.zip」の中身は「test」なので、同一名のフォルダが存在しているので、ここでは解凍できません

そこで「test.zip」を他のフォルダに移動します。

①「test.zip」を右クリックし「コピー先/移動先」の「移動先」を実行します。

フォルダリストが出てくるので「home」フォルダを選択します。(どのフォルダでも可)

②「home」フォルダを見ると「test.zip」ファイルが移動されています。

 

2-3.「home」フォルダ内で、解凍、リネーム、圧縮を実行します。

①「test.zip」を右クリックし解凍します。

下記のフォルダができます。(約7秒で圧縮ファイルが解凍されます)

②上記フォルダを右クリックして「名前の変更」を実行します。

フォルダ名を「test」から「test01」に変更します。

③「test01」フォルダを右クリックして圧縮します

test01.zip」をweb」フォルダに戻します。

 

2-4.webフォルダで「test01.zip」を解凍する

①Webフォルダで「test01.zip」を右クリックして解凍します。

 

2-5.掃除

最後に「Webフォルダ」と「homeフォルダ」のゴミを削除して完了です。

以上で完了です。

少し手順は複雑ですが、これを使いだしたら通常のコピー&ペーストは使わなくなります。

 メモ

WordPressのプログラムを開発していると、プログラム修正前にコピーを取っておくケースが多々あります。

しかし、この様な操作は「File Station」ではできません。

よってSynologyのサーバをWebDAV接続して、Windowsの機能でコピーするのがお勧めです。

 

3.Synologyサーバ間でのファイル移動/コピー

複数のSynologyサーバ間でフォルダのやり取りをする場合は、「File Station」が複数サーバをアクセスする必要があります。

そのような場合はURLを参照してください。

­ ­WebDAVで他のSynologyのフォルダをマウントする方法

­ ­CIFSで他のSynologyのフォルダをマウントする方法