宝塔パネルにWebmanプロジェクトをインストールする

0. 環境要件

  • PHP >= 8.1

1. プロジェクトの作成

cd /www/wwwroot
composer create-project workerman/webman:~2.0

2. サイトの設定

注意:
宝塔は自動的にプロセスを守護します。起動コマンドは php /www/wwwroot/webman/start.php start で、 -d パラメータを付けてはいけません。そうしないと起動できません。

3. サイトの構成

4. 実行ディレクトリの設定

注意:
システムの安全のため、実行ディレクトリは /public に設定する必要があります。不適切な設定は敏感なファイルが外部からアクセスされる原因になります。

5. URLリライトルールの設定

  # リクエストをwebmanに転送する
  location ^~ / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-f $request_filename){
          proxy_pass http://127.0.0.1:8787;
      }
  }

  # .phpで終わるすべてのファイルへのアクセスを拒否する
  location ~ \.php$ {
      return 404;
  }

  # .well-knownディレクトリへのアクセスを許可する
  location ~ ^/\.well-known/ {
    allow all;
  }

  # .で始まるすべてのファイルまたはディレクトリへのアクセスを拒否する
  location ~ /\. {
      return 404;
  }

6. runtimeに書き込み権限を付与する

chmod -R 777 /www/wwwroot/webman/runtime

備考
通常このステップは不要です。宝塔のバグが疑われ、サービス設定のwwwユーザーが起動するはずが、実際にはdaemonユーザーで起動されるため、runtimeディレクトリに書き込めなくなります。

7. サービスの再起動

8. サイトへのアクセス

サイトにアクセスするには http://example.com を訪れると、webmanのウェルカムページが表示されます。

トラブルシューティング

  • サイトにアクセスできず、502 Bad Gatewayのエラーが表示される
    webmanが起動しているか確認してください。

  • webmanが起動に失敗した
    図のように、エラーログがあるか確認してください。