Cài đặt dự án Webman trên Panel Baota

0. Yêu cầu môi trường

  • PHP >= 8.1

1. Tạo dự án

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

2. Cài đặt website

Lưu ý:
Baota sẽ tự động bảo vệ tiến trình, dòng lệnh khởi động là php /www/wwwroot/webman/start.php start, không thêm tham số -d, nếu không sẽ không khởi động được.

3. Cấu hình trang web

4. Thiết lập thư mục chạy

Lưu ý:
Để đảm bảo an toàn cho hệ thống, thư mục chạy phải được thiết lập là /public, cấu hình sai có thể dẫn đến việc các tập tin nhạy cảm bị truy cập từ mạng ngoài.

5. Thiết lập tĩnh ảo

  # Chuyển tiếp yêu cầu đến 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;
      }
  }

  # Từ chối truy cập tất cả các file kết thúc bằng .php
  location ~ \.php$ {
      return 404;
  }

  # Cho phép truy cập thư mục .well-known
  location ~ ^/\.well-known/ {
    allow all;
  }

  # Từ chối truy cập tất cả các file hoặc thư mục bắt đầu bằng .
  location ~ /\. {
      return 404;
  }

6. Cấp quyền ghi cho runtime

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

Ghi chú
Bước này thường không cần thiết, có thể là bug của Baota, dịch vụ được thiết lập với người dùng www, nhưng thực tế là người dùng daemon khởi động, dẫn đến không thể ghi vào thư mục runtime.

7. Khởi động lại dịch vụ

8. Truy cập trang web

Truy cập trang web http://example.com sẽ thấy trang chào mừng của webman.

Khắc phục sự cố

  • Trang web không thể truy cập báo lỗi 502 Bad Gateway
    Kiểm tra xem webman có khởi động hay không.

  • webman khởi động không thành công
    Như trong hình, kiểm tra xem có nhật ký lỗi hay không.