إذا كنت صاحب موقع ووردبريس، فربما واجهت مشاكل بطء الموقع، استهلاك موارد السيرفر، أو مخاطر أمنية. في هذه المقالة، سأشارك معك دليل شامل لتحسين أداء موقعك وحمايته من الهجمات الشائعة، مع أكواد عملية جاهزة للتطبيق.
1️⃣ تحسين أداء PHP باستخدام OPcache
OPcache هي طريقة لتخزين ملفات PHP مسبقًا في الذاكرة، مما يقلل وقت تنفيذ السكربتات.
لتفعيلها، أضف الكود التالي في ملف php.ini:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.validate_timestamps=1
بمجرد التفعيل، ستلاحظ تسريع تحميل صفحات ووردبريس بشكل ملحوظ.
2️⃣ تفعيل Object Cache باستخدام Redis
Redis يسمح بتخزين نتائج الاستعلامات مباشرة في الذاكرة، مما يقلل الضغط على قاعدة البيانات.
أضف هذا الكود في ملف wp-config.php:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE_KEY_SALT', 'mywebsite:');
define('WP_CACHE', true);
بعدها قم بتثبيت إضافة Redis Object Cache من لوحة تحكم ووردبريس وتفعيلها.
3️⃣ تحسين قاعدة البيانات
إضافة Index لتسريع الاستعلامات
ALTER TABLE wp_posts ADD INDEX idx_post_status(post_status);
ALTER TABLE wp_postmeta ADD INDEX idx_meta_key(meta_key(191));
تفعيل Query Cache (إذا كنت تستخدم MySQL 5.7 أو أقل)
[mysqld]
query_cache_type = 1
query_cache_size = 256M
query_cache_limit = 1M
هذه التعديلات تقلل وقت تنفيذ الاستعلامات الثقيلة وتزيد سرعة الموقع.
4️⃣ حماية السيرفر باستخدام Nginx
الحد من هجمات DoS الخفيفة
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;server {
location / {
limit_req zone=one burst=10 nodelay;
try_files $uri $uri/ /index.php?$args;
}
}
تفعيل ضغط Gzip لتقليل حجم الصفحات
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;
يقلل حجم الملفات المرسلة للمستخدم ويزيد سرعة التحميل.
5️⃣ ضبط PHP-FPM لمنع استهلاك الموارد
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
request_terminate_timeout = 30s
هذا يمنع أي سكربت ثقيل من استهلاك كامل موارد السيرفر.
6️⃣ تأمين مجلدات ووردبريس الهامة
منع تنفيذ ملفات PHP داخل مجلد uploads:
location ~* /wp-content/uploads/.*\.(php|phtml|php3|php4|php5)$ {
deny all;
}
حتى لو تم رفع سكربت ضار، لن يتمكن من العمل.
7️⃣ تحسين الصور تلقائيًا
add_filter('wp_handle_upload', function($file){
if(in_array($file['type'], ['image/jpeg','image/png'])){
$image = imagecreatefromstring(file_get_contents($file['file']));
if($file['type'] === 'image/jpeg'){
imagejpeg($image, $file['file'], 75);
} elseif($file['type'] === 'image/png'){
imagepng($image, $file['file'], 6);
}
imagedestroy($image);
}
return $file;
});
يقلل حجم الصور تلقائيًا دون فقدان الجودة بشكل كبير، مما يسرع تحميل الصفحات.
8️⃣ مراقبة الأداء بشكل مستمر
يمكنك تسجيل وقت تحميل كل صفحة وكمية استهلاك الذاكرة باستخدام Redis:
$start_time = microtime(true);// الكود الرئيسي$end_time = microtime(true);
$execution_time = $end_time - $start_time;$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->lPush('performance_log', json_encode([
'url' => $_SERVER['REQUEST_URI'],
'time' => $execution_time,
'memory' => memory_get_usage()
]));
بهذه الطريقة يمكنك معرفة الصفحات التي تحتاج تحسينًا بشكل دقيق.
خلاصة
باتباع هذا الدليل، ستحصل على:
- موقع ووردبريس أسرع وأكثر استقرارًا.
- حماية من هجمات DoS واستغلال مجلدات الرفع.
- مراقبة دقيقة لأداء كل صفحة.
- ضغط الصور وتحسين قاعدة البيانات بشكل كبير.
هذه الخطوات توفر لك قاعدة متينة لتسريع وحماية موقعك دون الحاجة لإضافات كثيرة أو خدمات مدفوعة.