기본 디버깅

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