دليل عملي

كيفية استضافة LimeSurvey على خادم VPS

الاستضافة الذاتية8 دقائق للقراءةعدد الخطوات: 8

رفعت Typeform أسعارها بنسبة 34 % في يوليو 2026، وعدّلت SurveyMonkey أيضاً أسعارها في عام 2026. بالنسبة لوكالة تجمع البيانات لعدة عملاء، تتراكم هذه الزيادات بسرعة. LimeSurvey Community Edition هو بديل مرخّص بـ GPL-2: تستضيفه على خادمك الافتراضي الخاص، ولا تغادر بياناتك بنيتك التحتية، وتتقلّص التكلفة إلى سعر الجهاز فحسب. إليك كيفية نشره بشكل نظيف باستخدام Docker Compose وNginx وMariaDB.

المحتويات· لماذا التحوّل إلى LimeSurvey ذاتي الاستضافة1/9
  1. 01لماذا التحوّل إلى LimeSurvey ذاتي الاستضافة
  2. 02ما الذي تغيّره الاستضافة الذاتية فعلياً
  3. 03المتطلبات: ما تحتاجه قبل البدء
  4. 04تثبيت LimeSurvey باستخدام Docker Compose وNginx وHTTPS
  5. 05LimeSurvey ذاتي الاستضافة مقابل Typeform مقابل LimeSurvey Cloud
  6. 06تصليب الأمان بعد التثبيت
  7. 07الإعداد بعد التثبيت: الإعدادات الأساسية
  8. 08استكشاف الأخطاء: أخطاء شائعة عند أول تثبيت
  9. 09الخطوات التالية والمقالات ذات الصلة

لماذا التحوّل إلى LimeSurvey ذاتي الاستضافة

تفرض منصات الاستطلاعات SaaS رسوماً لكل استجابة أو لكل مقعد أو لكل ميزة. هذا النموذج مناسب حين يكون الحجم صغيراً والفريق محدوداً، لكنه يصبح مُكلفاً حين تدير وكالة عدة عملاء في آن واحد، أو تبني نماذج بمنطق شرطي متقدم، أو تتعامل مع بيانات حساسة (موارد بشرية، صحة، أبحاث السوق). يعكس LimeSurvey Community Edition هذه المعادلة: الترخيص GPL-2، والكود على GitHub، وتعمل نسخة منه على أي خادم VPS يعمل بـ Linux. أنت تدفع مقابل البنية التحتية لا مقابل الاستخدام. في المقابل، تتولّى التحديثات والنسخ الاحتياطية والأمان — وهو ما يغطّيه هذا الدليل خطوة بخطوة.

ما الذي تغيّره الاستضافة الذاتية فعلياً

  • تكلفة ثابتة يمكن التنبؤ بها — سعر شهري واحد للخادم يغطّي جميع المشاريع دون مفاجآت في نهاية الشهر مرتبطة بحجم الاستجابات.
  • البيانات تحت سيطرتك — لا تمرّ استجابات المستطلَعين عبر خوادم مزوّد SaaS، مما يُبسّط الامتثال للائحة RGPD تجاه عملائك.
  • لا حصص للاستجابات — لا يفرض LimeSurvey Community Edition أي حصص: تجمع بقدر ما تستوعبه قاعدة بياناتك.
  • منطق شرطي كامل — التفرّع والتعبيرات النظامية والمعادلات متاحة في الإصدار المجتمعي دون الحاجة إلى ترقية.
  • تعدد العملاء على نسخة واحدة — تتيح نسخة واحدة إنشاء مجموعات مستخدمين مستقلة لكل عميل، يصل كلٌّ منهم فقط إلى استطلاعاته.
  • تكاملات مفتوحة — تتصل REST API الخاصة بـ LimeSurvey والإضافات المجتمعية بأدوات CRM أو ERP أو التقارير لديك دون رسوم موصّل.
  • تحديثات بجدولك الزمني — تختار متى تُطبّق إصداراً جديداً دون إجبارك على ترحيل في منتصف مشروع عميل.

المتطلبات: ما تحتاجه قبل البدء

LimeSurvey Community Edition هو تطبيق PHP-MariaDB تقليدي. من حيث الموارد، خصّص على الأقل 1 vCPU و2 غيغابايت RAM للاختبار أو الأحمال الخفيفة (بضعة استطلاعات وبضع مئات من الاستجابات يومياً). لوكالة بها 5 إلى 10 عملاء نشطين، يكون خادم بـ 2 vCPU و4 غيغابايت RAM أكثر ملاءمة — يتوسّع MariaDB في ذاكرته التخزينية المؤقتة مع الوقت. خطّط لـ 20 غيغابايت من القرص: يخزّن LimeSurvey وسائط الاستطلاعات (صور وملفات يرفعها المستطلَعون) في وحدة تخزين البيانات.

من ناحية البرمجيات، تحتاج إلى Docker وDocker Compose مثبَّتَين، واسم نطاق أو نطاق فرعي يشير إلى عنوان IP الخادم (مثلاً surveys.your-domain.com)، وفتح المنافذ 80 و443 في جدارك الناري. وصول SSH بصلاحيات root أو sudo إلى الجهاز ضروري للتثبيت.

تثبيت LimeSurvey باستخدام Docker Compose وNginx وHTTPS

  1. الاتصال بالخادم وتحديث النظام

    افتح طرفية واتصل عبر SSH: ssh root@<ip-الخادم>. حدّث الحزم: apt update && apt upgrade -y. ثبّت Docker إن لم يكن مثبَّتاً: curl -fsSL https://get.docker.com | sh. تحقّق من توفّر Docker Compose: docker compose version.

  2. إنشاء هيكل مجلدات المشروع

    أنشئ مجلداً مخصّصاً: mkdir -p /opt/limesurvey && cd /opt/limesurvey. سيضمّ هذا المجلد ملف docker-compose.yml وملف البيئة .env وإعدادات Nginx لاحقاً.

  3. كتابة ملف docker-compose.yml

    عرّف ثلاثة خدمات في docker-compose.yml: MariaDB (صورة mariadb:10.11 مع وحدة تخزين مسمّاة db_data للاستمرارية)، وLimeSurvey (الصورة الرسمية martialblog/limesurvey:latest، المنفذ الداخلي 8080، متغيرات البيئة DB_HOST وDB_USERNAME وDB_PASSWORD وDB_NAME وADMIN_USER وADMIN_PASSWORD)، وNginx (صورة nginx:alpine، المنافذ 80:80 و443:443، وحدات تخزين لـ /etc/nginx/conf.d و/etc/letsencrypt). أعلن عن شبكة داخلية limesurvey-net تشترك فيها الخدمات الثلاث.

  4. ضبط متغيرات البيئة

    أنشئ ملف .env في /opt/limesurvey وأدخل القيم الحساسة: DB_ROOT_PASSWORD وDB_USERNAME وDB_PASSWORD وDB_NAME=limesurvey وADMIN_USER وADMIN_PASSWORD وADMIN_EMAIL. تقرأ صورة LimeSurvey هذه المتغيرات عند أول تشغيل لتهيئة قاعدة البيانات. لا تُدرج هذا الملف أبداً في مستودع Git.

  5. الحصول على شهادة TLS باستخدام Certbot

    قبل تشغيل Nginx بوضع HTTPS، احصل على شهادة Let's Encrypt: apt install certbot -y ثم certbot certonly --standalone -d surveys.your-domain.com. تُودَع الشهادة في /etc/letsencrypt/live/surveys.your-domain.com/. شغّل هذا المسار كوحدة تخزين في حاوية Nginx.

  6. كتابة إعدادات Nginx

    في /opt/limesurvey/nginx/conf.d/limesurvey.conf، أنشئ مضيفاً افتراضياً يعيد توجيه المنفذ 80 إلى 443، ثم يمرّر حركة HTTPS إلى حاوية LimeSurvey على http://limesurvey:8080. أضف الترويسات X-Frame-Options SAMEORIGIN وX-Content-Type-Options nosniff وStrict-Transport-Security لتصليب الإعداد من البداية. يُحلَّل اسم المضيف الداخلي limesurvey بواسطة شبكة Docker.

  7. تشغيل الحاويات

    من /opt/limesurvey، أطلق الحاويات: docker compose up -d. تحقّق من أن الخدمات الثلاث تعمل: docker compose ps. إن احتاج LimeSurvey بضع ثوان ريثما يُنهي MariaDB تهيئة مخطّطه، انتظر حتى يُظهر docker compose logs limesurvey الرسالة Application is ready.

  8. فتح واجهة الإدارة وإنشاء أول استطلاع

    انتقل إلى https://surveys.your-domain.com/admin. سجّل الدخول باستخدام بيانات ADMIN_USER وADMIN_PASSWORD المحدَّدة في ملف .env. عند أول وصول، يرشدك LimeSurvey لضبط اللغة الافتراضية والإعدادات العامة. أنشئ استطلاعاً تجريبياً للتحقق من تسجيل الاستجابات في قاعدة البيانات.

LimeSurvey ذاتي الاستضافة مقابل Typeform مقابل LimeSurvey Cloud

مرّر الجدول أفقيًا

المعيار‏LimeSurvey ذاتي الاستضافة‏Typeform Basic+‏LimeSurvey Cloud Business
الترخيص‏GPL-2، مجاني‏SaaS مملوك‏SaaS مملوك
التكلفة السنوية (وكالة، 5 مشاريع)تكلفة VPS فقط (‏299 درهم/شهر/شهرياً)نحو 900 €/سنةنحو 65 $/شهريًا
حصة الاستجاباتغير محدودة (تخزين محلي)محدودة حسب الخطةمحدودة حسب الخطة
التحكم في البياناتكامل — البيانات على خادمك‏عند Typeform‏عند LimeSurvey GmbH
المنطق الشرطيكامل في الإصدار المجتمعيمحدود في Basic+كامل
التحديثاتبجدولك الزمنيتلقائية (مفروضة)تلقائية (مفروضة)

تصليب الأمان بعد التثبيت

بعد تشغيل LimeSurvey، طبّق إعدادات الأمان هذه فوراً. في واجهة الإدارة، عطّل التسجيل العام (الإعدادات العامة ← الأمان ← لا تسجيل عام) ما لم تحتج طرفاً ثالثاً لإنشاء حسابات. غيّر بادئة جداول MariaDB الافتراضية (lime_) إلى شيء خاص بنشرك — يُقلّص ذلك أثر محاولات حقن SQL العامة. من ناحية Docker، اعزل حاوية MariaDB على الشبكة الداخلية limesurvey-net دون كشف المنفذ 3306 خارجياً: يجب ألّا يُظهر docker inspect limesurvey-db أي منفذ مربوط بـ 0.0.0.0. أخيراً، جدوِل نسخاً احتياطية يومية لوحدة تخزين db_data بالأمر docker run --rm -v limesurvey_db_data:/data -v /opt/backups:/backup alpine tar czf /backup/limesurvey-db-$(date +%F).tar.gz /data.

الإعداد بعد التثبيت: الإعدادات الأساسية

بعد أول تشغيل، تجعل بعض الإعدادات LimeSurvey جاهزاً للاستخدام المهني. ابدأ بإدارة المستخدمين: أنشئ حساباً لكل عميل (أو لكل مدير مشروع)، وخصّص له فقط مجموعات الاستطلاعات المتعلقة به. الصلاحيات دقيقة التفصيل: يمكن للمستخدم إنشاء استطلاعاته وتعديلها دون الوصول إلى إحصاءات عميل آخر.

بعد ذلك اضبط إرسال البريد الإلكتروني (الإعدادات العامة ← البريد الإلكتروني) للدعوات والتذكيرات. يمكن لـ LimeSurvey الإرسال عبر خادم SMTP خارجي — استخدم مُرحِّلاً تعاملياً (‏Postmark أو Mailgun أو Amazon SES) بدلاً من خادم البريد المحلي للجهاز، لضمان إيصال الدعوات.

أخيراً، فعّل تدوير سجلات وصول Nginx واضبط logrotate لمنع ملفات السجل من ملء القرص مع مرور الأشهر. قد يولّد استطلاع موزَّع على نطاق واسع عدة غيغابايتات من السجلات خلال أسابيع قليلة.

استكشاف الأخطاء: أخطاء شائعة عند أول تثبيت

تظهر بعض رسائل الخطأ بانتظام عند أول تثبيت لـ LimeSurvey تحت Docker.

SQLSTATE[HY000] [2002] Connection refused — يحاول LimeSurvey الوصول إلى MariaDB قبل أن ينتهي من تهيئته. أضف depends_on مع condition: service_healthy في docker-compose.yml مقروناً بـ healthcheck على حاوية MariaDB (mysqladmin ping -h localhost). بدون هذا الضامن، يبدأ LimeSurvey مبكراً ويعرض صفحة بيضاء.

403 Forbidden على واجهة الإدارة — المضيف الافتراضي في Nginx لا يمرّر الطلبات إلى LimeSurvey. تحقّق من أن اسم المضيف في proxy_pass يطابق تماماً اسم الخدمة المعرَّف في docker-compose.yml. قد يتسبّب أيضاً وجود نهاية سطر بنمط Windows في ملف إعداد Nginx في هذا الخطأ على Linux.

Error: Could not connect to the database server — اسم قاعدة البيانات أو بيانات الاعتماد في ملف .env لا تطابق ما مُرِّر إلى حاوية MariaDB. احذف وحدة تخزين db_data وأصلح .env ثم أعد التشغيل: docker compose down -v && docker compose up -d. تحذير: يمحو ذلك جميع البيانات — لا تفعله إلا قبل أول استطلاع حقيقي.

413 Request Entity Too Large — يحاول أحد المستطلَعين رفع ملف أكبر من الحد الافتراضي لـ Nginx (1 ميغابايت). أضف client_max_body_size 20m; في كتلة server في Nginx وأعد تشغيل الحاوية: docker compose restart nginx.

الخطوات التالية والمقالات ذات الصلة

يندمج LimeSurvey ذاتي الاستضافة بشكل جيد في منظومة أدوات ذاتية الاستضافة. إن كنت تدير عدة عملاء على خادم VPS واحد، يغطّي مقال WordPress متعدد المواقع للوكالات أنماط فصل البيانات والوصول في إعداد مشابه متعدد العملاء. للإشعارات وقوائم البريد المرتبطة بحملات الاستطلاعات، يكمّل ‏Listmonk ذاتي الاستضافة LimeSurvey بإدارة الإرسال الجماعي من البنية التحتية نفسها. أخيراً، إن كانت وكالتك تدير الفوترة ومتابعة المشاريع المرتبطة بأبحاثها، يمكن تثبيت ‏Odoo 17 Community ذاتي الاستضافة على الخادم نفسه أو على جهاز مخصّص بحسب الحجم.

أدِر استطلاعات جميع عملائك من خادم VPS واحد

يكفي VPS Power من ServOrbit لتشغيل LimeSurvey وخدمة عدة عملاء في آن واحد. وصول root، وDocker مثبَّت مسبقاً، وموارد مخصّصة — ستكون نسختك جاهزة في أقل من ساعة.

بحاجة إلى مساعدة؟

تصفّح مركز المساعدة والأسئلة الشائعة، أو تواصل مع فريقنا — معاودة اتصال أو WhatsApp أو بريد إلكتروني. الدعم بـالعربية والفرنسية والإنجليزية.

راسلنا على WhatsAppيُفتح في علامة تبويب جديدة