サポート » 使い方全般 » Basic認証配下で予約投稿が失敗する

  • Basic認証配下で予約投稿が失敗するのを回避するパターンを
    2通りやってみましたがどちらも失敗します。
    できた方がいましたら、ご指導よろしくお願いします。

    ネットで調べていたら、有力な情報が2パターンあったので
    .htaccessに以下をそれぞれ追記しテストしてみましたがどちらもダメでした。

    【追記パターン1】
    # Exclude the file upload and WP CRON scripts from authentication

    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none

    ※これだと、予約投稿は成功しましたが、サイトにアクセスするときにBasic認証ダイアログが出ないので意味がないです。

    【追記パターン2』

    Satisfy any
    order deny,allow
    deny from all
    allow from (wordpressを設置してあるサーバのIPアドレス)

    ※Basic認証そのものは出ますが、サーバのIPアドレスを許可しても予約投稿に失敗します。

    -引用-
    HTTP-CRONはパスワードでプロテクトされたディレクトリへアクセスできないため、
    予約投稿が失敗するみたいです。
    リクエストはWordpressが置いてあるサーバから出されるみたいです。
    サーバのIPアドレスをベーシック認証の例外として設定することではじかれるのを防ぐことができます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • モデレーター jim912

    (@jim912)

    masterspさん

    パターン2で問題なく動作しています。
    ローカルネットワークでの指定が必要だったりしませんか?

    トピック投稿者 mastersp

    (@mastersp)

    jim912さn

    コメントありがとうございます。

    パターン2で出来ているんですね。
    「ローカルネットワークでの指定」というのは具体的に何のことでしょうか?

    ちなみに
    レンタルサーバはロリポップチカッパプランのサーバを使っています。
    パターン2の.htaccessにはロリポップのWEBツールで設定した
    Basic認証の設定が記述されていまして、それに以下を追記する形で書いています。

    Satisfy any
    order deny,allow
    deny from all
    allow from (wordpressを設置してある自分のドメインのサーバIP)

    モデレーター jim912

    (@jim912)

    WordPressを設置したサーバがローカルネットワークにある場合、指定するIPはグローバルIPと異なりますが、チカッパであれば、その可能性はなさそうですね。

    あるいは、予約投稿の時間に一切アクセスしてなかったとか。

    WordPressのcronは、外部からの何らかのアクセスをトリガーとして起動するので、管理画面なども含めて予約投稿の時間に、一切WordPressへのアクセスがないと、失敗することになります。

    トピック投稿者 mastersp

    (@mastersp)

    ワードプレスの予約投稿は
    1.ある時刻にクライアントがアクセスしてくる
    2.クライアントがアクセスしてきた時間よりも前の時間に
      予約投稿されたものがないかワードプレスが探す
    4.あれば、httpリクエストを送信する。(予約投稿を実行する)

    と書いてあったので、予約投稿の時間がきても、どのクライアントもアクセスしてきて
    なければhttpリクエストを送信せずに予約状態中ではないんですか?

    例えば、23:00に予約投稿されていたとしてもクライアントが誰一人アクセスして
    こなければ予約投稿は待機中で、あるクライアントが23:05とかにアクセスしてきてはじめて
    予約投稿処理が実行されるのだと思いました。
    が違うのでしょうか?

    ちなみに予約投稿時間がすぎてからアクセスしてみましたが、
    失敗しますね。

    トピック投稿者 mastersp

    (@mastersp)

    【.htaccessの記述内容】

    #Basic認証に関する記述

    #下記を追記
    Satisfy any
    order deny,allow
    deny from all
    allow from ロリポップのサーバのIPアドレス

    この件なんですが、
    そもそもwp-cron.phpが取得できないと予約投稿が失敗する(原因)と書いてあったので
    sshでサーバにログインして
    $ wget http://ドメイン名/wp-cron.php
    としてみました。

    HTTP request sent, awaiting response… 401 Authorization Required
    Authorization failed.
    が返ってきました。

    Satisfy any
    order deny,allow
    deny from all
    allow from サーバのIPアドレス

    Basic認証の設定に追記したこれは、
    Basic認証されたディレクトリだけど、サーバのIPからのアクセスだけは許可(除外)するといった感じでしょうか?

    Authorization failed.が返ってくるので
    これを追記してもBasic認証が効いたディレクトリへのアクセスで
    サーバのIPアドレスからのアクセスだけは許可(除外)という状態にはなってないようです。

    何か記述ミスや他に考えられることはないでしょうか?

    トピック投稿者 mastersp

    (@mastersp)

    自己解決したので報告します。
    サーバのIPアドレスを勘違いをしていたようで、ロリポップチカッパプランの場合
    アカウント情報として

    ■アカウント情報
    フルパス/home/users/2/**********/web
    サーバーIP aaa.aaa.aaa.aaa ※ドメインをnslookupしたときに返ってくるIPアドレス

    ■サーバ情報
    FTPサーバ:FTPサーバのドメイン名 ※実際にユーザディレクトリ(公開ディレクトリ)があるサーバ

    とあります。(※は実際には書いていませんが)

    自分はてっきりアカウント情報にあるサーバIP:aaa.aaa.aaa.aaaがwordpressの設置されているサーバのIPアドレスだと思っていました。

    実際はwordpressを設置したサーバのIPアドレスというのは
    SSHでログインしたりFTPログインしたりするときのサーバ(FTPサーバの方)なんですね・・・

    Satisfy any
    order deny,allow
    deny from all
    allow from (FTPサーバのIPアドレス:SSHサーバIPでも同じ)

    これでうまくいきました。

    レンタルサーバのサーバ環境(ネットワーク構成や設定)によって違うかもしれませんが
    こういうことだったんですね。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「Basic認証配下で予約投稿が失敗する」には新たに返信することはできません。