カテゴリー: TS(トラブルシューティング)

  • 【WordPress】【TS】【Jetpack】【2026年度版】セーフモードが有効化されました の解決法をまとめる。

    【WordPress】【TS】【Jetpack】【2026年度版】セーフモードが有効化されました の解決法をまとめる。

    about this page(このページについて)

    【WHY】このページの目的

    • WordPressサイト(AWS Lightsail / Bitnami環境)でJetpackの「セーフモードが有効化されました」というエラーが発生した際の原因と、その根本的な解決手順をまとめます。

    【WHAT】このページで行うこと

    • Jetpackがセーフモードになってしまう原因(ドメインとIPアドレスのURL曖昧さ)を解説し、Apacheの設定変更と .htaccess を活用した「IP直アクセスのブロック」および「WordPressパーマリンクの維持」を両立させる手順を解説します。

    【WHO】このページの対象読者

    • AWS LightsailのBitnami環境でWordPressを運用している方
    • Jetpackのセーフモードエラーに悩んでおり、確実なアクセス制限を行いたい方

    【HOW】どのようにして目的を達成するのか

    • WordPress側で正しいURL(WP_HOME / WP_SITEURL)をドメインに固定する。
    • Apacheのバーチャルホスト設定(AllowOverride)を見直し、.htaccess を有効化する。
    • .htaccess にて「ドメイン名以外のアクセス(IP直打ちなど)」を403エラーで弾きつつ、WordPressのパーマリンク構造を維持する設定を行う。

    はじめに

    WordPressの管理画面で下記のようなエラーが発生するようになりました。

    セーフモードが有効化されました

    このエラーを解決し、WordPress側の設定をあるべき状態に移行します。

    エラー原因と解決策(見込み)

    このエラーの原因としては、IPによる直アクセスを制限していないため、
    jetpack側が「sattva-improve.comとIPのどちらが正しいドメインなのか?」で悩んでしまっているようでした。

    Jetpack側には「sattva-improve.comが正しいよ。」と教えてあげてから、
    Apacheの設定を変更してIPによるアクセスを制限していきます。

    解決手順

    1. 正しいURLの提示

    セーフモードが有効化されました

    この画面の左側の「設定を移動」をクリックして、ドメイン側が正しいURLであることを提示してあげてください。

    2. IPによるアクセスの禁止

    2-1. .htaccessを有効化させるための下準備

    Bitnami環境のデフォルト状態では、.htaccess が無視される設定になっているため、まずは .htaccess が機能するようにバーチャルホストの設定を変更します。

    ※今回の環境(Apache 2系)では、以下の設定ファイルを編集しました。

    sudo vim /opt/bitnami/apache2/conf/vhosts/wordpress-https-vhost.conf

    (※参考: Lightsail|WordPress – bitnami|.htaccessを有効化する方法)

    対象のディレクトリ(/opt/bitnami/wordpress)に対して AllowOverride All が設定されていることを確認(または追記)します。

      <Directory "/opt/bitnami/wordpress">
        Options -Indexes +FollowSymLinks -MultiViews
        AllowOverride All←ここを変更してください。
        Require all granted
        # BEGIN WordPress fix for plugins and themes
        # Certain WordPress plugins and themes 

    設定後、構文テストとApacheの再起動を行います。

    sudo apachectl configtest
    sudo /opt/bitnami/ctlscript.sh restart apache

    2-2. .htaccess にIP制限とパーマリンク設定を記述する

    DocumentRoot(/opt/bitnami/wordpress)を開き、「IP直アクセスの拒否」と「WordPressのパーマリンク(ルーティング)維持」を両立させるための記述を行います。

    vim /var/www/html/.htaccess

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    # 1. 指定ドメイン(sattva-improve.com 等)以外のアクセス(IP直打ちなど)を403で弾く
    RewriteCond %{HTTP_HOST} !^(www\.)?sattva-improve\.com$ [NC]
    RewriteRule ^ - [F,L]
    
    # 2. WordPressのパーマリンク設定(サブページを正常に表示させるためのルール)
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    これで、IPによる直アクセスが制限されるはずです。

    3. WordPress側のWP_SITEURL, WP_HOMEの設定

    Bitnamiのデフォルトではwp-config.php 内で WP_HOME や WP_SITEURL が動的(アクセスされたホスト名やIPを拾う形)に指定されています。

    これを明示的にドメイン名で固定します。

    sudo vim /var/www/html/wp-config.php
    #define( 'WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/' );
    #define( 'WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/' );
    define( 'WP_HOME', 'https://3.25.88.70/' );
    define( 'WP_SITEURL','https://3.25.88.70/' );

  • 【TS】【Windows 11】公共Wifiに接続ができなかったので、IPを直指定して無理やり接続をした話

    【TS】【Windows 11】公共Wifiに接続ができなかったので、IPを直指定して無理やり接続をした話

    about this page(このページについて)

    【WHY】このページの目的

    • 同じような問題にぶち当たった人のためのハウツー

    【WHAT】このページで行うこと

    • 今回の問題の解決策に関して簡単にまとめる

    【WHO】このページの対象読者

    • 公共Wifiに接続ができなくて困っている方

    【HOW】どのようにして目的を達成するのか

    • AIのチャット履歴を元にブログ記事を生成してまとめる

    はじめに

    妻が金曜日から土曜日にかけて泊まりがけで遊びに行っていたため、そのお返し(?)として「日曜日は図書館で集中して勉強してきていいよ!」というありがたい許可をもらいました。

    せっかくもらった貴重な一人時間。気合を入れて図書館へ向かい、お気に入りの席を確保して「さあ勉強するぞ!」とパソコンを開いたのですがスマホ(Android)は問題なくネットに繋がるのに、Windows 11のパソコンだけがなぜかインターネットに接続できませんでした。

    試行錯誤の末になんとか接続を確立することができました。
    今回はその原因と、解決した手順を詳しく解説します。

    忙しい人のための3行まとめ

    • スマホで接続はできているのに、PCで接続ができなかった。
    • 原因は、DHCP関連のエラーで、IPの割り振りがされていなかった。
    • スマホ側の接続情報を頼りに手動でIPを取りに行った

    原因の特定

    Wi-Fiの電波自体には接続できているものの、インターネット通信ができない状態でした。
    そこでWindows11側のネットワークの接続診断を行ったところ、「DHCPサーバーが見つかりませんでした」 というエラーが表示されました。

    ※ DHCPサーバーとは、簡単に言えばIPを割り振ってくれるサーバーのことです。

    DHCPサーバが見つかりませんでした。ネットワーク接続の品質が低い可能性があります。

    通常、Wi-Fiに接続するとルーター(あるいはDHCPサーバー)からパソコンへ自動的にIPアドレスが割り当てられます。
    しかし今回は、ルーターからの応答が得られず、IPアドレスの取得に失敗していました。

    実際にWindowsのネットワーク設定を確認してみると、IPアドレスが 169.254.122.10 になっていました。

    この「169.254.x.x」というアドレスは、自動取得(DHCP)に失敗した際にWindowsが仮で割り当てる「APIPA」という状態であり、正常にWi-Fiネットワークに参加できていないことが原因だと特定できました。

    どうすれば解決するのか?を考える

    一方、手元のスマホ(Android)は同じフリーWi-Fiに正常に接続できており、IPアドレスを確認すると 192.168.0.xxx が割り当てられていました。

    つまり、ルーターやネットワーク自体は稼働しているものの、何らかの理由でWindows端末だけが自動でIPアドレスを取得できていない状態です。

    であれば、自動取得(DHCP)に頼るのをやめ、正常に接続できているスマホのネットワーク情報を参考に、PC側に手動でIPアドレス(固定IP)を設定してしまえば接続できるのではないか? と考えました。

    スマホ側の設定からPC側に反映をする

    正常に通信できているスマホの「ゲートウェイ(ルーターのアドレス)」や「DNSサーバー」の情報をそのまま借りて、PC側のIPアドレスをスマホと被らない数値で直接入力します。

    具体的な方法

    スマホ側の設定の確認

    まずは、問題なく接続できているスマホ(Android)のWi-Fi詳細画面を開き、以下の情報をメモします。

    • IPアドレス: 192.168.0.xxx
    • ゲートウェイ(ルーター): 192.168.0.1
    • DNSサーバー: 192.168.0.1(またはプロバイダ等のDNS 61.122.116.147 など)

    PC側の設定

    スマホで確認した情報を元に、Windows 11側で手動(固定IP)設定を行います。

    1. 「設定」>「ネットワークとインターネット」>「Wi-Fi」 を開きます。
    2. 接続中のフリーWi-Fiのプロパティを開き、「IP 割り当て」 の横にある 「編集」 ボタンをクリックします。
    3. 編集画面で 「自動 (DHCP)」から「手動」 に変更し、「IPv4」をオン にします。
    4. 以下の通りに各項目を入力します。
    項目入力内容補足
    IP アドレス192.168.0.yyyスマホ(.xxx)と被らないよう、末尾の数字を変更します
    サブネット プレフィックスの長さ24サブネットマスク 255.255.255.0 に相当します。

    ※ サブネットマスクとは、どこまでがネットワークのアドレスで、どこからがホスト(IPが振られている端末)のアドレスか?という情報です。
    ゲートウェイ192.168.0.1スマホに表示されていたゲートウェイIPを入力します

    ※ ゲートウェイとは、インターネットに接続をする際に必ず通る出口(あるいは入り口)のことです。
    優先 DNS サーバー192.168.0.1スマホに表示されていたDNSを入力します。

    ※ DNSサーバーとは、IPとドメインを解決する際に聞きに行くサーバーのことです。
    代替 DNS サーバー61.122.116.147表示されていたもう一つのDNSがあれば入力します

    「保存」 をクリックし、ブラウザを開いて接続できるか(あるいはログイン・規約同意画面が表示されるか)確認します。

    まとめ

    なぜPCだけDHCPがうまく動かなかったのか?は不明ですが、ちょっとしたネットワークの知識があるとこのようなトラブルシューティングにも対応できるようになるので、勉強を頑張ろう と思いました。

    あとフリーWifi使うときには必ずVPNつなぎましょうね!

  • 【TS】LightsailでSSL/TLS 証明書の取得に失敗する

    【TS】LightsailでSSL/TLS 証明書の取得に失敗する

    about this page

    【WHAT】このページには何が書いてあるのか?

    • LightsailでSSL/TLS証明書の取得に失敗したときの対処法
    • 以下のエラーの原因と、その対処法について
    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    【WHY】このページの目的

    • 同じエラーに出くわした人の助けになるため。
    • 自分の備忘録としての記録

    【WHO】このページの対象読者

    • LightsailでWordPressを運用しており、SSL/TLS証明書の取得に失敗した人
    • 自分自身

    【HOW】どのようにして記載するのか?

    • 対処方法を端的に説明した後、原因を解説する

    発生した現象について

    エラー画面

    エラー画面
    発生したエラーの内容

    エラー内容

    Amazon LightsailでWordPressのインスタンスを作成し、Route53でドメインを取得後、Lightsailのセットアップ機能でセットアップを行っていたところ、SSL/TLS証明書の取得時に下記のエラーが発生した。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    対応方法

    対応方法は以下の2ステップになります。

    1. インスタンスに IPv6 アドレスをアタッチする。
    2. 対象ドメインのDNSレコードのAAAAレコードにPv6アドレス設定する。

    【手順1】インスタンスにIPv6アドレスをアタッチする

    対象インスタンスをクリックして選択してください。

    1. 対象インスタンスを選択する
    1. 対象インスタンスを選択する

    「ネットワーキング」タブを選択してください。

    2. 「ネットワーキング」タブを選択
    2. 「ネットワーキング」タブを選択

    画面を下にスクロールして、IPv6アドレスを取得してください。

    3. IPv6アドレスを取得する
    3. IPv6アドレスを取得する

    【手順2】対象ドメインのDNSレコードのAAAAレコードにPv6アドレス設定する

    左パネルから「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に遷移してください。

    4. 「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に飛ぶ
    4. 「ドメインとDNS」を選択し、対象DNSゾーンの設定画面に飛ぶ

    「DNSレコード」タブを選択後、「レコードの追加」をクリックし、DNSレコードの追加画面に遷移してください。

    5. レコードの追加画面に遷移
    5. レコードの追加画面に遷移

    プルダウンから「AAAA」レコードを選択し、ドメイン名の箇所に@マークを入力してください

    「解決先」テキストボックスに取得したIPv6アドレスを入力してください。

    6. AAAAレコードの設定
    6. AAAAレコードの設定

    設定が完了したら、Lightsailのコンソールから「WordPressウェブサイトをセットアップする」のガイダンスに従って操作をしてください。

    私のケースでは、これで解決しました。
    もし、上手くいかない場合や、情報が不足している場合、コメント等でフィードバックをいただけると幸いです。

    この記事が誰かの役に立つことを願いします。


    問題の原因

    以下では、「なぜSSL証明書の取得に失敗したのか?」と「なぜ、今回の作業で解決したのか?」の2点について解説していきます。

    なぜSSL証明書の取得に失敗したのか?

    エラー文言の内容を理解する

    まずは、エラー文言の内容を正しく理解するところから始めましょう。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.

    翻訳すると、以下のような文章になります。

    We encountered an error while configuring the Let's Encrypt SSL/TLS certificate on your instance blog in the ap-northeast-1 Region. Try again later.
    (インスタンス blog に対して、ap-northeast-1 リージョンで Let's Encrypt SSL/TLS 証明書の設定中にエラーが発生しました。後でもう一度試してください。)
    
    1 DNS records do not match instance IPs. Did not find IPv6 match for 1 domain(s). Verify the values for your DNS records are correct. After you change DNS record values, you must wait for the DNS cache to expire before you can try again.
    (1 DNS レコードがインスタンスの IP と一致しません。1 つのドメインに対して IPv6 の一致が見つかりませんでした。DNS レコードの値が正しいことを確認してください。DNS レコードの値を変更した後、DNS キャッシュが期限切れになるまで待ってから、もう一度試す必要があります。)

    要約すると以下のような内容です。

    「IPv6のDNSレコードが正しく設定されていないので、証明書の取得に失敗しているよ」

    なぜ、今回の作業で解決したのか?

    Lightsailで提供されているWordPressの設定ツールは、SSL/TLS証明書を取得する際に、内部的にLet’s Encryptを利用しています。

    Let’s Encryptは、ドメインの所有権を確認するために、DNSレコードをチェックします。
    AWS Lightsailでは、デュアルスタック(IPv4とIPv6の両方)をサポートしており、デフォルトでIPv6アドレスが割り当てられます。

    今回のエラーは、DNSレコード(AAAAレコード)にIPv6アドレスが正しく設定されていなかったため、Let’s Encryptがドメインの所有権を確認できず、証明書の取得に失敗していました。

    AAAAレコードに正しいIPv6アドレスを設定することで、Let’s Encryptがドメインの所有権を確認できるようになり、証明書の取得に成功した。というわけです。

    参考にしたサイト