0

Web サイトに多数のプロセスがあり、毎日深夜に実行する必要があることがわかりました。cron ジョブを使用してこれを設定しようとしていますが、これがどのように機能するかについて混乱しています。

問題は、php プロセスの実行方法と、Web サイトでの通常の実行方法に違いはありますか? 満たす必要がある形式、またはある状況で別の状況と比較して実行できる/実行できないコードはありますか? これは、私が取り組んでいる特定のコードとは関係ありません。これは私がまだ書いていない仕事のためのものですが、この質問に対する答えを見つけることができないようです.

4

1 に答える 1

0

はい、実際にはほとんどの典型的な PHP セットアップに違いがあります。通常、Web サイト/Web サービス用に Apache を介して実行される PHP の場合、独自の php.ini 構成を備えた完全に別個の PHP インストールが使用されます。PHP は通常、Web サイトのユーザー (OS のバージョンに応じて httpd、www-data など) として実行されます。

cron を介して実行されるスクリプトの場合、通常、完全に別の構成を持つ PHP CLI を使用します。また、CLI は通常、自動入力されたスーパーグローバル (つまり $_SERVER) 内で使用できるものに関して大きな違いがあり、通常、セッションの概念もセッションを伝播する機能もありません。PHP CLI は、それを実行している (または cron で指定された) ユーザーとして実行されます。これは、ディレクトリとファイルのアクセス許可に関して、Apache を介して実行する場合と比較した場合に影響を与える可能性があります。

特定の PHP 関数内でも動作が異なるため、CLI で実行するためにコードをテストする必要があります。

PHP マニュアルのこのリンクでは、いくつかの追加の違いについて説明しています: http://www.php.net/manual/en/features.commandline.differences.php

于 2013-05-03T18:54:40.497 に答える