"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تعزيز كفاءة PHP: تقنيات مجربة لتحسين الأداء

تعزيز كفاءة PHP: تقنيات مجربة لتحسين الأداء

تم النشر بتاريخ 2024-11-08
تصفح:830

Boosting PHP Efficiency: Proven Techniques for Performance Optimization

يضمن تحسين أداء PHP تشغيل تطبيقات الويب لدينا بسلاسة، والاستجابة بسرعة، والتعامل مع حركة المرور بكفاءة. فيما يلي دليل تفصيلي خطوة بخطوة حول كيفية زيادة أداء PHP بشكل فعال، مع أمثلة عملية لكل استراتيجية تحسين.


الجزء 1: التحديث إلى أحدث إصدار PHP مستقر

الخطوة 1: التحقق من إصدار PHP الحالي

ابدأ بالتحقق من الإصدار الحالي من PHP المثبت على نظامك:

php -v

إذا كان الإصدار الخاص بك قديمًا، فإن الترقية إلى أحدث إصدار ثابت من PHP غالبًا ما يأتي مع تحسينات في الأداء وميزات جديدة.

الخطوة 2: ترقية PHP (إذا لزم الأمر)

لتثبيت أحدث إصدار PHP، قم بتشغيل الأوامر التالية لـ Ubuntu:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2 # Replace with the latest version

لماذا؟

كل إصدار PHP جديد يجلب تعزيزات في الأداء. على سبيل المثال، يقدم PHP 7.x تحسنًا بنسبة 50% تقريبًا في وقت التنفيذ مقارنةً بـ PHP 5.x، كما يقدم PHP 8.x تحسينات كبيرة أخرى.


الجزء 2: استخدام التخزين المؤقت لرمز التشغيل (PHP Opcache)

الخطوة 1: تمكين Opcache في PHP

يقوم Opcache بتخزين الكود الثانوي للبرنامج النصي المترجم مسبقًا في الذاكرة، مما يقلل الحاجة إلى PHP لتحميل البرامج النصية وتحليلها عند كل طلب. لتمكينه:

  1. افتح ملف php.ini الخاص بك:
   sudo nano /etc/php/8.2/fpm/php.ini # Use your PHP version
  1. ابحث عن إعدادات Opcache وقم بتمكينها:
   opcache.enable=1
   opcache.memory_consumption=128
   opcache.max_accelerated_files=10000
   opcache.revalidate_freq=0
  1. أعد تشغيل PHP-FPM وNginx:
   sudo systemctl restart php8.2-fpm
   sudo systemctl restart nginx

لماذا؟

يمكن لـ Opcache تحسين الأداء بشكل كبير عن طريق التخلص من الحاجة إلى تجميع كود PHP في كل طلب، مما يقلل بشكل كبير من استخدام وحدة المعالجة المركزية ووقت الطلب.


الجزء 3: تحسين استعلامات قاعدة البيانات

الخطوة 1: فهرسة جداول قاعدة البيانات الخاصة بك

قد تؤدي فهرسة قاعدة البيانات غير الصحيحة إلى إبطاء تنفيذ الاستعلام. تأكد من فهرسة الأعمدة المستخدمة في عبارات WHERE أو للفرز.

مثال لاستعلام MySQL:

CREATE INDEX idx_user_email ON users(email);

الخطوة 2: استخدام ملفات تعريف الاستعلام

قم بتعريف استعلامات قاعدة البيانات الخاصة بك للعثور على الاختناقات. على سبيل المثال، يسمح Eloquent ORM الخاص بـ Laravel بتنميط الاستعلام:

DB::enableQueryLog();
$users = DB::table('users')->get();
dd(DB::getQueryLog());

لماذا؟

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


الجزء 4: تمكين ضغط Gzip

الخطوة 1: تمكين Gzip في Nginx

يعمل Gzip على تقليل حجم البيانات المرسلة من الخادم الخاص بك إلى العميل، مما يجعل تحميل الصفحة أسرع. لتمكينه في Nginx:

  1. افتح ملف تكوين Nginx:
   sudo nano /etc/nginx/nginx.conf
  1. أضف إعدادات Gzip التالية:
   gzip on;
   gzip_comp_level 2;
   gzip_types text/css application/javascript application/json image/svg xml;
   gzip_min_length 256;
  1. حفظ وإعادة تشغيل Nginx:
   sudo systemctl restart nginx

لماذا؟

يؤدي تمكين ضغط Gzip إلى تقليل كمية البيانات التي يلزم نقلها، مما يؤدي إلى أوقات تحميل أسرع للصفحة وتقليل استخدام النطاق الترددي.


الجزء 5: استخدام شبكة توصيل المحتوى (CDN)

الخطوة 1: تكوين CDN للأصول الثابتة

تقوم شبكات CDN مثل Cloudflare أو Amazon CloudFront بتخزين نسخ من الأصول الثابتة مثل CSS وJavaScript والصور على الخوادم الموزعة في جميع أنحاء العالم، مما يجعلها متاحة بالقرب من المستخدم.

مثال:

