إنشاء وتشغيل مشروع Laravel باستخدام ServBay
نظرة عامة
يُعد ServBay بيئة تطوير ويب محلية قوية تدعم نظامي macOS وWindows، حيث يدمج العديد من الحزم البرمجية الشائعة مثل PHP، Node.js، Python، Go، Java، بالإضافة إلى قواعد بيانات متنوعة (MySQL, PostgreSQL, MongoDB)، وخدمات التخزين المؤقت (Redis, Memcached) وخوادم الويب (Caddy, Nginx, Apache).
يوجهك هذا الدليل خطوة بخطوة لإنشاء، إعداد وتشغيل مشروع Laravel بسرعة داخل بيئة ServBay. سنستفيد من بيئة PHP المدمجة، مدير الحزم Composer، وميزات إدارة المواقع القوية (سابقًا "Hosts") لتسهيل العملية بالكامل.
ما هو Laravel؟
Laravel هو إطار عمل شهير ومفتوح المصدر لتطبيقات الويب بلغة PHP، أُنشئ بواسطة تايلور أوتويل. يتبع نظام MVC (النموذج-العرض-المتحكم)، ويوفر مجموعة من المزايا الجاهزة التي تُبسّط المهام الشائعة مثل التحقق من المستخدم، تحديد المسارات، إدارة الجلسات، التخزين المؤقت والتعامل مع قواعد البيانات. يشتهر Laravel ببنيته الأنيقة، ميزاته الغنية، ودعم المجتمع القوي، مما يجعله الخيار الأمثل لإنشاء تطبيقات ويب عصرية وسهلة الصيانة.
أبرز ميزات وفوائد Laravel
- بنية برمجية أنيقة: كود مختصر ومعبر يسهل من القراءة ويزيد فعالية التطوير.
- Eloquent ORM: تنفيذ قوي لنمط ActiveRecord يجعل التعامل مع قواعد البيانات سهلاً وواضحًا.
- سطر أوامر Artisan: يشمل أدوات مفيدة لإجراء ترحيلات قاعدة البيانات، توليد الكود، وتشغيل الاختبارات.
- محرك القوالب Blade: يوفر صيغة بسيطة لبناء واجهات ديناميكية بطريقة مريحة.
- نظام بيئي غني: مزود بعدد كبير من الحزم الرسمية والجهات الخارجية يمكن دمجها بسهولة عبر Composer.
- دعم مجتمعي قوي: مجتمع نشط يوفّر موارد وأدلة وحلول شاملة.
مزايا تطوير مشاريع Laravel باستخدام ServBay
يوفر ServBay للمطورين ميزات عديدة أثناء العمل مع Laravel:
- بيئة متكاملة: يأتي ServBay بعدة إصدارات من PHP، Composer، وقواعد بيانات وخدمات تخزين مؤقت جاهزة، دون الحاجة لتركيب أو إعداد مستقل.
- إدارة سهلة: عبر واجهته الرسومية يمكنك تبديل إصدارات PHP، وضبط إعدادات المواقع وتشغيل/إيقاف الخدمات بسهولة.
- خادم ويب مضبوط مسبقًا: يستخدم ServBay خادم Caddy كإعداد افتراضي، مع تعديلات محسنة لأطر العمل مثل Laravel لتسهيل ضبط الخادم.
- دعم HTTPS: يقوم ServBay تلقائيًا بتكوين شهادات SSL للدومينات التي تنتهي بـ .local، مما يوفر بيئة آمنة قريبًا من الإنتاج للتطوير المحلي.
إنشاء مشروع Laravel
يوصى بتخزين مشاريع المواقع الموحدة في الأدلة التالية للحفاظ على تنظيم الملفات وسهولة الإدارة:
- على macOS:
/Applications/ServBay/www
- على Windows:
C:\ServBay\www
تأكد من تثبيت Composer
يأتي ServBay مع Composer بشكل افتراضي، ولا تحتاج إلى تثبيت إضافي. يمكنك التأكد من توفره عبر الطرفية:
bashcomposer --version
1إذا ظهر رقم الإصدار، فهذا يعني أن Composer جاهز للاستخدام.
إنشاء مشروع Laravel جديد
افتح الطرفية، انتقل لمجلد المواقع الموصى به، وأنشئ مشروع Laravel باسم
servbay-laravel-app
:macOS:
bashcd /Applications/ServBay/www # إنشاء مجلد المشروع mkdir servbay-laravel-app # الدخول إلى مجلد المشروع cd servbay-laravel-app # إنشاء مشروع Laravel في الدليل الحالي باستخدام Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # إنشاء مجلد المشروع mkdir servbay-laravel-app # الدخول إلى مجلد المشروع cd servbay-laravel-app # إنشاء مشروع Laravel في الدليل الحالي باستخدام Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7سيقوم Composer بتنزيل Laravel وجميع الاعتمادات المطلوبة.
الدخول إلى مجلد المشروع
تأكد أن الطرفية تشير لمجلد مشروع Laravel الجديد:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
الإعداد الأولي
إنشاء مفتاح التطبيق
يستعمل Laravel مفتاحًا خاصًا لتأمين الجلسات وتشفير البيانات. أنشئ المفتاح عبر الأمر التالي في مجلد المشروع الجذري:
مسار مجلد المشروع الجذري:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1سينشئ هذا الأمر قيمة
APP_KEY
ويضيفها تلقائيًا إلى ملف.env
.- macOS:
ضبط متغيرات البيئة (
.env
)يستخدم Laravel ملف
.env
لإدارة إعدادات البيئة الخاصة بالمشروع مثل الاتصال بقاعدة البيانات، وعنوان التطبيق، وغيرها. افتح الملف من مجلد المشروع، واضبط الإعدادات حسب الحاجة، وتأكد من التالي:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # تم إنشاؤه بواسطة الأمر php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # إعداد قاعدة بيانات مثال (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # اسم قاعدة البيانات المراد استعماله DB_USERNAME=root # اسم المستخدم الافتراضي في ServBay DB_PASSWORD=password # كلمة المرور الافتراضية في ServBay # إعداد التخزين المؤقت/قوائم الانتظار (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis يعمل بدون كلمة مرور افتراضيًا في ServBay REDIS_PORT=6379 # إعداد التخزين المؤقت/قوائم الانتظار (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
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ملاحظة: قد تحتاج إلى تعديل إعدادات مثل
DB_*
،REDIS_*
أوMEMCACHED_*
حسب الخدمات التي تستخدمها فعلًا. بيانات تسجيل الدخول الافتراضية لقواعد البيانات يمكن العثور عليها في لوحة تحكم ServBay.
ضبط خادم الويب (إضافة موقع جديد في ServBay)
استخدم ميزة إدارة المواقع في ServBay لتوجيه الدومين إلى مجلد public
الخاص بمشروع Laravel.
فتح لوحة تحكم ServBay
شغّل تطبيق ServBay واختر لوحة التحكم.
إضافة موقع جديد
انتقل لجزئية "المواقع" في لوحة التحكم. اضغط زر الإضافة (
+
أو ما يماثله) لإضافة موقع جديد.إدخال بيانات الموقع
أدخل المعلومات التالية كمثال:
الاسم (Name):
My First Laravel Dev Site
(اسم تمييزي)الدومين (Domain):
servbay-laravel-test.local
(الدومين المراد تصفحه)نوع الموقع (Site Type):
PHP
إصدار PHP (PHP Version): اختر إصدار مناسب لإصدار Laravel، مثل
8.3
.جذر الموقع (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(هام: يجب اختيار مجلد
public
داخل مشروع Laravel)- macOS:
لمزيد من التفاصيل، راجع دليل إضافة أول موقع بموقع ServBay (ابحث عن الدليل باللغة الإنجليزية).
الحفظ وتطبيق التغييرات
احفظ الإعدادات. سيقوم ServBay بتحديث إعدادات خادم الويب (افتراضيًا Caddy). إذا ظهر إشعار لإعادة تشغيل الخادم، اتبع التعليمات.
اختبار الوصول الأساسي
الآن، يمكنك تجربة تصفح موقع Laravel عبر الدومين الذي ضبطته.
افتح المتصفح
اكتب الدومين الذي ضبطته مثل
https://servbay-laravel-test.local
.عرض النتيجة
إذا كانت الإعدادات صحيحة، ستظهر صفحة الترحيب الخاصة بـ Laravel.
إضافة كود مثال بسيط
للتأكد بشكل واضح أكثر، يمكنك إضافة مسار بسيط إلى ملف routes/web.php
لإرجاع رسالة "Hello ServBay!".
ابحث عن الملف داخل مجلد المشروع وأضف أو عدل الأسطر التالية:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // عدّل أو أضف هذا السطر
});
// ... مسارات أخرى
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
بعد الحفظ، عد لتصفح https://servbay-laravel-test.local
، ستظهر رسالة Hello ServBay!
في المتصفح.
مثال دمج قاعدة البيانات
يوفر Laravel طبقة تعامل متقدمة مع قواعد البيانات وORM (Eloquent)، ويدعم مختلف قواعد البيانات التي يوفرها ServBay مثل MySQL, PostgreSQL, MongoDB, Redis, وMemcached لتسهيل التطوير والتجربة المحلية.
أمثلة قواعد بيانات NoSQL
يأتي ServBay جاهزًا مع Redis وMemcached، كذلك دعم PHP لهما مفعّل مسبقًا.
مثال Memcached
ضبط ملف
.env
ضع إعدادات اتصال Memcached (إن لم تكن مضبوطة سابقًا):
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # منفذ Memcached الافتراضي في ServBay
1
2
3استخدام Memcached
استخدم واجهة التخزين المؤقت الرئيسية في Laravel للتعامل مع Memcached:
أضف هذا المثال في
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // احفظ قيمة في التخزين المؤقت لمدة 10 دقائق (600 ثانية) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // استرجع القيمة من التخزين المؤقت $value = Cache::get('servbay_memcached_key'); if ($value) { return "بيانات Memcached: " . $value; } else { return "لا توجد بيانات في Memcached أو انتهت صلاحيتها."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15ادخل على
https://servbay-laravel-test.local/memcached-test
للاختبار.
مثال Redis
ضبط ملف
.env
ضع إعدادات اتصال Redis (إن لم تكن مضبوطة سابقًا):
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis لا يستخدم كلمة مرور بشكل افتراضي في ServBay REDIS_PORT=6379 # منفذ Redis الافتراضي في ServBay
1
2
3
4ملاحظة: إذا كنت تختبر Redis وMemcached سوياً، فعّل فقط الخدمة المراد اختبارها عبر متغير
CACHE_STORE
في.env
(وعلّق الآخر).استخدام Redis
تعامل مع Redis عبر الواجهات المناسبة في Laravel داخل مسارات التطبيق:
أضف هذا المثال في
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // أو استخدم Cache إذا كان CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // استخدم واجهة Redis Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // أو عبر Cache (إن كان CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "بيانات Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15ادخل على
https://servbay-laravel-test.local/redis-test
للاختبار.
أمثلة قواعد بيانات علائقية (MySQL & PostgreSQL)
يأتي ServBay مجهزًا بخوادم MySQL وPostgreSQL. يمكنك ربطهما بسهولة عبر ORM الخاص بـ Laravel.
في البداية، أنشئ قاعدة بيانات للمشروع. استعمل أدوات إدارة قواعد البيانات المدمجة في ServBay مثل phpMyAdmin, Adminer, pgAdmin أو العملاء الطرفيين، لإنشاء قاعدة بيانات باسم servbay_laravel_app
.
بعد ذلك، استخدم أوامر الهجرة (migrations) في Laravel لإنشاء البنية.
إنشاء ملف الهجرة
من مجلد المشروع، نفذ الأمر التالي لإنشاء ملف هجرة لإنشاء جدول accounts:
bashphp artisan make:migration create_accounts_table --create=accounts
1سيظهر ملف جديد في
database/migrations
.تعديل ملف الهجرة
افتح ملف الهجرة الجديد (اسمه مثل
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) وعرّف بنية جدولaccounts
بهذه الطريقة:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * تنفيذ الهجرة. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // يضيف created_at وupdated_at }); } /** * التراجع عن الهجرة. */ public function down(): void { Schema::dropIfExists('accounts'); } };
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احفظ التغييرات.
تشغيل الهجرة
شغل أمر الهجرة لإنشاء الجدول:
bashphp artisan migrate
1إذا كان الإعداد صحيحًا وقاعدة بيانات
servbay_laravel_app
موجودة، سيتم إنشاء جدولaccounts
والجداول الافتراضية الأخرى الخاصة بـ Laravel.
مثال MySQL
ضبط إعدادات
.env
لـ MySQLتأكد من ضبط ملف
.env
لاستخدام MySQL:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # منفذ MySQL الافتراضي في ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # كلمة المرور الافتراضية في ServBay
1
2
3
4
5
6كتابة بيانات تجريبية
أضف مسار في
routes/web.php
لإدراج بيانات في جدولaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'تمت إضافة حساب إلى MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11ادخل على
https://servbay-laravel-test.local/mysql-add-account
لإدخال البيانات.قراءة البيانات التجريبية
أضف مسار جديد في
routes/web.php
لعرض بيانات من جدولaccounts
:phpuse App\Models\Account; // إذا أنشأت نموذج Account // أو استخدم DB مباشرة Route::get('/mysql-accounts', function () { // عبر DB $accounts = DB::table('accounts')->get(); // أو عبر Eloquent (إذا كان Account موجودًا) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12قم بتصفح
https://servbay-laravel-test.local/mysql-accounts
لمشاهدة البيانات.
مثال PostgreSQL
ضبط إعدادات
.env
لـ PostgreSQLلتفعيل PostgreSQL، عدل ملف
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # منفذ PostgreSQL الافتراضي في ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # مستخدم PostgreSQL الافتراضي في ServBay DB_PASSWORD=password # كلمة المرور الافتراضية في ServBay
1
2
3
4
5
6ملاحظة: عند تبديل نوع قاعدة البيانات، قد تحتاج لتطبيق أمر
php artisan migrate:refresh
أوphp artisan migrate
لإعادة بناء الجداول في PostgreSQL.إدخال بيانات تجريبية (PostgreSQL)
أضف مسار في
routes/web.php
لإدخال بيانات في جدولaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'تمت إضافة حساب إلى PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11ادخل على
https://servbay-laravel-test.local/pgsql-add-account
لإدخال البيانات.قراءة بيانات تجريبية (PostgreSQL)
أضف مسار جديد في
routes/web.php
لعرض بيانات من جدولaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6قم بتصفح
https://servbay-laravel-test.local/pgsql-accounts
لمشاهدة البيانات.
الملخص
بواسطة ServBay يمكنك إنشاء بيئة تطوير محلية متقدمة لمشاريع Laravel بسهولة. توفر البيئة المدمجة PHP, Composer, خادم الويب Caddy، وقواعد البيانات وخدمات التخزين المؤقت مما يبسط إعداد البيئة ويقلل الوقت المستغرق للتهيئة. بخطوات بسيطة يمكنك بناء مشروع جديد وتكوين الموقع والبدء بالتطوير واختبار خدمات قواعد البيانات والتخزين المؤقت بسهولة تامة. يهدف ServBay لتوفير تجربة تطوير محلية فعّالة وسريعة للمطورين.
إذا واجهتك أي مشاكل أثناء الاستخدام، يمكنك الرجوع إلى وثائق ServBay الرسمية أو طلب دعم المجتمع.