🌟

【PHP】ReactPHP で TLS 対応の HTTP/1 サーバーをつくる

2024/07/02に公開

Composer でパッケージをダウンロードする

composer require react/http react/socket

次のコードを用意する

server.php
<?php

require __DIR__ . '/vendor/autoload.php';

$http = new React\Http\HttpServer(function (Psr\Http\Message\ServerRequestInterface $request) {
    return React\Http\Message\Response::plaintext(
        "Hello World!\n"
    );
});

$socket = new React\Socket\SocketServer(
    '127.0.0.1:8080',
    ['tls' => [
        'local_cert' => 'localhost.pem',
        'local_pk' => 'localhost-key.pem'
        ]
    ]
);
$http->listen($socket);

echo "Server running at https://127.0.0.1:8080" . PHP_EOL;

証明書と秘密鍵は mkcert で生成する

mkcert localhost

サーバーを起動させてブラウザーでアクセスする

php server.php

Discussion