【PHP】cronでWEBアクセスと全く同じ動作を行いたい

ブラウザで動作するWEBシステムで、
使用しているプログラムをcronから呼んだらうまくいかない、
WEBアクセスしたときと結果が違う、
ということはないでしょうか。

cronからPHPをコマンドで実行した場合、
環境変数などの実行環境がWEBとは異なるため
全く同じ動作を行う保証がなく、予測しにくい不具合を生みます。

そこで私は、バッチ処理などでcronからphpを呼ぶ場合は
wgetを使っています。

こんな感じでwgetを呼ぶシェルをcronにセットするだけです。

batch.sh

これでWEBアクセスと同じ動作を行わせることができます。

重複実行防止処理はphp側で行っています。
もし時間のかかる処理ならwgetのオプションにタイムアウトの指定をします。

【PHP】配列を任意の項目でソートする

連想配列を1データとする配列を任意の項目でソートしたい場合

データの例

年齢で昇順でソート

名前+性別の降順でソート

【PHP】PHP7.1で暗号化・復号化

5年前に書いた記事

【PHP】シンプルに暗号化・復号化する

の内容がPHP7.1では非推奨になってしまったようなので
OpenSSLを使う新しい方法で暗号化・復号化をしてみました。

特にインストールが必要なものはありません。

【Linux】CentOS6.5でPHP5.3をいきなりPHP7.1にする

PHPのシステム開発でPHP7以上が要求される案件も増えてきていると思います。

でもCentOS6.5での標準はすでにサポートが切れて久しいPHP5.3です。
そろそろ「PHP5.3で稼働しています」と言うのが恥ずかしくなってきました。

意を決してPHP7にバージョンアップすることにしたのですが、
まずは本番サーバーで試す前に
スタンバイサーバーでPHP7.1にバージョンアップしてみました。

すぐにWebサーバーを再起動して動作確認しましょう。

ちなみに私のサーバーでは、なんとPHP4の名残でコンストラクタの定義でクラス名を使っていたところがあって、エラーになってました。