تثبيت مشروع 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 قيد التشغيل

  • فشل بدء تشغيل weman
    كما هو موضح في الصورة، تحقق مما إذا كانت هناك سجلات أخطاء