ترحيل مواقع NGINX إلى خادم Caddy في ServBay
ServBay هو بيئة تطوير ويب محلية قوية تدعم عدة خوادم ويب شهيرة، بما في ذلك Caddy وNGINX وApache. تحقق ServBay إعدادًا مسبقًا لقواعد إعادة كتابة عناوين URL الأكثر شيوعًا لخوادم الويب، خاصةً لـ Caddy وNGINX، ما يجعل إعدادات المطورين أكثر سهولة وسرعة.
تستعرض هذه المقالة دليلاً شاملاً حول كيفية نقل موقع NGINX لديك بسلاسة إلى خادم Caddy المدمج في ServBay. سنستخدم أشهر أطر عمل PHP مثل Laravel وأنظمة إدارة المحتوى مثل WordPress لشرح عملية الترحيل بالكامل.
الدعم الشامل لخوادم الويب في ServBay
يقدم ServBay دعمًا كاملاً لـ Caddy وNGINX وApache، بحيث يمكنك التبديل بين خوادم الويب الافتراضية حسب متطلبات مشروعك. راجع مستند كيفية تبديل خادم الويب الافتراضي لمزيد من التفاصيل.
نظرة عامة
ترحيل موقع ويب من خادم إلى آخر يتطلب نقل ملفات الإعدادات وملفات الموقع. تم تصميم عملية الترحيل إلى Caddy في ServBay لتكون غاية في البساطة. بالنسبة لمعظم أطر عمل PHP وأنظمة إدارة المحتوى (مثل Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla وغيرها)، يوفر ServBay دعمًا جاهزًا للاستخدام، وعادةً لا تحتاج لكتابة أو تعديل أي ملفات إعدادات Caddy يدويًا. يقوم ServBay تلقائيًا بإنشاء ملف Caddyfile بناءً على إعدادات الموقع التي تحددها عبر الواجهة الرسومية.
التحضيرات قبل الترحيل
قبل البدء في أي عملية ترحيل، يرجى اتباع الخطوات التالية لضمان أمان بياناتك:
- نسخ ملفات الموقع احتياطيًا: يجب عمل نسخة احتياطية كاملة لجميع الملفات والمجلدات في الدليل الجذري لموقعك.
- نسخ قاعدة البيانات احتياطيًا: قم بعمل نسخة احتياطية من قاعدة البيانات (مثل MySQL، PostgreSQL، MongoDB). يوفر ServBay أدوات إدارة قواعد بيانات مدمجة ويدعم النسخ الاحتياطي اليدوي.
- تثبيت ServBay: تأكد من تثبيت وتشغيل ServBay بنجاح على جهاز macOS الخاص بك.
- تحديد موقع الملفات: ضع ملفات موقعك في دليل الجذر الافتراضي
/Applications/ServBay/www
أو في مجلد فرعي بداخله. مثلاً، إذا كان اسم مشروعكmyproject
، يمكنك وضعه داخل/Applications/ServBay/www/myproject
.
كيف يدير ServBay إعدادات Caddy
فهم كيفية إدارة ServBay لإعداد ملفات Caddy أمر أساسي لعملية الترحيل. على عكس التعامل اليدوي مع Caddyfile، يتيح لك ServBay إضافة وتكوين المواقع بسهولة من خلال واجهته الرسومية (GUI). بمجرد إضافة موقع واختيار Caddy كخادم ويب، يقوم ServBay تلقائيًا بإنشاء وإدارة مقاطع إعدادات Caddyfile بالاعتماد على المعلومات التي أدخلتها مثل اسم النطاق، مجلد الجذر، وإصدار PHP وغير ذلك. يتم تضمين هذه المقاطع في ملف Caddyfile الرئيسي الخاص بـ ServBay ليعمل الموقع بشكل صحيح.
هذا يعني أن الإعدادات الضرورية لـ Caddy تتم تلقائيًا عند إضافة الموقع في واجهة ServBay، دون الحاجة لأي تعديل يدوي في ملفات .caddyfile
أو أي ملفات نصية مماثلة.
خطوات الترحيل
عملية ترحيل موقع NGINX إلى خادم Caddy على ServBay مباشرة للغاية:
- تشغيل ServBay: احرص على تشغيل تطبيق ServBay.
- نقل ملفات الموقع: انسخ أو انقل جميع ملفات موقع NGINX الخاصة بك (كود التطبيق، الصور، CSS، JS، إلخ) إلى مجلد جديد داخل مجلد الجذر الافتراضي لـ ServBay، على سبيل المثال:
/Applications/ServBay/www/your-site-name
. - إضافة الموقع عبر واجهة ServBay الرسومية:
- افتح تطبيق ServBay.
- انتقل إلى قسم “المواقع” (Websites).
- اضغط على زر “إضافة موقع”.
- أدخل معلومات الموقع:
- النطاق (Domain): اكتب اسم النطاق الذي تود استخدامه للوصول المحلي للموقع، مثل
your-site-name.servbay.demo
. - مجلد الجذر (Website Root): اختر الدليل الذي وضعت فيه ملفات الموقع بالخطوة الثانية، مثل
/Applications/ServBay/www/your-site-name
. - خادم الويب (Web Server): اختر
Caddy
. - إصدار PHP (PHP Version): اختر إصدار PHP الذي يتطلبه موقعك.
- النطاق (Domain): اكتب اسم النطاق الذي تود استخدامه للوصول المحلي للموقع، مثل
- اضغط على “حفظ” أو “إنشاء” حسبما يظهر.
- تحقق من الموقع: يقوم ServBay تلقائيًا بإضافة النطاق الجديد إلى ملف hosts المحلي لديك وإعداد Caddy. تصفح النطاق الذي قمت بتخصيصه (مثلاً
http://your-site-name.servbay.demo
) وتأكد من أن الموقع يعمل بشكل صحيح. - تكوين قاعدة البيانات: إذا كان الموقع يحتاج لقاعدة بيانات، تأكد من تشغيل خدمة قاعدة البيانات المناسبة في ServBay (مثل MySQL أو PostgreSQL)، وقم بتحديث بيانات الاتصال بقاعدة البيانات في ملف إعدادات الموقع (عادةً ما يكون عنوان قاعدة البيانات هو
127.0.0.1
أوlocalhost
مع اسم المستخدم وكلمة المرور الصحيحين).
مثال: ترحيل موقع Laravel
إعداد نموذجي لـ NGINX (للمراجعة فقط)
هذا مثال على ملف إعداد لـ NGINX خاص بمواقع Laravel، يوضح كيفية ضبط مسار الجذر وملف البداية (index.php
) ومعالجة FastCGI مع PHP:
server {
listen 80;
server_name laravel.servbay.demo; # استخدم نطاق مثالي باسم ServBay
root /Applications/ServBay/www/laravel/public; # المسار إلى دليل public في Laravel
index index.php index.html index.htm;
location / {
# حاول الوصول للملف أو المجلد مباشرة، وإذا لم يوجد يُعاد التوجيه إلى index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# إعداد معالجة PHP FastCGI
include fastcgi_params;
# مسار سوكيت PHP-CGI الافتراضي في ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# منع الوصول إلى الملفات المخفية
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
إعداد Caddy المكافئ في ServBay (يُنشأ تلقائيًا ولا حاجة للكتابة اليدوية)
لا حاجة لتعديل Caddyfile يدويًا
داخل ServBay، لا تحتاج إلى إنشاء أو تعديل Caddyfile يدويًا لتحقيق هذه الإعدادات. واجهة ServBay تولد تلقائيًا الإعدادات المطلوبة لـ Caddy بحسب معطيات الموقع التي أدخلتها. المثال التالي يوضح فقط كيفية معالجة ServBay داخليًا لإعدادات مشابهه لإعداد NGINX، لمساعدتك على الفهم.
هذا مثال نظري على جزء من إعداد Caddy الذي قد يقوم ServBay بإنشائه تلقائيًا لموقع Laravel (بشكل مبسط، حيث أن إعداد ServBay الفعلي قد يكون أوسع لتوفير ميزات إضافية):
# يتم إدارة هذا الإعداد تلقائيًا بواسطة ServBay
laravel.servbay.demo {
# تعيين مجلد الجذر للموقع
root * /Applications/ServBay/www/laravel/public
# إعداد معالجة PHP FastCGI وربطه بسوكيت PHP الخاص بـ ServBay
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# تفعيل خدمة الملفات الساكنة
file_server
# مطابقة الطلبات غير الملفات الساكنة
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# إعادة كتابة الطلبات غير الساكنة إلى index.php
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
خطوات عملية لترحيل Laravel:
- انسخ ملفات مشروع Laravel إلى المجلد
/Applications/ServBay/www/laravel
. - تأكد من أن مجلد
laravel/public
هو نقطة البداية للموقع. - أضف موقعًا جديدًا عبر واجهة ServBay الرسومية: النطاق
laravel.servbay.demo
، مجلد الجذر/Applications/ServBay/www/laravel/public
، خادم ويبCaddy
. - قم بضبط بيانات الاتصال بقاعدة البيانات في ملف
.env
الخاص بـ Laravel. - افتح الرابط
http://laravel.servbay.demo
في متصفحك لاختبار الموقع.
مثال: ترحيل موقع WordPress
إعداد نموذجي لـ NGINX (للمراجعة فقط)
فيما يلي مثال على ملف إعداد NGINX لمواقع WordPress:
server {
listen 80;
server_name wordpress.servbay.demo; # استخدم نطاق ServBay كمثال
root /Applications/ServBay/www/wordpress; # دليل تثبيت WordPress
index index.php index.html index.htm;
location / {
# قواعد الروابط الدائمة الخاصة بـ WordPress
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# إعداد معالجة PHP FastCGI
include fastcgi_params;
# مسار سوكيت PHP-CGI الافتراضي في ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# منع الوصول للملفات المخفية
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
إعداد Caddy المكافئ في ServBay (يُنشأ تلقائيًا ولا حاجة للكتابة اليدوية)
لا حاجة لتعديل Caddyfile يدويًا
بنفس الطريقة، لإعداد WordPress، تدير واجهة ServBay الإعدادات تلقائيًا. المثال أدناه فقط لتوضيح كيف يدعم ServBay روابط WordPress الدائمة وما يشابهها.
فيما يلي مثال نظري على جزء إعداد Caddy الذي يُنشئ تلقائيًا لموقع WordPress:
# يتم إدارة هذا الإعداد تلقائيًا بواسطة ServBay
wordpress.servbay.demo {
# تعيين مجلد الجذر للموقع
root * /Applications/ServBay/www/wordpress
# إعداد معالجة PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# تفعيل خدمة الملفات الساكنة
file_server
# مطابقة الطلبات غير الملفات الساكنة
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# إعادة كتابة الطلبات غير الساكنة إلى index.php (لتفعيل الروابط الدائمة)
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
خطوات عملية لترحيل WordPress:
- انسخ ملفات WordPress إلى المجلد
/Applications/ServBay/www/wordpress
. - أضف موقعًا جديدًا عبر واجهة ServBay الرسومية: النطاق
wordpress.servbay.demo
، مجلد الجذر/Applications/ServBay/www/wordpress
، خادم ويبCaddy
. - قم بتحديث بيانات الاتصال بقاعدة البيانات في ملف
wp-config.php
الخاص بـ WordPress. - افتح الرابط
http://wordpress.servbay.demo
في متصفحك لاختبار الموقع. إذا واجهت مشكلة في الروابط الدائمة، فعادةً يكون السبب أن ServBay قد عالج قواعد إعادة الكتابة تلقائيًا ولا حاجة لإعدادات إضافية. تحقق من قسم "الإعدادات" -> "الروابط الدائمة" داخل لوحة تحكم WordPress لضمان صحتها.
ملاحظات هامة
- توصيل قاعدة البيانات: بعد الترحيل، تأكد من تحديث بيانات الاتصال بقاعدة البيانات في كود الموقع وجعلها تشير إلى قاعدة البيانات التي توفرها ServBay.
- المتغيرات البيئية: إذا كان تطبيقك يعتمد على متغيرات بيئية محددة، تأكد من تعيينها ضمن بيئة ServBay (مثل استخدام ملف
.env
في PHP أو إعدادات مخصصة في ServBay). - إعدادات NGINX المعقدة: الأمثلة أعلاه تغطي إعدادات Laravel وWordPress الشائعة. إذا كان لديك إعدادات NGINX مخصصة ومعقدة أو تستخدم وحدات أو إعدادات غير تقليدية، فقد لا يغطي التوليد التلقائي في ServBay جميع الحالات. في هذه الحالة، راجع توثيق Caddy الرسمي واستخدم نقاط التوسعة الممكنة في ServBay (إذا توفرت) أو اعتمد على فهم منطق الإعداد الأوتوماتيكي في ServBay. لكن في الغالبية العظمى من المشاريع التقليدية فإن التوليد التلقائي في ServBay كافٍ تمامًا.
- HTTPS/SSL: يدعم ServBay إعداد HTTPS للمواقع المحلية بسهولة. يمكنك استخدام شهادات ServBay User CA أو ServBay Public CA لتوليد وتصديق شهادات SSL المحلية دون الحاجة لتعديل يدوي لإعدادات TLS في Caddy.
الخلاصة
يعد ترحيل مواقع NGINX إلى خادم Caddy في ServBay عملية سهلة وبسيطة بفضل الإدارة الأوتوماتيكية لإعدادات Caddy داخل ServBay. بالنسبة للتطبيقات الشائعة مثل Laravel وWordPress، كل ما عليك فعله هو وضع الملفات في الدليل المحدد وإضافة الموقع عبر واجهة ServBay الرسومية. ستتولى ServBay كل ما يلزم من إعدادات توجيه عناوين URL ومعالجة PHP FastCGI تلقائيًا، ما يتيح لك تشغيل موقعك على خادم Caddy المحلي بسرعة وكفاءة.