基本偵錯

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 指定的路徑需要有可寫權限。