1263704211 PHPのcronについてのご質問です。


■ダンススクール東京
http://www.todash.jp/

上記「スクール検索」の検索順位を毎日ランダムに変更するため
cronを使用しています。

これ自体はうまくいったのですが、

http://www.todash.jp/xxxxx/koushin.php

のように誰でもアクセスできる状態にあるため、セキュアな状態にしたい
のですが、認証をかけたりpublic_html外に配置した場合は、cron自体も
アクセスできずうまくいきません。

こういった場合はどうするのが一般的なのでしょうか?

ご教授宜しくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/01/17 22:01:31
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント27pt

public_html外に配置した場合は、cron自体も

アクセスできずうまくいきません。

この辺を詳しく。

基本的にはこの方法を使うのが常套手段。


PHP は基本的には Web からのアクセスを前提としているが、cron 等のコマンドラインからも実行できるようになっている。

ただし、パラメーターや環境変数などが異なるのでそれ相応のプログラムにしないとならないが。

PHP: PHP をコマンドラインから使用する - Manual

その他の回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント27pt

public_html外に配置した場合は、cron自体も

アクセスできずうまくいきません。

この辺を詳しく。

基本的にはこの方法を使うのが常套手段。


PHP は基本的には Web からのアクセスを前提としているが、cron 等のコマンドラインからも実行できるようになっている。

ただし、パラメーターや環境変数などが異なるのでそれ相応のプログラムにしないとならないが。

PHP: PHP をコマンドラインから使用する - Manual

id:horonict No.2

回答回数257ベストアンサー獲得回数51

ポイント27pt

普通は公開ディレクトリ(public_html)の外に設置します。


>cron自体もアクセスできず

コマンドラインでphpを実行するように記述していますか?

たとえばphpスクリプトをcgiにして、cgiファイルの冒頭に "#!/usr/local/bin/php.cgi"(環境によってディレクトリ名は異なる)と記述するなどします。

id:scrap49 No.3

回答回数18ベストアンサー獲得回数4

ポイント26pt

普通じゃない方法で・・・

koushin.php?password=hogehoge

GETの値をスクリプト内のパスワードと一致することを確認してから更新処理をする。

若しくは

http://www.example.jp/xxxxx/

ディレクトリにベーシック認証をかけて

cronで下記のように設定する。

http://userid:password@www.example.jp/xxxxx/koushin.php

  • id:gelgelgel
    皆様ご回答ありがとうございます。

    以前にやったときに寝ぼけてたのか、再度public_html外に配置して試したら
    すんなりうまくいきました・・。

    でも一般的な方法が確認できたのでよかったです。

    一番早かったということで「いるか賞」はb-windさんに
    scrap49さんのゴイケンモトも参考になりました。

    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません