人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

LAMP環境でWEBアプリを作成しています。
特定の日時にならないと作動しない仕組みを構築したのですが本番サーバでのテストの仕方で悩んでいます。
ローカル環境では問題ないのですが他の人間に確認してもらう為、本番サーバでテストする必要があるのです。

サーバ自体の時間を変更してしまえば検証出来るのですが他のシステムや機能に影響が出るため出来ません。
出来れば特定ディレクトリ、特定バーチャルドメインのみで変更がしたいのですが可能でしょうか?

●質問者: php-beginner
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Lamp Web アプリ サーバ システム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● あすか
●27ポイント

「特定の日時にならないと作動しない仕組み」というのがどのようなものか分かりませんが、

もしcronで実現しているのでしたら、

crontabのユーザー権限が及ぶディレクトリに対してしか発動しませんので、

crontabを保有しているユーザーの権限を調整してみてください。

◎質問者からの返答

cronではなく単純にPHPで日付をIF条件としています。

簡単に書くと下記みたいな感じ。

IF(date('Y')=="2011"){

echo "年が開けて初めて出力される" ;

}

date関数はサーバの時間を取得しているのでサーバの時間を変更しないと検証する事が出来ません。


2 ● k-tan2
●27ポイント

>出来れば特定ディレクトリ、特定バーチャルドメインのみで変更がしたいのですが可能でしょうか?

できません。

>サーバ自体の時間を変更してしまえば検証出来るのですが

サーバの時間を変更しなくても、ある程度確認でる仕組みにしておかなかったので無理です。

また、本番サーバで全テストを行うのは不可能ですから、

そういうテストは本番サーバーでは行わないです。

今回の場合なら、日付とか取得する関数は、ユーザー関数でラッピングしておいて

実際に、サーバーの日付を変えなくても日付を換えれるような仕組みを作っておくとか

そういう風にしないと無理ですね。

そういう仕組みがないのなら、本番サーバーとほぼ同一の環境で確認する以外にありません。

◎質問者からの返答

そうですかぁ。

タイミング見て書き直したいと思います。

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


3 ● taramonera
●26ポイント

$_SERVER["SERVER_NAME"]でドメインをみて

特定バーチャルドメインであれば●日後の日時を取得する

とすれば良いかとおもいますが、いかがでしょうか。


下記は1つの例です。

<?php
if( $_SERVER["SERVER_NAME"] === "xxx.xxx.jp" ){//特定のドメインであれば1週間後の時間をNOWに設定
$timestamp = strtotime("+1 week");
define( "NOW", date("Ymd", $timestamp) );

}else{
define( "NOW", date("Ymd") );
}


if(NOW>="20110101"){

  //なんらかの処理
}
?>
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