لماذا؟

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


الجزء 6: استخدام PHP-FPM والضبط

الخطوة 1: تثبيت وتكوين PHP-FPM

تأكد من أنك تستخدم PHP-FPM (مدير عمليات FastCGI)، والذي تم تحسينه بشكل أفضل للبيئات عالية التحميل:

sudo apt install php8.2-fpm

الخطوة 2: ضبط إعدادات PHP-FPM

يمكنك ضبط إعدادات PHP-FPM للتعامل مع المزيد من الطلبات بكفاءة عن طريق ضبط إعداداتpm.max_children وpm.start_servers وpm.min_spare_servers وpm.max_spare_servers في ملف تكوين تجمع PHP-FPM.

تحرير ملف تكوين التجمع:

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

زيادةpm.max_children بناءً على الذاكرة المتوفرة وحركة المرور:

pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

أعد تشغيل PHP-FPM وNginx:

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

لماذا؟

يسمح PHP-FPM لعمليات PHP الخاصة بك بمعالجة المزيد من الطلبات المتزامنة بكفاءة، مما يقلل وقت استجابة الخادم في ظل التحميل الثقيل.


الجزء السابع: تصغير الأصول وتجميعها

الخطوة 1: تصغير CSS وJavaScript وHTML

يؤدي تصغير ملفات CSS وJavaScript وHTML عن طريق إزالة المسافات البيضاء والتعليقات غير الضرورية إلى تقليل حجم الملف.

استخدم أدوات مثل Laravel Mix أو Gulp:

npm install laravel-mix --save-dev

مثال لملف webpack.mix.js لـ Laravel:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .minify('public/js/app.js')
    .minify('public/css/app.css');

الخطوة 2: تمكين التخزين المؤقت للمتصفح

في ملف تكوين Nginx، قم بإضافة التخزين المؤقت للأصول الثابتة:

location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2)$ {
    expires 1y;
    access_log off;
    add_header Cache-Control "public";
}

لماذا؟

يؤدي تصغير الأصول وتجميعها، إلى جانب تمكين التخزين المؤقت للمتصفح، إلى تقليل حجم ملفاتك وتقليل أوقات التحميل، مما يؤدي إلى تطبيق أسرع.


الجزء 8: استخدام Redis أو Memcached للتخزين المؤقت

الخطوة 1: تثبيت Redis

لتثبيت Redis:

sudo apt install redis-server

الخطوة 2: تكوين Laravel لاستخدام Redis

في Laravel، افتح ملف .env وقم بتكوين Redis كمحرك ذاكرة التخزين المؤقت:

CACHE_DRIVER=redis

الخطوة 3: التخزين المؤقت لاستعلامات قاعدة البيانات

استخدم التخزين المؤقت للاستعلام لتسريع استعلامات قاعدة البيانات المتكررة:

$users = Cache::remember('users', 60, function() {
    return DB::table('users')->get();
});

لماذا؟

من خلال التخزين المؤقت لاستعلامات قاعدة البيانات، يمكنك تقليل تحميل قاعدة البيانات وتحسين أوقات الاستجابة بشكل كبير للبيانات التي يتم الوصول إليها بشكل متكرر.


الجزء 9: تحسين أدوات التحميل التلقائي

الخطوة 1: استخدم تحسين أداة التحميل التلقائي للملحن

تحسين أدوات التحميل التلقائي للملحن للإنتاج:

composer install --optimize-autoloader --no-dev

الخطوة 2: مسح مقدمي الخدمة غير المستخدمين

في Laravel، قم بتعطيل أي موفري خدمة غير مستخدمين في config/app.php لتقليل استخدام الذاكرة وتسريع وقت تشغيل التطبيق.

لماذا؟

يعمل تحسين التحميل التلقائي على تجميع خرائط الفصل، مما يجعل تحميل الفصل أسرع. يؤدي تعطيل الخدمات غير المستخدمة إلى مساعدة التطبيق على استخدام موارد أقل.


الجزء 10: الرصد والتوصيف

الخطوة 1: استخدام Laravel Telescope (أو أدوات التنميط الأخرى)

قم بتثبيت Laravel Telescope لتعريف تطبيقك:

composer require laravel/telescope
php artisan telescope:install
php artisan migrate
php artisan serve

الخطوة 2: استخدم New Relic أو Blackfire للتوصيف المتقدم

يمكنك دمج أدوات الطرف الثالث مثل New Relic أو Blackfire لتحليل اختناقات التطبيقات، وأداء قاعدة البيانات، والمزيد.

لماذا؟

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


خاتمة:

باتباع هذه الخطوات، يمكنك تحسين أداء تطبيق PHP الخاص بك بشكل ملحوظ. بدءًا من تحديث PHP وتمكين التخزين المؤقت لـ Opcode وحتى تحسين استعلامات قاعدة البيانات وتكوين PHP-FPM، تساهم كل خطوة في تطبيق أكثر استجابة وقابلية للتطوير.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/mdarifulhaque/boosting-php-efficiency-proven-techniques-for-performance-optimization-4plh?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3