宝塔パネルに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が起動に失敗した
図のように、エラーログがあるか確認してください。