基本デバッグ
Workermanには二つの実行モード、デバッグモードとデーモン実行モードがあります。
php start.php start と実行するとデバッグモードに入ります。この時、コード内の echo、var_dump、var_export などの関数の出力がターミナルに表示されます。注意点として、php start.php start で実行したWorkermanは、ターミナルを閉じるとすべてのプロセスが終了します。
一方、php start.php start -d と実行するとデーモンモードに入り、正式な運用モードとなります。この場合、ターミナルを閉じても影響を受けません。
デーモン方式で実行しながらも echo、var_dump、var_export などの関数の出力を見たい場合は、Worker::$stdoutFile属性を設定することができます。例えば以下のようにします。
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
// スクリーンの出力をWorker::$stdoutFileで指定されたファイルに保存
Worker::$stdoutFile = '/tmp/stdout.log';
$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
$connection->send('hello world');
};
Worker::runAll();
こうすることで、すべての echo、var_dump、var_export などの関数の出力が Worker::$stdoutFile で指定されたファイルに書き込まれます。注意として、Worker::$stdoutFile で指定されたパスには書き込み権限が必要です。