شرح تفصيلي لبنية دلائل ServBay
نظرة عامة
يُعد ServBay بيئة تطوير ويب محلية تدعم كلا من macOS وWindows، ويتمتع بتصميم دلائل منظم وبسيط. إذا كنت من مستخدمي أنظمة Linux/Unix ستكون مألوفًا بهذه الطريقة في تنظيم الملفات، حيث تتبع الأسس التقليدية لبنية نظم الملفات، مما يسهل على المطورين تحديد مواقع وإدارة مختلف أنواع الملفات بسرعة.
موقع تثبيت ServBay
الموقع الافتراضي لتثبيت ServBay على أنظمة التشغيل:
- macOS:
/Applications/ServBay
- Windows:
C:\ServBay
يكمن فهمك لبنية دلائل ServBay في تحسين كفاءتك بالتطوير المحلي، إعداد البيئة، تتبع المشكلات، وكذلك النسخ الاحتياطي للبيانات. في هذا المقال، نشرح أدلة ServBay الرئيسية ووظائفها بالتفصيل.
مثال هيكلية نموذجية لدليل تثبيت ServBay هي كما يلي:
ServBay
|____backup # دليل ملفات النسخ الاحتياطي
| |____config # نسخ إعدادات احتياطية
| |____databases # نسخ قواعد البيانات الاحتياطية
| |____ssl # نسخ شهادات SSL احتياطية
| |____websites # نسخ ملفات المواقع الاحتياطية
|____bin # دليل الملفات التنفيذية للمستخدم (رابط رمزي إلى package/bin)
|____data # دليل بيانات ServBay الداخلية
| |____servbay # إعدادات وبيانات ServBay الأساسية
|____db # دليل تخزين ملفات قواعد البيانات
| |____mariadb # ملفات بيانات MariaDB
| |____mongodb # ملفات بيانات MongoDB
| |____mysql # ملفات بيانات MySQL
| |____postgresql # ملفات بيانات PostgreSQL
| |____redis # ملفات بيانات Redis
|____etc # دليل ملفات الإعدادات (رابط رمزي إلى package/etc)
|____logs # دليل ملفات السجلات (رابط رمزي إلى package/var/log)
|____package # دليل تثبيت الحزم البرمجية
| |____bin # الملفات التنفيذية للحزم البرمجية
| |____common # المكتبات المشتركة وبيئة التطوير
| | |____imap-uw
| | |____include # ملفات الرأس (مكتبة تطوير ServBay)
| | |____lib # المكتبات المشتركة والثابتة (مكتبة تطوير ServBay)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # موقع تخزين إعدادات الحزم البرمجية الفعلي
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (إعدادات حزم أخرى مثل Python, Go, Java, Ruby, Rust)
| |____<package_name> # دليل الحزمة الرئيسية لكل حزمة برمجية
| | |____<major_version> # دليل رقم الإصدار الرئيسي
| | | |____<full_version> # دليل رقم الإصدار الكامل (يتضمن الحزمة الأصلية)
| | | |____current # رابط رمزي إلى أحدث إصدار كامل
| | |____...
| |____sbin # الملفات التنفيذية للنظام للحزم البرمجية
| |____var # بيانات متغيرة للحزم البرمجية (مثل موقع السجلات الفعلي)
| | |____log # موقع تخزين السجلات الفعلي
| | |____run # ملفات وقت التشغيل (مثل ملفات .pid)
|____sbin # دليل الملفات التنفيذية للنظام (رابط رمزي إلى package/sbin)
|____script # سكريبتات الإدارة الداخلية لـServBay
|____ssl # دليل شهادات SSL
| |____acme # شهادات SSL المُصدرة عبر برتوكول ACME
| |____caddy # شهادات SSL مُنشأة آليا من قبل Caddy
| |____import # شهادات SSL من مصادر خارجية أضيفت من قبل المستخدم
| |____private # مرجع تشفير المستخدم ServBay User CA
| |____public # مرجع التشفير العام ServBay Public CA
|____tmp # دليل الملفات المؤقتة وملفات Socket
|____www # دليل المواقع الجذرية
| |____servbay # مثال على دليل موقع تجريبي
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
سنستعرض فيما يلي تفاصيل كل دليل ووظيفته.
الدليل الرئيسي لـ ServBay
الدليل الرئيسي لـServBay يكون بشكل افتراضي في /Applications/ServBay
. كل ما يخص ملفات الحزم البرمجية، الإعدادات، البيانات، السجلات وغيرها كلها مجمعة هنا.
لحماية بيئة تطويرك المحلية وبياناتك، يُوصى بعمل نسخ احتياطي للدليل الرئيسي بشكل دوري. يمكنك استخدام Time Machine أو أي أداة نسخ احتياطي أخرى لإنشاء نسخة كاملة للدليل /Applications/ServBay
.
دليل المواقع الجذرية (www
)
الموقع الرئيسي لملفات المواقع يكون في /Applications/ServBay/www
. هنا تحتفظ بجميع مشاريع المواقع المحلية الخاصة بك.
للمحافظة على التنظيم وسهولة الإدارة، من الأفضل إنشاء مجلد فرعي مستقل لكل مشروع أو موقع افتراضي (ويُشار له بـ"الموقع" في ServBay) داخل هذا الدليل.
مثال: إذا أنشأت مواقع مثل web.servbay.demo
، api.servbay.demo
وnew.servbay.local
، يُستحسن تنظيمها بهذه الطريقة:
/Applications/ServBay/www
|____servbay.demo # جميع المواقع المتعلقة بنطاق *.servbay.demo
| |____web # ملفات موقع web.servbay.demo
| |____api # ملفات موقع api.servbay.demo
|____servbay.local # جميع المواقع المتعلقة بنطاق *.servbay.local
| |____new # ملفات موقع new.servbay.local
|____myproject # مشاريع مستقلة أخرى مثل myproject.local
1
2
3
4
5
6
7
2
3
4
5
6
7
هذا التنظيم يساعدك على الفصل بين المشاريع المختلفة والنطاقات، ويسهل إدارة كل موقع بفعالية.
دليل ملفات الإعداد (etc
)
دليل إعدادات الملفات /Applications/ServBay/etc
هو عبارة عن رابط رمزي إلى /Applications/ServBay/package/etc
. هذا هو الموقع الذي تحتفظ فيه جميع الحزم البرمجية المثبتة عبر ServBay (مثل PHP، MariaDB، Nginx، Caddy، وغيرها) بإعداداتها الرئيسية.
خلال الاستخدام اليومي، يمكنك تعديل إعدادات الحزم مباشرة عبر المسار /Applications/ServBay/etc
. في أغلب الحالات، عند تعديل ملفات الإعداد، ستحتاج لإعادة تشغيل الخدمة ذات الصلة حتى تُطبق التغييرات.
أمثلة لمسارات حفظ ملفات إعداد الحزم الشائعة:
PHP (etc/php
)
ملفات إعداد PHP منظمة بشكل هرمي، حيث يُقسم الإعداد حسب كل إصدار رئيسي. ستجد في etc/php
دلائل مثل 5.6
، 7.4
، 8.3
، كل منها يمثل إصدار رئيسي لـPHP. النموذج كالتالي:
php
|____5.6 # إعدادات PHP 5.6
| |____conf.d # دليل إعدادات التوسعات الإضافية
| |____php.ini # ملف الإعداد الرئيسي لـPHP
|____7.4 # إعدادات PHP 7.4
| |____conf.d # دليل إعدادات التوسعات الإضافية
| |____php-fpm.d # إعدادات مسابح PHP-FPM
| |____php-fpm.conf # ملف الإعداد الرئيسي لـPHP-FPM
| |____php.ini # ملف الإعداد الرئيسي لـPHP
|____8.3 # إعدادات PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (إصدارات PHP أخرى)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ضمن كل إصدار، ستجد ملفات مثل php.ini
(الإعداد الرئيسي)، php-fpm.conf
(للإصدارات الداعمة لـFPM)، وpear.conf
وغيرها. بعد تعديل هذه الملفات، يجب إعادة تشغيل خدمة PHP-FPM عبر لوحة تحكم ServBay أو باستخدام أمر servbayctl
.
مجلد conf.d
خاص بتوسعات PHP، ستجد فيه ملفات مثل xdebug.ini
، opcache.ini
، redis.ini
إلخ. تحديث هذه الملفات يمكّنك من ضبط إعدادات أو تفعيل/إيقاف إضافات PHP. يلزم أيضًا إعادة تشغيل PHP-FPM بعد التعديل.
ملاحظة: ServBay مُصمم بحيث يشارك كل إصدار فرعي من نفس الإصدار الرئيسي ملف إعداد واحد. مثلاً، كل من PHP 8.3.3
و 8.3.5
يستخدمان نفس ملفات إعداد etc/php/8.3
.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
الدلائل الخاصة بإعدادات قواعد البيانات تعتمد كذلك على نسخ الإصدارات، مثل etc/mariadb/11.2
. ستجد داخل هذه المجلدات ملفات الإعداد الأساسية مثل my.cnf
لـMariaDB/MySQL وpostgresql.conf
لـPostgreSQL. بعد أي تعديل، يجب إعادة تشغيل خدمة قاعدة البيانات. وتشارك الإصدارات الفرعية نفس ملفات إعداد الإصدار الرئيسي.
عادة، إعادة تعيين كلمة مرور مستخدم root
تتم عبر أدوات خاصة أو لوحة تحكم ServBay، وليس من خلال تعديل الإعدادات بشكل مباشر.
Caddy (etc/caddy
)
ملف إعداد Caddy (Caddyfile
) يوجد في etc/caddy
.
ملاحظة هامة: ServBay يقوم بتوليد ملف Caddyfile
تلقائيًا حسب إعدادات المواقع من لوحة التحكم. يرجى عدم تعديل هذا الملف يدويًا، فقد تُلغى تغييراتك عند إعادة توليد الإعدادات. لإضافة إعدادات مخصصة لكل موقع، عدّل من خلال لوحة إعداد الموقع في ServBay.
Nginx (etc/nginx
)
الملف الرئيسي لإعداد Nginx هو nginx.conf
ويوجد في etc/nginx
. وكما في Caddy، يتم توليد أجزاء الإعداد تلقائياً وفقًا لمواقعك. يُفضل تعديل الإعدادات عبر لوحة التحكم وليس يدويًا إلا للخبراء.
dnsmasq (etc/dnsmasq
)
دليل إعداد dnsmasq يحتوي على ملف dnsmasq.conf
(الإعداد الافتراضي) وdomains.conf
(يتم توليده تلقائياً حسب إعدادات النطاق المحلي في ServBay).
ملاحظة هامة: كلا الملفين يتم إنشاؤهما وإدارتهما تلقائيًا من قبل ServBay لضمان عمل النطاقات المحلية. لا تعدل هذه الملفات يدويًا، فقد يتسبب ذلك في تعطل الوصول إلى المواقع المحلية.
إعدادات بقية الحزم البرمجية
بالنسبة لحزم مثل Node.js، Python، Go، Java، Ruby، Rust وغيرها، إذا كانت لديها إعدادات عامة أو خاصة بالخدمة فهي أيضًا تحفظ في مسار etc
الخاص بكل حزمة، ضمن بنية تنظيم حسب الإصدار.
دليل البيانات الداخلية لـServBay (data/servbay
)
/Applications/ServBay/data/servbay
1
هذا الدليل يحفظ إعدادات ServBay الحيوية وملفات الحالة وملفات تخصيص المستخدم. وتُعتبر الملفات هنا ضرورية لعمل لوحة التحكم وإدارة الحزم وإعداد المواقع وقواعد البيانات.
ملاحظة هامة: يجب عمل نسخ احتياطي لهذا الدليل بانتظام. لا تقم بإزالة أو تعديل أي ملف في هذا الدليل يدويًا لتجنب تعطل ServBay أو فقدان الإعدادات.
دلائل الملفات التنفيذية والسكريبتات (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
كل الملفات التنفيذية لـServBay منظمة ضمن bin
وsbin
وهذا عبر روابط رمزية إلى دلائل الحزم البرمجية. تضم هذه الأدلة أدوات ServBay المتكاملة مع بيئة التشغيل.
يمكنك الوصول إلى هذه الملفات مباشرة من الطرفية، حيث تُضاف المسارات إلى متغير PATH تلقائيًا عند تشغيل ServBay. مثال على الأدوات البرمجية:
- أدوات شائعة: مثل
curl
,openssl
,frpc
... - إصدارات متعددة من بيئات التشغيل: مثل
php
(الإصدار الافتراضي),php-5.6
,php-7.4
,php-8.3
,node
(الافتراضي),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
... ويمكنك اختيار نسخة محددة عبر استخدام اسم الأداة مع رقم الإصدار. - عملاء قواعد البيانات: مثل
mysql
,psql
,mongosh
,redis-cli
وغيرها.
الدليل script
(/Applications/ServBay/script
) يحتوي على سكريبتات إدارة النظام المستخدمة داخليًا في ServBay، مثل تشغيل/إيقاف الخدمات، تهيئة قواعد البيانات، المهام الصيانة... يُنصح عمومًا باستخدام أداة ServBay الرسمية servbayctl
بدلًا من تشغيل هذه السكريبتات مباشرةً.
مثال: لإطلاق خدمة PHP 7.4 FPM:
bash
servbayctl start php 7.4
1
الأداة servbayctl
موجودة في دليل /Applications/ServBay/bin
.
دليل ملفات قواعد البيانات (db
)
/Applications/ServBay/db
1
هذا الدليل هو موقع حفظ بيانات جميع قواعد البيانات التي تم تثبيتها مع ServBay. وتماماً كملفات الإعداد، يتم تنظيم الملفات حسب نوع الحزمة ورقم الإصدار. مثال:
/Applications/ServBay/db/mariadb/<major_version>
: ملفات قاعدة بيانات MariaDB./Applications/ServBay/db/mysql/<major_version>
: ملفات قاعدة بيانات MySQL./Applications/ServBay/db/postgresql/<major_version>
: ملفات PostgreSQL./Applications/ServBay/db/mongodb
: ملفات MongoDB./Applications/ServBay/db/redis
: ملفات Redis.
تم تنظيم بيانات كل قاعدة وفقاً للإصدار الرئيسي، مثل جميع نسخ MariaDB 11.2.x
تستخدم ملفات /Applications/ServBay/db/mariadb/11.2
.
ملاحظة هامة: هذا الدليل يحتوي على كل بيانات قواعدك المحلية. قبل أي عملية مهمة (كترقية ServBay أو ترحيل النظام)، احرص دومًا على نسخ محتوى /Applications/ServBay/db
. وتشمل أدوات النسخ الاحتياطي الأوتوماتيكية في ServBay النسخ الاحتياطية لقواعد البيانات أيضاً.
دليل السجلات (logs
)
/Applications/ServBay/logs -> package/var/log
1
يتم تجميع جميع سجلات خدمات ServBay تحت دليل /Applications/ServBay/logs
، وهو في الحقيقة رابط رمزي إلى /Applications/ServBay/package/var/log
. يمكنك بسهولة مراقبة حالة الخدمات وأخطاء التشغيل من هنا.
عادةً ما تُقسّم السجلات إلى دلائل فرعية حسب نوع الخدمة، مثال:
logs/caddy/
أوlogs/nginx/
: سجلات الوصول والأخطاء لكل من Caddy أو Nginx، غالباً مقسمة حسب النطاقات المواقع.logs/php/
: سجلات PHP-FPM (php-fpm.log
) وسجل أخطاء تنفيذ كود PHP (errors.log
). الأخير يسجل الأخطاء الفادحة غير المعالجة مباشرة في التطبيق.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: سجلات الأخطاء والاستعلامات البطيئة لكل قاعدة.- سجلات الخدمات الأخرى: Python, Go, Java, Ruby, Rust... تحفظ في دلائل فرعية.
ملاحظة: قد تستهلك ملفات السجلات خصوصاً سجلات الوصول والأخطاء مساحات كبيرة، خاصة عند نشاط المشاريع. يُنصح بمراجعة وحذف السجلات غير الضرورية بانتظام.
دليل الحزم البرمجية (package
)
/Applications/ServBay/package
1
هنا يتم تثبيت وإدارة جميع الحزم البرمجية الخاصة بـServBay. كل حزمة في مجلد منفصل يُنظم كالتالي: اسم الحزمة/رقم الإصدار الرئيسي/رقم الإصدار الكامل
. مثلًا: إصدار PHP معّين يكون في /Applications/ServBay/package/php/8.3/8.3.7
.
يمكنك عبر لوحة تحكم ServBay تثبيت أو إزالة وتبديل الإصدارات المختلفة بسهولة.
في حال الترقية، إذا لم تعد بحاجة لإصدار سابق، يمكنك حذف دليله مثل /Applications/ServBay/package/php/8.2/8.2.10
لتوفير مساحة.
ملاحظة هامة: يوجد غالبا رابط رمزي current
في دليل الإصدار الرئيسي (مثلاً /Applications/ServBay/package/php/8.3
) يشير للإصدار المستخدم حاليا. لا تقم بتعديل أو حذف هذا الرابط الرمزي لضمان عمل ServBay بشكل سليم.
دليل شهادات SSL (ssl
)
/Applications/ServBay/ssl
1
هنا تحفظ كل ملفات الشهادات المتعلقة بـSSL/TLS. ويشمل ذلك:
- شهادات SSL التي تولد تلقائيًا عبر ACME للمواقع المحلية (عادةً في
ssl/caddy
أوssl/acme
حسب السيرفر). - شهادات الجذر ServBay للتطوير الآمن عبر HTTPS (
ServBay User CA
وServBay Public CA
)، في المساراتssl/private
وssl/public
. بإمكانك تثبيت هذه الشهادات في النظام حتى تتعرف المتصفحات عليها وتتفادى تحذيرات HTTPS أثناء تطويرك.
دليل النسخ الاحتياطي (backup
)
/Applications/ServBay/backup
1
هذا هو الموقع الذي يحتفظ فيه ServBay بالنسخ الاحتياطية الأوتوماتيكية. تُمكّنك وظيفة النسخ الاحتياطي من حماية كل بياناتك وإعداداتك الحيوية، والتي تشمل:
backup/config
: نسخ إعدادات ServBay الأساسية وإعدادات الحزم البرمجية.backup/databases
: نسخ قواعد بيانات مثل MariaDB, MySQL, PostgreSQL, MongoDB.backup/ssl
: نسخ شهادات SSL.backup/websites
: نسخ ملفات مشاريع المواقع الموجودة في/Applications/ServBay/www
.
تابع مراجعة هذا الدليل ونقل النسخ الهامة إلى وحدة تخزين خارجية عند الحاجة لتعزيز استراتيجية الأمان لديك.
دليل الملفات المؤقتة (tmp
)
/Applications/ServBay/tmp
1
هذا الدليل يحتفظ بالملفات المؤقتة الناتجة عن تشغيل الخدمات، وغالبًا ما تجد فيه ملفات .pid
وملفات Socket المستخدمة في الاتصال الداخلي بين الخدمات.
- ملفات
.pid
: تحفظ رقم تعريف العملية. - ملفات Socket: مثل
php-cgi.sock
،mysql.sock
،pgsql.sock
... حيث تُتيح الاتصال بين التطبيقات المحلية والخدمات عبر Unix Domain Socket بدلاً من TCP للحصول على أداء وسرعة أعلى خاصًة للاتصالات الداخلية.
مكونات مشتركة وبيئة التطوير (package/common
)
/Applications/ServBay/package/common
1
هنا تجد كل المكونات المشتركة والمكتبات (مثل ملفات *.dylib
) التي تعتمد عليها كافة الحزم البرمجية في ServBay، وكذلك ملفات بيئة التطوير الاختيارية.
إذا ثبتّ مكتبة التطوير الخاصة بـServBay، ستجد هنا مجلد include
لملفات الرأس ومجلد lib
للمكتبات الثابتة (*.a
, *.la
). هذه الملفات مفيدة عند تطوير إضافات PHP من المصدر أو أي برامج تعتمد على مكتبات ServBay.
ملاحظة هامة: عدم حذف أي ملف من مسار package/common/lib
وخاصة ملفات *.dylib
، فهي ضرورية لتشغيل الحزم البرمجية. حذفها قد يؤدي لفشل البرامج بسبب نقص المكتبات المطلوبة.
الخلاصة
بنية دلائل ServBay تمنح فصلًا واضحًا بين الحزم البرمجية والإعدادات والبيانات والسجلات وملفات المواقع، مستوحاة من أعراف نظم الملفات في Unix لتسهيل إدارة البيئات التطويرية المحلية. إتقانك لهذه الأدلة ووظائفها سيُسهم في رفع كفاءتك وسهولة عملك في تطوير الويب باستخدام ServBay. ولا تنسَ: النسخ الاحتياطي للدلائل الحيوية وخاصةً data
وdb
ضروري لضمان سلامة بياناتك على الدوام.