ITSkillsCenter
التجارة الإلكترونية

نشر QloApps على VPS Hetzner للفندقية: درس 2026

2 دقائق للقراءة

📍 المقالة الرئيسية للمجموعة: نظام حجز فندقي 2026.

ساعة لتحويل VPS فارغ إلى نظام حجز QloApps إنتاج، مع غرفتين تجريبيتين وحجز اختبار صحيح. الطريقة موثقة عند فنادق في الدار البيضاء وتونس وأبيدجان والقنيطرة. التكلفة الإجمالية: 4.51 يورو/شهرياً للبنية التحتية الكاملة. هذه القيمة تحاول استرداد ما يضيع في عمولات Booking.com في غضون أيام.

المتطلبات

VPS Hetzner CX22 minimum (4 جيجابايت RAM لـ PHP 8.2 + MySQL مريحان). نطاق DNS A: booking.votre-hotel.com. SMTP (Brevo، Resend) للتأكيدات. المستوى المتوقع: متوسط (PHP، MySQL، VPS Linux). الوقت المقدر: 60 إلى 90 دقيقة.

الخطوة 1 — تحضير الـ VPS

القاعدة المتطلبات: PHP 8.2، MySQL 8 أو MariaDB 10.6+، nginx أو Apache، Composer. هذه الإصدارات حديثة لكنها مطلوبة لأمان QloApps والأداء. الإصدارات القديمة قد تحتوي على ثغرات أمنية معروفة.

apt update && apt upgrade -y
apt install -y nginx mysql-server php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath unzip composer
systemctl enable --now nginx mysql php8.2-fpm

الخطوة 2 — قاعدة البيانات

أنشئ قاعدة بيانات مخصصة لـ QloApps مع مستخدم بصلاحيات محدودة. هذا أساسي للأمان: في حالة اختراق المستخدم qloapps، المهاجم لن يصل إلى قواعد بيانات أخرى محتملة.

mysql -u root -p
CREATE DATABASE qloapps CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'qloapps'@'localhost' IDENTIFIED BY 'mot-de-passe-très-fort';
GRANT ALL PRIVILEGES ON qloapps.* TO 'qloapps'@'localhost';
FLUSH PRIVILEGES;
EXIT;

الخطوة 3 — تنزيل QloApps

QloApps يأتي كأرشيف ZIP من الموقع الرسمي. النسخة الحالية في 2026 هي 1.6.x. تجنب الـ forks غير الرسمية التي قد لا تتلقى تحديثات الأمان.

cd /var/www
wget https://qloapps.com/download/qloapps-1.6.x.zip -O qloapps.zip
unzip qloapps.zip -d qloapps
chown -R www-data:www-data qloapps
chmod -R 755 qloapps

الخطوة 4 — تكوين nginx

تكوين nginx الذي يخدم QloApps مع HTTPS عبر Caddy في الواجهة. nginx يدير PHP-FPM. هذه المعمارية ثنائية الطبقات تسمح بـ HTTPS سهل عبر Caddy وأداء PHP أمثل عبر nginx.

nano /etc/nginx/sites-available/qloapps
server {
  listen 80;
  server_name booking.votre-hotel.com;
  root /var/www/qloapps;
  index index.php;
  
  location / {
    try_files \$uri \$uri/ /index.php?\$query_string;
  }
  
  location ~ \.php\$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
  }
}
ln -s /etc/nginx/sites-available/qloapps /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

الخطوة 5 — Caddy للـ HTTPS

Caddy في الواجهة يدير شهادة Let’s Encrypt تلقائياً. يبسط بشكل كبير إدارة TLS مقارنة بـ certbot يدوي.

booking.votre-hotel.com {
  reverse_proxy localhost:80
}

الخطوة 6 — معالج تثبيت QloApps

افتح https://booking.votre-hotel.com/install. المعالج يطلب: لغة (فرنسية أو عربية)، ترخيص، تحقق من توافق الخادم، معلومات قاعدة البيانات، حساب admin. القاعدة الذهبية: استخدم email احترافي وليس admin@admin.com.

الخطوة 7 — إزالة مجلد install (أمان)

بعد التثبيت، احذف مجلد install. تركه يخلق ثغرة أمنية كبرى: أي شخص يستطيع إعادة تثبيت QloApps وإلغاء بياناتك.

rm -rf /var/www/qloapps/install
rm -rf /var/www/qloapps/admin*  # أيضاً أعد تسمية admin إلى مجلد سري

أعد تسمية مجلد admin (مكشوف افتراضياً /admin) إلى مسار سري مثل /admin-secret-2026/ لتجنب bots.

الخطوة 8 — أول غرفة

Admin → Catalog → Hotel Rooms → Add. كل غرفة تحتاج: نوع (standard، deluxe، suite)، عدد الإشغال (1-4 أشخاص)، أمتعة، سعر أساسي. ابدأ بـ 5-10 غرف اختبار قبل إضافة الـ inventory الكامل.

الخطوة 9 — تكامل passerelle دفع

Admin → Modules → Payments. مديولات أصلية: Bank Wire (تحويل بنكي)، Cash on Delivery (الدفع عند الوصول). للبطاقات: Stripe (مديول رسمي مجاني)، CMI Maroc (مديول مجتمعي). لـ Wave/Orange Money: مديول مخصص أو webhook custom (راجع درس مخصص).

الخطوة 10 — اختبار حجز كامل

  1. زر booking.votre-hotel.com كزائر.
  2. اختر تواريخ، غرفة.
  3. أكمل صفحة المعلومات.
  4. اختر طريقة دفع (Bank Wire للاختبار).
  5. أكِّد الحجز.
  6. تحقق Admin → Orders أن الطلب يظهر.
  7. تأكد من إرسال email التأكيد إلى الزائر.

الأخطاء الشائعة

الخطأ السبب الحل
500 Internal Server Error صلاحيات الملفات chown www-data:www-data + chmod 755
email التأكيد غير مرسل SMTP غير مكوَّن Admin → Advanced → Email Settings
الصور مفقودة php-gd مفقود apt install php8.2-gd
Slow page load OPcache PHP معطل Enable opcache in php.ini
قاعدة البيانات connection error credentials خاطئة تحقق .htconfig.inc.php
HTTPS yaml redirect loop Caddy وnginx مزدوجان TLS nginx HTTP فقط، Caddy يدير HTTPS

التكيف مع السياق المغاربي وغرب إفريقيا

ثلاث توضيحات. أحرف عربية في عناوين الغرف. UTF-8 إلزامي في DB (utf8mb4_unicode_ci). تجنب latin1. التسعير بـ MAD/XOF/TND. Admin → Localization → Currencies. أضف العملات مع أسعار صرف. أوقات الـ check-in. الفنادق المغربية غالباً 14h check-in، 12h check-out. كوّن في Admin → Hotel → Hotel Settings.

دروس الإخوة

الأسئلة المتكررة

سعة Hetzner CX22؟ فندق 100 غرفة + 500 حجز شهرياً مريح.

التحديثات؟ backup قاعدة البيانات + استبدال الملفات. اقرأ release notes قبل.

Multi-property؟ نعم منذ QloApps 1.6.

تطبيق هاتف admin؟ PWA admin يعمل من الهاتف. لا تطبيق أصلي.

للاستزادة

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité