دليل عملي لإعداد موقع ووردبريس يعمل باستمرار
دليل شامل لتكوين موقع ووردبريس الخاص بك للوصول إليه على مدار الساعة طوال أيام الأسبوع، بما في ذلك إعدادات الأمان والمراقبة.

دليل عملي لإعداد موقع ووردبريس يعمل باستمرار

ستعلمك هذه المقالة كيفية إعداد موقع ووردبريس للوصول إليه على مدار الساعة وطوال أيام الأسبوع، وتتضمن توصيات أمنية وأخرى متعلقة بالمراقبة.
0 الأسهم
0
0
0
0
  1. مقدمة - لماذا يُعدّ "دليل عملي لإعداد موقع ووردبريس يعمل باستمرار" أمراً مهماً؟
  2. مبادئ التصميم لتحقيق التوافر العالي
  3. تصميم معماري مقترح لـ WordPress متاح دائمًا
    1. الخيار الأساسي (للمواقع الإلكترونية الصغيرة والمتوسطة)
    2. خيار متقدم (للمواقع التجارية والمواقع ذات حركة المرور العالية)
  4. خطوة بخطوة: التثبيت والتكوين الأساسي على نظام أوبونتو 22.04 (مثال عملي)
    1. تركيب القاعدة
    2. تأمين قاعدة بيانات MariaDB وإنشاء قاعدة بيانات ووردبريس
    3. تهيئة Nginx لـ WordPress (ملف نموذجي)
    4. تفعيل بروتوكول SSL باستخدام Let's Encrypt
    5. تعطيل WP-Cron وإعداد Cron حقيقي
    6. تثبيت WP-CLI وإعداد ووردبريس من سطر الأوامر
  5. التخزين المؤقت وتسريع الأداء
    1. تثبيت Redis (مثال)
  6. أمن التطبيقات التشغيلية وتطبيقات الويب
    1. SSH
    2. جدار الحماية وFail2ban
    3. الملفات والأذونات
  7. النسخ الاحتياطي والاستعادة
    1. مثال على أمر تفريغ MySQL
    2. نسخ احتياطي كامل باستخدام rsync
  8. المراقبة والتنبيه
  9. الحماية من هجمات DDoS وهجمات طبقة الشبكة
  10. تحسين قاعدة البيانات وقابليتها للتوسع
  11. نصائح لتطبيقات محددة
  12. قائمة التحقق النهائية قبل النشر
  13. خاتمة
  14. الأسئلة الشائعة

مقدمة - لماذا يُعدّ "دليل عملي لإعداد موقع ووردبريس يعمل باستمرار" أمراً مهماً؟

في عالم اليوم، الوصول 24/7 يُعدّ موقع ووردبريس ضروريًا للشركات والمتاجر الإلكترونية ومشاريع البرمجيات كخدمة (SaaS) والمدونات ذات الزيارات العالية. تُقدّم هذه المقالة دليلًا شاملًا وعمليًا لإنشاء بنية تحتية، وتأمين الموقع، وتخزين البيانات مؤقتًا، ومراقبته، واستراتيجية النسخ الاحتياطي لضمان استمرارية عمل موقعك.

مبادئ التصميم لتحقيق التوافر العالي

لضمان استمرارية عمل موقع ووردبريس، تحتاج إلى تطبيق طبقات متعددة من أنظمة النسخ الاحتياطي. يُقلل المزيج الأمثل من هذه الطبقات من نقاط الضعف ويزيد من قدرة الموقع على تحمل الأعطال.

  • موازن الأحمال: توزيع حركة المرور بين عدة عقد ويب.
  • عقد ويب متعددة: خوادم متعددة من نوع Nginx/PHP-FPM بتكوين متطابق.
  • قاعدة بيانات مع خاصية النسخ المتماثل: مجموعة النسخ الرئيسية/القراءة أو مجموعة Galera/النسخ الأساسية.
  • التخزين المشترك أو تخزين الكائنات: التحميلات (wp-content/uploads) إلى S3-compatible أو NFS.
  • شبكة توصيل المحتوى (CDN): قم بتخزين وتوزيع الصفحات الثابتة على الأطراف.
  • المراقبة والفحوصات الصحية: نظام فحص صحة لاعبي تنس الطاولة وأتمتة التعافي.

الشركة التي تقدم هذا الدليل لديها أكثر من 85 موقعًا عالميًاتوفر خوادم السحابة، وموازنات الأحمال، وشبكات توصيل المحتوى (CDN)، وشبكة بروتوكول بوابة الحدود (BGP) خدمات لوضع العقد في مواقع مناسبة؛ على سبيل المثال: التداول - مواقع ذات زمن استجابة منخفض للبورصات؛ الألعاب - مواقع قريبة من اللاعبين؛ الذكاء الاصطناعي والعرض - مواقع مزودة بوحدات معالجة الرسومات (GPUs).

تصميم معماري مقترح لـ WordPress متاح دائمًا

الخيار الأساسي (للمواقع الإلكترونية الصغيرة والمتوسطة)

  • خادم افتراضي خاص أو خادم سحابي مع Nginx + PHP-FPM + MariaDB
  • Redis/Memcached لتخزين الكائنات مؤقتًا
  • شبكة توصيل المحتوى (CDN) للملفات الثابتة
  • لقطات يومية ونسخ احتياطية لقاعدة البيانات

خيار متقدم (للمواقع التجارية والمواقع ذات حركة المرور العالية)

  • أكثر من عقدتين ويب (توسع تلقائي) خلف موازن الأحمال
  • قاعدة البيانات الأساسية + نسخ القراءة أو مجموعة جاليرا
  • تخزين الكائنات للتحميلات (متوافق مع S3)
  • مجموعة Redis لتخزين الجلسات وذاكرة التخزين المؤقت للكائنات
  • جدار حماية تطبيقات الويب (WAF) ومضاد هجمات DDoS
  • التكامل المستمر/التسليم المستمر لنشر آمن
  • المراقبة (بروميثيوس/جرافانا + أليرت مانجر) وفحوصات وقت التشغيل

خطوة بخطوة: التثبيت والتكوين الأساسي على نظام أوبونتو 22.04 (مثال عملي)

هذا مثال على سيناريو عقدة واحدة للبدء؛ استخدم نفس التكوين على عقد متعددة لتحقيق التوافر العالي.

تركيب القاعدة

sudo apt update && sudo apt upgrade -y
sudo apt install nginx certbot python3-certbot-nginx -y
sudo apt install mariadb-server -y
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-redis php-imagick -y
sudo systemctl enable --now nginx php7.4-fpm mariadb

ملحوظة: قد يكون اسم حزمة PHP إصدارًا مختلفًا؛ من php8.1 أو php8.2 يستخدم.

تأمين قاعدة بيانات MariaDB وإنشاء قاعدة بيانات ووردبريس

sudo mysql_secure_installation

قم بتشغيل الأمر التالي في وحدة تحكم MySQL/MariaDB:

CREATE DATABASE wp_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPasswordHere!';
GRANT ALL PRIVILEGES ON wp_database.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

تهيئة Nginx لـ WordPress (ملف نموذجي)

cat > /etc/nginx/sites-available/example.com <<'EOF'
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html;

    client_max_body_size 64M;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }
}
EOF
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
sudo nginx -t && sudo systemctl reload nginx

تفعيل بروتوكول SSL باستخدام Let's Encrypt

sudo certbot --nginx -d example.com -d www.example.com

تعطيل WP-Cron وإعداد Cron حقيقي

في ملف wp-config.php أضف القيمة التالية:

define('DISABLE_WP_CRON', true);

ثم قم بإعداد خادم cron ليتم تشغيله بشكل دوري:

sudo crontab -u www-data -e
*/5 * * * * php /var/www/example.com/wp-cron.php > /dev/null 2>&1

تثبيت WP-CLI وإعداد ووردبريس من سطر الأوامر

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

cd /var/www/example.com
wp core download --locale=fa_IR
wp core config --dbname=wp_database --dbuser=wp_user --dbpass='StrongPasswordHere!' --dbhost=localhost --dbprefix=wp_
wp core install --url="https://example.com" --title="وب‌سایت من" --admin_user=admin --admin_password='AdminPass!' [email protected]
sudo chown -R www-data:www-data /var/www/example.com

التخزين المؤقت وتسريع الأداء

لتحقيق أعلى أداء وتقليل الحمل، استخدم مزيجًا من OPcache و Redis و CDN.

  • ريديس لذاكرة التخزين المؤقت للكائنات والجلسة
  • ذاكرة التخزين المؤقت للأوبيكاش في ملف php.ini بالإعدادات التالية:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

استخدم إضافة تخزين مؤقت موثوقة (مثل: دبليو بي روكيت أو ذاكرة التخزين المؤقت الكاملة W3) ويوصى بنقل الملفات إلى شبكة توصيل المحتوى (CDN) وتخزين الكائنات.

تثبيت Redis (مثال)

sudo apt install redis-server -y
sudo systemctl enable --now redis
sudo apt install php-redis -y

ثم قم بتثبيت إضافة Redis Object Cache في ووردبريس واختبر الاتصال.

أمن التطبيقات التشغيلية وتطبيقات الويب

يشمل نظام الأمان متعدد الطبقات أمان SSH، وجدار الحماية، وFail2Ban، وWAF، وأذونات الملفات.

SSH

استخدم المصادقة القائمة على المفاتيح، وقم بتغيير المنفذ الافتراضي، وقم بتعطيل تسجيل دخول المستخدم الجذر:

sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

جدار الحماية وFail2ban

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2222/tcp
sudo ufw enable
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

استخدم Fail2Ban للحماية من هجمات القوة الغاشمة وModSecurity أو جدار حماية تطبيقات الويب السحابي لحماية التطبيقات.

الملفات والأذونات

find /var/www/example.com -type d -exec chmod 755 {} \;
find /var/www/example.com -type f -exec chmod 644 {} \;

لمنع تعديل الملفات من لوحة تحكم ووردبريس:

define('DISALLOW_FILE_EDIT', true);

استخدام المكونات الإضافية مثل ووردبريس ويوصى بتفعيل خاصية التحقق بخطوتين لحسابات المسؤولين.

النسخ الاحتياطي والاستعادة

الاستراتيجية المُوصى بها: نسخ احتياطي يومي لقاعدة البيانات + نسخ احتياطي أسبوعي للموقع بالكامل + الاحتفاظ بالبيانات لمدة 30 يومًا دون اتصال بالإنترنت. استخدم اللقطات لاستعادة البيانات بسرعة.

مثال على أمر تفريغ MySQL

mysqldump -u wp_user -p wp_database | gzip > /backups/wp_db_$(date +%F).sql.gz

نسخ احتياطي كامل باستخدام rsync

rsync -a --delete /var/www/example.com/ /backup-server/www/example.com/

قم دائمًا بإجراء اختبار استعادة بانتظام لضمان إمكانية الاستعادة.

المراقبة والتنبيه

  • بروميثيوس + غرافانا: مراقبة موارد وحدة المعالجة المركزية، والذاكرة، وإدخال/إخراج القرص، ومقاييس PHP-FPM.
  • فحوصات وقت التشغيل: تحقق من الصفحة الرئيسية وصفحة تسجيل الدخول ونقاط نهاية واجهة برمجة التطبيقات باستخدام UptimeRobot أو الخدمات الاصطناعية.
  • جمع السجلات: استخدم ELK stack أو Loki/Promtail + Grafana لتحليل الهجمات وبطء الأداء.
  • تنبيه: إرسال رسالة نصية قصيرة أو بريد إلكتروني أو تطبيق سلاك للإبلاغ عن انقطاع الخدمة أو زيادة الأخطاء.

الحماية من هجمات DDoS وهجمات طبقة الشبكة

استخدم أنظمة مكافحة هجمات DDoS وشبكات توصيل المحتوى (CDN) على مستوى الشبكة مع تحديد معدل الوصول وصفحات التحدي لحماية المواقع الحساسة مع إمكانية الوصول على مدار الساعة طوال أيام الأسبوع.

يمكنك أيضًا التفكير في تحديد حد المعدل في Nginx أو استخدام جدار حماية تطبيقات الويب السحابي.

تحسين قاعدة البيانات وقابليتها للتوسع

  • جلسة حجم مخزن بيانات InnoDB المؤقت إلى ما يقارب 70-80% من ذاكرة الوصول العشوائي لخادم قاعدة البيانات.
  • فعل سجل الاستعلامات البطيئة لتحديد الاستفسارات الإشكالية.
  • استخدم النسخ المتماثلة للقراءة لتقليل الأحمال الثقيلة للقراءة.
  • على نطاق واسع، فصل الخدمات (قاعدة البيانات، الويب، ذاكرة التخزين المؤقت، تخزين الكائنات).

نصائح لتطبيقات محددة

  • التجار: اختر موقعًا قريبًا من خادم التداول لتقليل زمن الاستجابة. استخدم خادمًا افتراضيًا مخصصًا للتداول بزمن استجابة منخفض، وقم بتهيئة الشبكة باستخدام بروتوكول BGP.
  • اللاعبون: خوادم افتراضية للألعاب تتميز بزمن استجابة منخفض، وخوادم مخصصة، ومواقع قريبة من مجتمع اللاعبين.
  • الذكاء الاصطناعي والرسم: خادم رسومات (GPU) للاستدلال والعرض السريع. يستخدم تقنية NVMe عالية الأداء وشبكات ذات إنتاجية عالية.
  • المواقع الإلكترونية العامة: التركيز على شبكة توصيل المحتوى (CDN) والتخزين المؤقت وتحسين الصور.

قائمة التحقق النهائية قبل النشر

  • تم تفعيل بروتوكول SSL واختباره
  • كرون الحقيقي بدلاً من WP-Cron
  • النسخ الاحتياطي المجدول واستعادة الاختبار
  • المراقبة النشطة والتنبيه
  • تم تفعيل Fail2Ban و WAF
  • تم تفعيل ذاكرة التخزين المؤقت للكائنات (Redis) و OPcache
  • شبكة توصيل المحتوى (CDN) للملفات الثابتة وتفريغ الوسائط
  • تأمين الوصول إلى SSH وتقييد لوحة التحكم باستخدام المصادقة الثنائية

خاتمة

يتطلب إعداد موقع ووردبريس يعمل باستمرار مزيجًا مثاليًا من البنية التحتية، والأمان، والتخزين المؤقت، والمراقبة، واستراتيجية النسخ الاحتياطي. ويمكن ضمان الاستقرار والسرعة والأمان باستخدام خوادم سحابية عالية الأداء، وشبكة توصيل المحتوى (CDN)، وأنظمة الحماية من هجمات DDoS، والقدرة على النشر في أكثر من 85 موقعًا حول العالم.

الأسئلة الشائعة

قد يعجبك أيضاً