기본 디버깅

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이 지정한 경로에 쓰기 권한이 있어야 합니다.