Installation du projet Webman sur le panneau Baota

0. Exigences de l'environnement

  • PHP >= 8.1

1. Création du projet

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

2. Configurer le site

Attention :
Baota va automatiquement garder le processus, la commande de démarrage est php /www/wwwroot/webman/start.php start, ne pas ajouter le paramètre -d, sinon il ne pourra pas démarrer

3. Configurer le site

4. Définir le répertoire d'exécution

Attention :
Pour des raisons de sécurité du système, le répertoire d'exécution doit être défini sur /public, une mauvaise configuration pourrait exposer des fichiers sensibles à l'accès externe.

5. Configurer la réécriture d'URL

  # Transférer les requêtes à 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;
      }
  }

  # Refuser l'accès à tous les fichiers se terminant par .php
  location ~ \.php$ {
      return 404;
  }

  # Autoriser l'accès au répertoire .well-known
  location ~ ^/\.well-known/ {
    allow all;
  }

  # Refuser l'accès à tous les fichiers ou répertoires commençant par .
  location ~ /\. {
      return 404;
  }

6. Donner les droits d'écriture au répertoire runtime

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

Remarque
Normalement, cette étape n'est pas nécessaire, il semble qu'il s'agisse d'un bug de Baota, l'utilisateur www configuré pour le service démarre, mais en réalité, c'est l'utilisateur daemon qui démarre, ce qui entraîne l'impossibilité d'écrire dans le répertoire runtime.

7. Redémarrer le service

8. Accéder au site

Visitez le site http://example.com pour voir la page d'accueil de webman.

Dépannage

  • Site inaccessible avec le message 502 Bad Gateway
    Vérifiez si webman est démarré.

  • Échec du démarrage de weman
    Comme le montre l'image, vérifiez s'il y a des journaux d'erreur.