كيفية نقل مواقع Apache إلى Caddy
يوفر ServBay خوادم ويب مثل Caddy وNginx وApache، حيث يمكن للمستخدمين اختيار الأنسب بحسب مشاريعهم. بالنسبة لمعظم أطر عمل PHP وأنظمة إدارة المحتوى (CMS)، قام ServBay مسبقًا بإعداد قواعد إعادة كتابة الروابط (Rewrite) الافتراضية لـ Caddy وNginx، ولا حاجة للمستخدم غالبًا لإجراء إعدادات إضافية.
يهدف هذا المقال إلى إرشادك بكيفية نقل موقعك المبني بإعدادات Apache لتشغيله على خادم Caddy الذي يتيحه ServBay لبيئة التطوير المحلية. سنوضح ذلك من خلال مثالين شائعين هما Laravel وWordPress.
حول دعم ServBay لـ Apache
يدعم ServBay خادم Apache بالكامل. إذا كنت ترغب في تغيير خادم الويب الافتراضي في ServBay إلى Apache، أو كنت ترغب في معرفة طريقة إعداد مواقع Apache داخل ServBay، يرجى مراجعة التوثيق: كيفية تبديل خادم الويب الافتراضي إلى Apache. والتركيز في هذا المقال على نقل مواقع معدّة أصلًا بـ Apache إلى بيئة Caddy ضمن ServBay.
نظرة عامة
عند نقل موقع ويب من خادم إلى آخر، يتطلب الأمر تكييف الإعدادات والملفات وفق الخادم الجديد. يتيح ServBay للمستخدمين اختيار Caddy كخادم الويب ويوفر دعمًا “جاهزًا للاستخدام” لمعظم أطر عمل PHP وأنظمة إدارة المحتوى، وهذا يعني أن ServBay سيتولى تلقائيًا إعداد جميع الإعدادات الضرورية، بما في ذلك قواعد إعادة الكتابة (Rewrite). لذلك، عادةً ما تكون عملية نقل موقع معد مسبقًا لـ Apache إلى بيئة Caddy في ServBay سهلة، وتتلخص الخطوات الرئيسية في “إضافة الموقع” بشكل صحيح داخل ServBay.
التحضيرات قبل النقل
قبل بدء أي عملية نقل، تأكد من استكمال الأمور التالية:
- نسخ احتياطي للملفات: قم بعمل نسخ احتياطي كامل لجميع ملفات موقعك، بما فيها الشيفرة البرمجية، والصور، والملفات المرفوعة في مجلد جذر الموقع.
- نسخ احتياطي لقاعدة البيانات: صدّر نسخة احتياطية لقاعدة بيانات موقعك. يدعم ServBay عدة أنواع قواعد بيانات مثل MySQL وPostgreSQL وMongoDB وغيرها، استخدم الأداة المناسبة للنسخ الاحتياطي.
- تأكيد تثبيت ServBay: احرص على تثبيت وتشغيل ServBay بنجاح على macOS لديك.
- تأكد من تفعيل حزمة Caddy: داخل تطبيق ServBay، تحقق من أن حزمة Caddy نشطة.
نقل موقع Laravel إلى Caddy
لنفترض لديك موقع Laravel بإعدادات Apache التالية:
مثال إعداد Apache نموذجي (خارج بيئة ServBay)
فيما يلي إعداد Apache لموقع Laravel في بيئة غير ServBay. لاحظ أن DocumentRoot
يشير إلى مجلد public
، وتم تفعيل قواعد إعادة الكتابة عبر AllowOverride All
لاستخدام ملف .htaccess
.
apache
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# غالبًا ما يتم أيضًا ضبط إعدادات معالجة ملفات PHP، إما عبر FPM أو mod_php
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
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
تشغيل موقع Laravel هذا على ServBay (باستخدام Caddy)
في ServBay، لا حاجة لكتابة إعدادات Apache يدويًا أو تحويلها إلى إعدادات Caddy. فلسفة ServBay هي تبسيط بيئة التطوير المحلية إلى أقصى حد. بالنسبة للأطر مثل Laravel، يقوم ServBay بشكل تلقائي عند إضافة الموقع بإنشاء إعدادات Caddy الصحيحة، بما في ذلك الإشارة إلى مجلد public
ومعالجة قواعد إعادة الكتابة.
الإجراءات العملية:
- انسخ كامل ملفات مشروع Laravel إلى مجلد فرعي ضمن مجلد مواقع ServBay الرئيسي. يُوصى بالمسار
/Applications/ServBay/www/your-laravel-project
، مع التأكد من وجود مجلدpublic
في هذا المسار. - افتح تطبيق ServBay.
- انتقل إلى واجهة إدارة "المواقع (Websites)" في ServBay.
- اضغط على زر "إضافة موقع".
- في نافذة الإعداد:
- النطاق (Domain): أدخِل النطاق الذي ترغب باستخدامه للوصول للموقع، مثل
laravel.servbay.demo
. سيقوم ServBay بإضافته تلقائيًا إلى ملف hosts المحلي. - جذر الموقع (Document Root): اختر مجلد
public
لمشروع Laravel الخاص بك، مثلاً/Applications/ServBay/www/your-laravel-project/public
. - خادم الويب (Web Server): اختر
Caddy
. - إصدار PHP (PHP Version): اختر نسخة PHP التي يحتاجها مشروعك.
- نوع التطبيق (Application Type): اختر
Laravel
، إذ يعتمد ServBay على هذا الإختيار ليضبط الإعدادات تلقائيًا.
- النطاق (Domain): أدخِل النطاق الذي ترغب باستخدامه للوصول للموقع، مثل
- اضغط "حفظ" أو "إضافة".
بعد إتمام الخطوات السابقة، سيولد ServBay ملف إعدادات Caddy تلقائيًا لـ laravel.servbay.demo
، ويتكفل بكل ما يخص توجيه الجذر، وقواعد إعادة الكتابة (Rewrite)، وتمرير طلبات PHP وغيرها. يمكنك الآن فتح متصفحك وزيارة الرابط http://laravel.servbay.demo
لمعاينة وتشغيل موقع Laravel الخاص بك.
مثال إعداد نظري لـ Caddy (للاطلاع فقط، تولده ServBay تلقائيًا)
لزيادة التوضيح، فيما يلي إعداد Caddy موافق لمتطلبات Laravel، وهو لإغراض المعرفة فقط — لا تحتاج إلى إعداده يدويًا.
bash
laravel.servbay.demo {
# تعيين جذر الموقع إلى مجلد public
root * /Applications/ServBay/www/your-laravel-project/public
# تهيئة معالجة PHP FastCGI
# يقوم ServBay بضبط مسار socket تلقائيًا حسب إصدار PHP والإعدادات
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# تمكين خدمة الملفات (الملفات الثابتة)
file_server
# قاعدة إعادة كتابة رئيسية لـ Laravel: إذا لم يكن الطلب ملفًا أو مجلدًا موجودًا، يعاد توجيهه إلى index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
نقل موقع WordPress إلى Caddy
لنفترض أن لديك موقع WordPress مع إعداد Apache كالتالي:
مثال إعداد Apache نموذجي (خارج بيئة ServBay)
هذا نموذج لإعداد Apache لموقع WordPress خارج ServBay. عادة ما يشير جذر الموقع إلى مجلد WordPress، ويتم الإعتماد على قواعد إعادة الكتابة في ملف .htaccess
لتفعيل الروابط الدائمة وغيرها.
apache
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# غالبًا ما تتم تهيئة معالجة PHP أيضًا
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
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
تشغيل موقع WordPress هذا على ServBay (باستخدام Caddy)
بنفس منهج Laravel، لتشغيل موقع WordPress على ServBay باستخدام Caddy كخادم ويب، لا تحتاج إلى إدخال إعدادات Caddy يدويًا. يتعرف ServBay تلقائيًا على متطلبات WordPress وينشئ الإعدادات المناسبة.
خطوات التنفيذ:
- انسخ ملفات مشروع WordPress كاملة إلى مجلد فرعي ضمن جذر مواقع ServBay مثلاً
/Applications/ServBay/www/your-wordpress-site
، مع التأكد من وجودindex.php
وwp-admin
وwp-includes
وغيرها ضمنه. - افتح تطبيق ServBay.
- انتقل إلى إدارة "المواقع (Websites)" في ServBay.
- اضغط على زر "إضافة موقع".
- في نافذة التهيئة:
- النطاق (Domain): أدخل اسم النطاق الذي تريده، مثل
wordpress.servbay.demo
. - جذر الموقع (Document Root): حدد جذر مجلد مشروع WordPress، مثل
/Applications/ServBay/www/your-wordpress-site
. - خادم الويب (Web Server): اختر
Caddy
. - إصدار PHP (PHP Version): اختر إصدار PHP المناسب.
- نوع التطبيق (Application Type): اختر
WordPress
.
- النطاق (Domain): أدخل اسم النطاق الذي تريده، مثل
- اضغط "حفظ" أو "إضافة".
سيتولى ServBay تلقائيًا توليد إعدادات Caddy لـ wordpress.servbay.demo
، ويضبط كل مما يخص جذر الموقع، وإعادة كتابة الروابط (للروابط الدائمة)، وتمرير الطلبات إلى PHP. الآن يمكنك زيارة http://wordpress.servbay.demo
لتشغيل موقعك واختبار الروابط الثابتة.
مثال نظري لإعداد Caddy (للاطلاع فقط، يولّده ServBay تلقائيًا)
فيما يلي إعداد Caddy نظري موافق لمتطلبات WordPress — لا داعي لإنشائه بنفسك.
bash
wordpress.servbay.demo {
# تعيين جذر الموقع
root * /Applications/ServBay/www/your-wordpress-site
# تهيئة PHP FastCGI
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# تفعيل خدمة تقديم الملفات
file_server
# قاعدة إعادة كتابة رئيسية لـ WordPress: تفعيل الروابط الدائمة
# إذا لم يكن الطلب ملفًا ثابتًا أو مجلدًا، أعِد التوجيه إلى index.php
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
الخلاصة
إن نقل مواقع Laravel أو WordPress التي تم إعدادها سلفًا على Apache إلى خادم Caddy في ServBay عملية سهلة للغاية. بفضل دعم ServBay المدمج لأشهر أنواع التطبيقات، لا تحتاج إلى تحويل ملفات .htaccess
أو إعدادات VirtualHost يدويًا إلى Caddyfile. كل ما عليك هو إضافة موقعك من واجهة "المواقع (Websites)" داخل تطبيق ServBay، وتحديد النطاق، وجذر الموقع، واختيار Caddy كخادم ويب، وتعيين نوع التطبيق (مثل Laravel أو WordPress)، وسيتولى ServBay كل إعدادات Caddy الضرورية تلقائيًا، بما فيها قواعد إعادة الكتابة المعقدة.
هذا الإعداد التلقائي يوفر عليك الكثير من عناء النقل وإعداد التطوير المحلي، ويمنحك إمكانية التركيز على تطوير الكود بدلًا من إعداد الخادم.