ServBay में Laravel प्रोजेक्ट बनाएँ और चलाएँ
परिचय
ServBay एक शक्तिशाली लोकल वेब डेवलपमेंट एनवायरनमेंट है, जो खास तौर से macOS के लिए डिज़ाइन किया गया है। इसमें कई लोकप्रिय सॉफ़्टवेयर पैकेज एकीकृत हैं—जैसे PHP, Node.js, Python, Go, Java, कई डेटाबेस (MySQL, PostgreSQL, MongoDB), कैशिंग सर्विसेज़ (Redis, Memcached) और वेब सर्वर (Caddy, Nginx, Apache)।
यह दस्तावेज़ आपको ServBay एनवायरनमेंट में तेज़ी से नया Laravel प्रोजेक्ट बनाने, कॉन्फ़िगर करने, और चलाने की पूरी प्रक्रिया समझाएगा। हम इसमें ServBay में बिल्ट-इन PHP, Composer पैकेज मैनेजर और वेबसाइट (पहले जिसे "होस्ट" कहा जाता था) प्रबंधन विकल्पों का उपयोग करेंगे ताकि पूरी प्रक्रिया आसान हो जाए।
Laravel क्या है?
Laravel एक लोकप्रिय ओपन-सोर्स PHP वेब एप्लीकेशन फ़्रेमवर्क है, जिसे Taylor Otwell ने बनाया है। यह MVC (Model-View-Controller) आर्किटेक्चर फ़ॉलो करता है और वेब डेवलपमेंट के आम टास्क—जैसे यूज़र ऑथेंटिकेशन, रूटिंग, सेशन मैनेजमेंट, कैशिंग, और डेटाबेस ऑपरेशन—को आसान बनाता है। Laravel अपनी सुंदर सिनटैक्स, व्यापक फ़ीचर्स और मज़बूत कम्युनिटी सपोर्ट के लिए जाना जाता है, और यह आधुनिक एवं मेंटेन करने योग्य वेब एप्लिकेशन निर्माण के लिए उपयुक्त है।
Laravel की मुख्य खूबियाँ और फायदे
- सुंदर (एलीगेंट) सिनटैक्सः साफ़-सुथरा और अभिव्यक्तिपूर्ण कोड, जिससे डेवेलपमेंट तेज़ और पढ़ने में आसान होता है।
- Eloquent ORM: शक्तिशाली ActiveRecord इम्प्लीमेंटेशन, जिससे डेटाबेस इंटरेक्शन सहज और आसान हो जाता है।
- Artisan कंसोल: कमांड लाइन टूल्स का एक सेट, जिससे आप माइग्रेशन, कोड जनरेशन, टेस्टिंग आदि टास्क आसानी से कर सकते हैं।
- Blade टेम्पलेट इंजन: सिंपल टेम्पलेटिंग सिनटैक्स, जिससे डायनेमिक व्यूज़ आसानी से बनाए जा सकते हैं।
- समृद्ध इकोसिस्टम: ढेरों आधिकारिक और थर्ड-पार्टी पैकेज, जिन्हें Composer के माध्यम से जोड़ना आसान है।
- मजबूत कम्युनिटी सपोर्ट: सक्रिय कम्युनिटी, जो ढेरों संसाधन, ट्यूटोरियल और समाधान उपलब्ध कराती है।
ServBay के साथ Laravel डेवलपमेंट के फायदे
ServBay, Laravel डेवेलपर्स के लिए ढेरों सहूलियतें लाता है:
- इंटीग्रेटेड एनवायरनमेंट: ServBay में पहले से कई PHP वर्जन, Composer और आम डेटाबेस एवं कैशिंग सर्विसें इंस्टॉल हैं—अलग से इंस्टॉल या कॉन्फ़िगर करने की ज़रूरत नहीं।
- आसान प्रबंधन: GUI के जरिए PHP वर्जन स्विच करना, वेबसाइट कॉन्फ़िगेशन मैनेज करना, तथा सर्विसज़ शुरू/बंद करना बेहद सहज।
- प्री-कॉन्फ़िगर वेब सर्वर: Caddy डिफ़ॉल्ट वेब सर्वर है, जिसे लगभग सभी सामान्य PHP फ़्रेमवर्क (जिसमें Laravel भी है) के लिए पहले से ऑप्टिमाइज़ किया गया है।
- HTTPS सपोर्ट: ServBay
.local
डोमेन के लिए ऑटोमेटिकली SSL सर्टिफिकेट (ServBay User CA) सेट करता है—लोकल डेवलपमेंट को सुरक्षित और प्रोडक्शन-समान बनाता है।
Laravel प्रोजेक्ट बनाएँ
ServBay सलाह देता है कि आपको अपने सभी वेबसाइट/प्रोजेक्ट /Applications/ServBay/www
फोल्डर में ही रखने चाहिए—इससे प्रोजेक्ट स्ट्रक्चर साफ़ और प्रबंधन आसान रहता है।
Composer की उपलब्धता पक्का करें
ServBay इंस्टॉलेशन में Composer पहले से शामिल है—अलग से इंस्टॉल की ज़रूरत नहीं है। आप टर्मिनल में यह कमांड चलाकर Composer चेक कर सकते हैं:
bashcomposer --version
1यदि वर्शन नंबर दिख जाए तो Composer सही से काम कर रहा है।
नई Laravel साइट बनाएँ
टर्मिनल खोलें, अनुशंसित वेबसाइट डायरेक्ट्री पर जाएँ और Composer के जरिए नया Laravel प्रोजेक्ट बनाएँ। हम फोल्डर का नाम
servbay-laravel-app
रखेंगे:bashcd /Applications/ServBay/www # प्रोजेक्ट डायरेक्ट्री बनाएँ mkdir servbay-laravel-app # डायरेक्ट्री में जाएँ cd servbay-laravel-app # Composer का उपयोग करके Laravel इंस्टॉल करें composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer Laravel और इसकी सभी डिपेंडेंसीज़ डाउनलोड व इंस्टॉल कर देगा।
प्रोजेक्ट डायरेक्ट्री में जाएँ
सुनिश्चित कर लें कि आप इलाज की गई Laravel प्रोजेक्ट की रूट डायरेक्ट्री में ही हैं:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
शुरुआती कॉन्फ़िगरेशन
एप्लिकेशन की (Key) जनरेट करें
Laravel ऐप सेशन्स और डेटा एन्क्रिप्ट करने के लिए एक ऐप्लिकेशन की (Key) इस्तेमाल करता है। प्रोजेक्ट के रूट फोल्डर (
/Applications/ServBay/www/servbay-laravel-app
) में ये कमांड चलाएँ:bashphp artisan key:generate
1यह कमांड
.env
फाइल मेंAPP_KEY
जनरेट और सेट कर देगा।एनवायरनमेंट वैरिएबल्स कॉन्फ़िगर करें (
.env
)Laravel अपने एनवायरनमेंट वैरिएबल्स को
.env
फाइल में रखता है, जैसे डेटाबेस कनेक्शन और ऐप URL। प्रोजेक्ट फोल्डर की.env
फाइल खोलकर नीचे दी गई मूलभूत सेटिंग्स पक्की करें:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # यह वैल्यू ऊपर की कमांड से जनरेट हो चुकी है 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 # 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 में वेबसाइट जोड़ें)
ServBay की वेबसाइट प्रबंधन सुविधा का उपयोग करके वेब सर्वर को कॉन्फ़िगर करें, और अपने कस्टम डोमेन को Laravel प्रोजेक्ट के public
फोल्डर पर प्वाइंट करें।
ServBay कंट्रोल पैनल खोलें
ServBay ऐप चालू करें और उसका कंट्रोल पैनल ओपन करें।
नई वेबसाइट जोड़ें
कंट्रोल पैनल में वेबसाइट सेक्शन पर जाएँ। नया साइट जोड़ने के लिए
+
या उपयुक्त बटन पर क्लिक करें।वेबसाइट की जानकारी भरें
उदाहरण के लिए:
- नाम:
My First Laravel Dev Site
(आसान पहचान के लिए) - डोमेन:
servbay-laravel-test.local
(ब्राउज़र में उपयोग होने वाला डोमेन) - साइट टाइप:
PHP
- PHP वर्शन: अपने Laravel वर्शन के अनुसार चुनें—उदाहरण,
8.3
। - साइट रूट:
/Applications/ServBay/www/servbay-laravel-app/public
(महत्वपूर्ण: सिर्फ Laravel प्रोजेक्ट केpublic
फोल्डर को ही साइट रूट रखें)
अधिक जानकारी के लिए ServBay डॉक्स में पहली वेबसाइट जोड़ें गाइड देखें (अंग्रेजी लिंक देखें)।
- नाम:
सेटिंग सेव और लागू करें
आपकी साइट कॉन्फ़िगरेशन सेव करें। ServBay वेब सर्वर कॉन्फ़िगरेशन (डिफ़ॉल्ट Caddy) ऑटोमेटिकली अपडेट कर देगा। यदि वेब सर्वर रीस्टार्ट करने को कहा जाए, तो वह भी करें।
बेसिक एक्सेस की पुष्टि करें
अब, आपकी Laravel साइट अपने कस्टम डोमेन से एक्सेस होनी चाहिए।
ब्राउज़र खोलें
अपने ब्राउज़र में सेट किया गया डोमेन डालें—for example
https://servbay-laravel-test.local
।रिज़ल्ट देखें
अगर सब ठीक है, तो आपको Laravel का Welcome पेज दिखेगा।
छोटा उदाहरण कोड जोड़ें
पुष्टि के लिए, routes/web.php
में एक साधारण रूट ऐड करें, जो "Hello ServBay!" दिखाए।
प्रोजेक्ट फ़ोल्डर की routes/web.php
फाइल खोलें, और इसमें यह कोड जोड़ें या अपडेट करें:
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
में सेटअप करेंअगर पहले से नहीं किया हो, तो
.env
फाइल में Memcached सेटिंग जोड़ें:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # ServBay का डिफ़ॉल्ट पोर्ट
1
2
3Memcached का प्रयोग
अपनी रूट या कंट्रोलर फाइल में Laravel Cache facade की मदत से Memcached इस्तेमाल करें:
routes/web.php
में एक रूट जोड़ें:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // डेटा को 10 मिनट के लिए कैश में डालना 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
में सेटअप करेंअगर पहले से नहीं किया हो, तो
.env
फाइल में Redis की सेटिंग करें:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay का डिफ़ॉल्ट - कोई पासवर्ड नहीं REDIS_PORT=6379 # ServBay का डिफ़ॉल्ट पोर्ट
1
2
3
4नोट: यदि आपने दोनों—Memcached और Redis—कन्फिगर किए हैं तो
.env
मेंCACHE_STORE
पर केवल एक ही ऐक्टिव रखें, बाकी को कमेंट कर दें।Redis का उपयोग
अपनी रूट या कंट्रोलर में Laravel के Redis/Cache facade का उपयोग करें:
routes/web.php
में यह कोड डालें:phpuse Illuminate\Support\Facades\Redis; // या Cache facade, जब CACHE_STORE=redis हो // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Redis facade के जरिए डेटा डालना व पढ़ना Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // या Cache facade (अगर 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 पहले से इंस्टॉल हैं। Laravel का Eloquent ORM बड़ी आसानी से इनके साथ जुड़ जाता है।
सबसे पहले, प्रोजेक्ट के लिए एक डेटाबेस बनाएँ। आप ServBay के कंट्रोल पैनल से phpMyAdmin/ Adminer/ pgAdmin या कमांड लाइन क्लाइंट का इस्तेमाल कर सकते हैं, और नया डेटाबेस servbay_laravel_app
बनाएं।
अब, Laravel माइग्रेशन का उपयोग करके डेटाबेस टेबल बनाएं।
माइग्रेशन फाइल बनाएं
प्रोजेक्ट के रूट पर यह कमांड चलाएँ:
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सेव करें।
माइग्रेशन रन करें
इस कमांड से माइग्रेशन रन कर,
accounts
टेबल बनाएँ:bashphp artisan migrate
1अगर डेटाबेस कनेक्शन और डेटाबेस
servbay_laravel_app
बना हुआ है, तो यह टेबल्स बना देगा—accounts
सहित, और साथ में Laravel डिफ़ॉल्ट टेबल्स (जैसे users, password_reset_tokens, आदि)।
MySQL उदाहरण
.env
में MySQL सेटिंग.env
फाइल में ये सेटिंग्स रखें:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # ServBay डिफ़ॉल्ट पोर्ट DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # ServBay डिफ़ॉल्ट पासवर्ड
1
2
3
4
5
6डेटा डालने का उदाहरण
routes/web.php
में यह रूट जोड़ें:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account MySQL में ऐड हो गया!'; });
1
2
3
4
5
6
7
8
9
10
11डेटा डालने के लिए जाएँ:
https://servbay-laravel-test.local/mysql-add-account
डेटा पढ़ने का उदाहरण
यह रूट डेटा लाने के लिए:
phpuse App\Models\Account; // अगर Account मॉडल हो // या सीधे DB facade का उपयोग करें Route::get('/mysql-accounts', function () { // DB facade से $accounts = DB::table('accounts')->get(); // या Eloquent ORM से (अगर 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 # ServBay डिफ़ॉल्ट पोर्ट DB_DATABASE=servbay_laravel_app DB_USERNAME=root # ServBay का डिफ़ॉल्ट यूज़र DB_PASSWORD=password # ServBay का डिफ़ॉल्ट पासवर्ड
1
2
3
4
5
6नोट: डाटाबेस बदलने के बाद, आपको
php artisan migrate:refresh
याphp artisan migrate
से टेबल्स दोबारा बनाने पड़ सकते हैं।डेटा डालने का उदाहरण (PostgreSQL)
यह रूट जोड़ें:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account PostgreSQL में ऐड हो गया!'; });
1
2
3
4
5
6
7
8
9
10
11टेस्ट करें:
https://servbay-laravel-test.local/pgsql-add-account
डेटा पढ़ने का उदाहरण (PostgreSQL)
यह रूट जोड़ें:
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 के जरिए आप macOS पर बड़ी आसानी से Laravel प्रोजेक्ट्स का लोकल डेवलपमेंट एनवायरनमेंट बना सकते हैं। इसमें पहले से PHP, Composer, Caddy वेब सर्वर और कई डेटाबेस/कैशिंग सर्विसेज़ की सेटिंग्स हैं, जिससे आपको एनवायरनमेंट सेटअप अलग से करने की कोई झंझट नहीं रहती। बस कुछ आसान स्टेप्स में ही आप नया Laravel प्रोजेक्ट तैयार करें, वेब सर्वर की सेटिंग्स करें और डेवलपमेंट शुरू करें—साथ ही कैश व डेटाबेस इंटीग्रेशन भी बेहद आसान है। ServBay का लक्ष्य आपको एक फास्ट, सुरक्षित एवं सुविधाजनक लोकल डेवेलपमेंट अनुभव उपलब्ध कराना है।
अगर डेवलपमेंट के दौरान कोई दिक्कत आए, तो ServBay के ऑफिशियल डॉक्स या कम्युनिटी से मदद लें।