Установка проекта Webman на панели Baota

0. Требования к окружению

  • PHP >= 8.1

1. Создание проекта

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

2. Настройка сайта

Внимание:
Baota будет автоматически управлять процессом, команда запуска: php /www/wwwroot/webman/start.php start, не добавляйте параметр -d, иначе не удастся запустить

3. Конфигурация сайта

4. Установка рабочей директории

Внимание:
Для безопасности системы рабочая директория должна быть установлена на /public, неверная установка может привести к доступу к конфиденциальным файлам из внешней сети

5. Настройка псевдостатических адресов

  # Перенаправление запросов на 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

Примечание
Обычно этот шаг не требуется, подозревается баг Baota, пользователь www, настроенный для службы, фактически запускается как пользователь daemon, что приводит к невозможности записи в директорию runtime

7. Перезапуск службы

8. Доступ к сайту

Для доступа к сайту перейдите по адресу http://example.com, вы увидите страницу приветствия webman

Устранение неисправностей

  • Невозможно получить доступ к сайту, ошибка 502 Bad Gateway
    Проверьте, запущен ли webman

  • Не удалось запустить webman
    Как показано на рисунке, проверьте, есть ли ошибки в логах