📍 المقالة الرئيسية للمجموعة: نظام حجز فندقي 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 — اختبار حجز كامل
- زر
booking.votre-hotel.comكزائر. - اختر تواريخ، غرفة.
- أكمل صفحة المعلومات.
- اختر طريقة دفع (Bank Wire للاختبار).
- أكِّد الحجز.
- تحقق Admin → Orders أن الطلب يظهر.
- تأكد من إرسال 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 يعمل من الهاتف. لا تطبيق أصلي.
للاستزادة
- 🔝 المرجع: نظام حجز 2026
- QloApps docs: docs.qloapps.com