إعداد خادم الويب Apache
يتيح لك ServBay إدارة وتكوين حزمة خادم الويب Apache المدمجة بسهولة. من خلال واجهة المستخدم الرسومية لـ ServBay يمكنك تعديل إعدادات Apache الأساسية بسلاسة لتلبية متطلبات مشاريع التطوير المختلفة.
الوصول إلى إعدادات Apache
- افتح تطبيق ServBay.
- من الشريط الجانبي الأيسر، انقر على
خادم الويب
. - اختر تبويب
Apache
.
ستظهر لك واجهة إعدادات Apache كما هو موضح في الصورة أدناه:
شرح الإعدادات الرئيسية
فيما يلي شرح تفصيلي لكل عنصر من عناصر ضبط إعداد Apache في الواجهة:
الإعدادات الأساسية
- منفذ HTTP: المنفذ الذي يستمع عليه Apache لبروتوكول HTTP، ويمثل بشكل افتراضي
80
. - منفذ HTTPS: المنفذ الذي يستمع عليه Apache لبروتوكول HTTPS، ويمثل افتراضيًا
443
. - اسم الخادم (Server Name): اسم وهوية الخادم والمنفذ الخاص به. الافتراضي
127.0.0.1
غالباً يُستخدم للوصول المحلي. - جذر الخادم (Server Root): مسار تثبيت حزمة Apache. ملاحظة: هذا ليس مجلد ملفات موقعك الإلكتروني (والذي يتم تعيينه بشكل منفصل عند إضافة موقع)، بل مسار ملفات برنامج Apache نفسه. غالبًا يكون المسار الافتراضي:
/Applications/ServBay/package/apache/current
.
تحسين الأداء
- Timeout: أقصى عدد ثوانٍ ينتظرها الخادم قبل إلغاء عملية I/O. الافتراضي
300
ثانية. - Max KeepAlive Requests: الحد الأقصى لعدد الطلبات المسموح بها عبر اتصال دائم واحد. القيمة
1000
تعني السماح بعدد كبير من الطلبات عبر نفس الاتصال، أما0
فتعني بدون حد. - KeepAlive Timeout: أقصى عدد ثوانٍ ينتظرها الخادم للطلب التالي قبل إغلاق الاتصال الدائم. الافتراضي
60
ثانية. - Keep Alive: تمكين أو تعطيل اتصالات HTTP الدائمة (KeepAlive). يُوصى بجعلها On لتحسين الأداء.
- MPM StartServers: عدد عمليات الخدمة الفرعية التي ينشئها الخادم عند بدء التشغيل.
- MPM MaxSpareThreads: الحد الأقصى لعدد الخيوط الاحتياطية (idle). لضمان الاستجابة السريعة للطلبات المفاجئة.
- MPM MaxConnectionsPerChild (سابقًا MaxRequestsPerChild): العدد الأقصى للاتصالات التي يمكن لكل عملية خدمية فرعية معالجتها خلال دورة حياتها. القيمة
0
تعني بدون حد. هذا يساعد في الحماية من تسريبات الذاكرة. - MPM MaxRequestWorkers (سابقًا MaxClients): الحد الأقصى للطلبات المتزامنة (من جميع العمليات الفرعية). هذا الإعداد أساسي لأداء Apache.
- MPM ThreadsPerChild: عدد الخيوط الثابتة التي ينشئها كل عملية خدمية فرعية (يُطبق على MPM من نوع
worker
أوevent
).
الميزات والخصائص
- Access File Name: الأمر الذي يحدد اسم ملف الإعدادات اللامركزية، وغالبًا
.htaccess
. يمكنك السماح أو منع استخدام ملفات.htaccess
لتجاوز إعدادات الخادم الرئيسية. - Use Canonical Name: يتحكم في الطريقة التي يبني بها Apache عناوين URL المرجعية الذاتية. الوضع
Off
غالبًا يوفر مرونة أكبر. - Server Signature: يضيف سطرًا يحتوي على إصدار الخادم واسم المضيف الافتراضي في أسفل صفحات الخادم التي تُنشَأ تلقائيًا (مثل صفحات الخطأ). لأسباب أمنية، يُنصح بضبطه
Off
في بيئة الإنتاج. - Hostname Lookups: هل يتم إجراء استعلام عكسي عبر DNS للحصول على اسم مضيف العميل لكل طلب؟ تعطيله (
Off
) يحسّن الأداء نظرًا لأن استعلامات DNS قد تكون بطيئة. - Server Tokens: يتحكم في مقدار المعلومات التي يعرضها رأس الخادم (
Server:
) في الردود. القيمةMinor
(مثل Apache/2.4) أكثر أمانًا منFull
(مثل Apache/2.4.58 (Unix) PHP/8.3.1). الخيارProd
يعرض فقطApache
.
الإدارة والسجلات
- مدير الخادم (Server Admin): عنوان البريد الإلكتروني لمدير النظام، يظهر في رسائل الأخطاء التي يرسلها الخادم إلى العميل.
- مستوى السجل (Log Level): يحدد مستوى التفاصيل في السجلات (
error_log
). المستوى الشائع هوwarn
ويشمل التحذيرات والأخطاء الأشد. المستويات الأخرى تشمل:debug
,info
,notice
,error
,crit
,alert
,emerg
.
الوحدات (Modules)
تعرض هذه المنطقة قائمة بوحدات Apache المتاحة. يمكنك تفعيل أو تعطيل الوحدات حسب الحاجة عبر تحديد المربعات. من الأمثلة الشائعة:
mod_rewrite
: لإعادة كتابة عناوين URL.mod_ssl
: لإضافة دعم SSL/TLS (تفعيل https).mod_deflate
: لضغط المحتوى أثناء الإرسال.mod_expires
: لضبط رؤوس التخزين المؤقت.mod_proxy
والوحدات المرتبطة: للوكيل العكسي.mod_auth_basic
,mod_auth_digest
: للمصادقة الأساسية أو المصادقة المختصرة.
بعد تفعيل أو تعطيل أي وحدة يجب حفظ الإعدادات، وربما تحتاج لإعادة تشغيل خدمة Apache ليتم تفعيل التغييرات.
فهرس الدليل
- Directory Index: عند طلب عنوان URL يشير إلى مجلد، يحاول Apache البحث في هذا المجلد عن قائمة الملفات المحددة هنا. سيبحث وفق الترتيب ويعيد أول ملف موجود منها. الإعداد الافتراضي عادةً هو:
index.html index.htm index.php
.
إعدادات SSL/TLS
تستخدم هذه الإعدادات لتخصيص ميزة HTTPS في Apache.
- SSLCipherSuite / TLSCipherSuite: يحدد مجموعات التشفير المسموح بها من قبل الخادم. يُنصح باستخدام مجموعات تشفير قوية وحديثة لتحقيق أعلى درجات الأمان وخدمة ServBay تقدم خيارات افتراضية موصى بها.
- SSLProxyCipherSuite: يحدد مجموعات التشفير المستخدمة عند عمل Apache كوكيل عكسي.
- SSLHonorCipherOrder: عند التفعيل (
On
) يُجبِر الخادم استخدام ترتيب مجموعات التشفير المفضل لديه بدلاً من ترتيب العميل. يُوصى بجعله On. - SSLStrictSNIVHostCheck: عند التفعيل (
On
)، إذا قدم العميل اسم مضيف عبر SNI يختلف عن اسم المضيف المضبوط، يرفض الخادم الاتصال. لزيادة الأمان. - ProtocolHonorOrder: مشابه لـ
SSLHonorCipherOrder
لكنه خاص بالتفاوض على إصدار البروتوكول. - SSLProtocol: يُحدد إصدارات بروتوكول SSL/TLS المسموح بها. مثلًا:
all -SSLv2 -SSLv3
يسمح بكل البروتوكولات الحديثة مع استثناء SSLv2 وSSLv3 غير الآمنَين. - SSLProxyProtocol: يحدد إصدارات البروتوكول عند عمل Apache كوكيل عكسي.
- Protocols: يحدد ترتيب البروتوكولات المدعومة (مثل تفعيل HTTP/2). مثال
h2 h2c http/1.1
يفضل HTTP/2 (معh2
للمشفر وh2c
للنص الواضح) ثم العودة إلى HTTP/1.1.
الحفظ والاستعادة
- إعادة الضبط (Reset): بالضغط على هذا الزر سيتم استعادة جميع إعدادات Apache إلى القيم الافتراضية لـ ServBay.
- حفظ (Save): بالضغط على هذا الزر سيتم حفظ جميع تغييرات إعدادات Apache. عادةً ما يُطبّق ServBay التعديلات تلقائيًا، وربما تحتاج إعادة تشغيل خدمة Apache لجعل التغييرات سارية المفعول.
ملاحظات هامة
- التعديلات هنا تغيّر إعدادات Apache العامة. أما تخصيص ضبط لموقع إلكتروني محدد (استضافة افتراضية) مثل
DocumentRoot
أو قواعدRewriteRule
فيتم إعدادها أثناء إضافة أو تحرير قسم "مواقع إلكترونية". - إذا رأيت رسالة في أعلى واجهة الإعدادات تفيد بأن "Service Apache is not enabled"، فهذا يعني أن خدمة Apache ليست نشطة حاليًا. يمكنك مع ذلك تعديل وحفظ الإعدادات، ولن تُطبق التغييرات إلا عند تشغيل الخدمة في المرة القادمة، سواء من اللوحة الرئيسية لـ ServBay أو قائمة
الحزم
(Packages).
الخلاصة
يوفر ServBay واجهة مرئية مباشرة لإدارة إعدادات خادم الويب Apache الأساسية. ومن خلال فهم هذه الخيارات يمكنك تكييف أداء وأمان وتصرفات Apache ليلبي احتياجاتك البرمجية، والاستفادة الكاملة من ServBay كبيئة تطوير محلية متكاملة.