يستخدم الكثيرون apache2 كخادم ويب. ومع ذلك ، فإن قلة من الناس تفكر في تحسين أدائها ، مما يؤثر بشكل مباشر على سرعة تحميل الصفحات على الموقع ، وسرعة معالجة النصوص (خاصة php) ، وكذلك الزيادة في حمل وحدة المعالجة المركزية وزيادة مقدار ذاكرة الوصول العشوائي المستخدمة.
وبالتالي ، ينبغي أن يساعد الدليل التالي المستخدمين المبتدئين (وليس فقط).
تم استخدام جميع الأمثلة أدناه في Raspberry PI 3 و Debian 9 و Apache 2.4.38 و PHP 7.3.
لذلك دعونا نبدأ.
1. تعطيل الوحدات غير المستخدمة
الطريقة الأولى هي تعطيل عادي للوحدات النمطية التي لا تستخدمها:
يمكن عرض قائمة الوحدات المستخدمة حاليًا باستخدام الأمر:
apache2ctl -M
لتعطيل الوحدة ، استخدم الأمر:
a2dismod * *
وفقًا لذلك ، لتمكين الوحدة ، استخدم الأمر:
a2enmod * *
يرجى ملاحظة أنه عند استخدام
a2dismod ، يجب كتابة اسم الوحدة بدون كلمة الوحدة النمطية نفسها.
على سبيل المثال ، إذا رأيت
proxy_module في إخراج
الأمر apache2ctl -M ، ثم لتعطيله ، استخدم الأمر -
a2dismod proxyالوحدات الأكثر تحميلاً للنظام (من التجربة الشخصية) هي:
- PHP ، روبي ، بيرل وغيرها من الوحدات النمطية للغات البرمجة النصية المختلفة
- SSL
- إعادة كتابة
- CGI
لذلك في تلك الحالات التي لا تحتاج فيها إلى هذه الوحدات ، أوصي بتعطيل هذه الوحدات.
وأيضًا ، بعد تعطيل وحدة ، أوصي باستخدام command -
apache2ctl configtest ، والذي سيتحقق من تكوين المواقع المستخدمة وإذا كان أي من الوحدات المعطلة ضروريًا لها ، فسيظهر خطأ.
2. قم بتغيير MPM (وحدة المعالجة المتعددة) واستخدم php-fpm
بشكل افتراضي ، بعد التثبيت ، يستخدم apache2 MPM Prefork (1 مؤشر ترابط لكل اتصال واحد) ، مما يقلل الأداء بشكل كبير ، ولكن في نفس الوقت يحسن الاستقرار والأمان.
ولكن لتحسين الأداء ، أوصي باستخدام MPM Worker ، والذي يسمح لك باستخدام عدة مؤشرات ترابط في اتصال واحد دفعة واحدة.
لتمكينه ، استخدم الأوامر التالية:
a2dismod mpm_prefork // prefork a2dismod php7.3 // php, prefork a2enmod mpm_worker // worker
ومع ذلك ، عند استخدام Worker ، قد تواجه مشكلة بسبب وحدة php7.3 تعتمد على وحدة Prefork.
لحل هذه المشكلة ، قم بتثبيت الوحدة النمطية php7.3-fpm ، والتي سيتم استخدامها لحل البرامج النصية php:
apt-get update && apt-get install php7.3-fpm // systemctl enable php7.3-fpm && systemctl start php7.3-fpm // a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //
تجدر الإشارة إلى أن استخدام php-fpm سيؤدي أيضًا إلى تقليل مقدار ذاكرة الوصول العشوائي المستخدمة في عملية apache2 وسيؤدي إلى تسريع معالجة نصوص php قليلاً.
3. الخاتمة
وبالتالي ، بفضل هذه الإجراءات البسيطة ، تمكنا من تحسين الأداء وتقليل الحمل على الجهاز (في هذه الحالة ، RPI3).
بالطبع ، هناك المئات من خيارات التحسين الأخرى ، مثل تمكين الضغط (وهو أمر مفيد بالفعل ، ولكن بالنسبة للجزء الأكبر يتم تمكينه افتراضيًا بشكل افتراضي) ، وتغيير معلمات MPM (ملفات التكوين) ، وتعطيل HostnameLookups ، وما إلى ذلك ، لكنني حاولت في هذه المقالة التعبير هذه هي النقاط التي ساعدتني أكثر ، وآمل أن يساعدوا الآخرين.