PHPでのCGIパッケージ開発パソコンよろず攻防 |→サイトマップお問い合わせPHPでのCGIパッケージ開発-パソコンよろず攻防
  1. ホーム
  2. 失敗から学ぶPHP
新着 《記事番号:53》 2021-02-09 16:36:28
最近の、別の記事を探す

【タイトル】
CLIで実行しないとargvはundefinedになる
【キーワード】
CLI,argv,undefined,CGI,サイト改ざん,ファイル日付
【内容】
 cronジョブで実行すると、自動的にCLIになるとの誤解を持っていたのでしょうか?

 CLIで実行したいスクリプトをSSHでテストすると、「PHP Notice: Undefined ・・・ argv・・・」と表示される。このメッセージでそのまま検索すると、「register_argc_argv」が有効になってなかったという記事が数件。phpinfo()で調べて問題なし。散々検索して、何がヒントで気付いたか覚えていませんが、CLIにたどり着いた。なんと「そこ」で間違えていました。CLIでなくCGIで動かしていたので、argvは取れません

 CLIがキーワードになってからは、一気に解決しました。
見た記事の1件目、CLI版が多いのは
/usr/bin/php
で、これに変更してから一気に解決しました。私が以前実行し、実績ありと誤解していたcronジョブ
/usr/local/bin/php
でした。これはCGI版のPHPの呼び出しです。実行するスクリプトは外部からの入力なしでメールを打つだけなのでCGI/CLIに関係なく実行出来た訳です。

 私はXREAを使っています。XREAではコマンド名phpはCGI版、phpvvcli(vvはバージョン)はCLI版で使い分けが出来るようです。今現在は必要性がないので試していません。

 サイト改ざんの検出をするために、自分のサイト中のファイル日付をチェックして、所定の日付(パラメタ指定)より後に更新された、ファイル名/ファイル日付をメールで届けると言うスクリプトを毎夜cronジョブで実行したかったのです。上手く動作しています。
検索


OR検索AND検索
更新履歴
追加・更新されたブロックの内容を自動的に表示しています。
メニュー
PHP 5.6/7.0のサポート終了
 以下のページからの引用です。
PHP 7.3がリリース、5.6は間もなくサポート終了 | 財経新聞
5.6は2018/12/31にサポート終了
7系も7.0は2018/12/31にサポート終了
 ちなみに、このブロックはこのサイトの7.2対応を確認する一環で作っています。
このサイトは
XOOPSのブロック管理の考え方を参考にして作った自作ツールで作成しています。

このサイトは、全ページどのページからでもリンクフリーです。
VECTORから公開予定
 いーじー・フリーメール本物は将来的に、VECTORのフリーソフトに登録予定です。
 2019/8/6