ServBay में Yii 2 प्रोजेक्ट बनाएं और चलाएं
संक्षिप्त परिचय: Yii 2 क्या है?
Yii 2 एक उच्च-प्रदर्शन, कंपोनेंट-आधारित PHP फ्रेमवर्क है, जिसे आधुनिक वेब एप्लिकेशन का तीव्र विकास आसान बनाने के लिए डिजाइन किया गया है। यह MVC (Model-View-Controller) डिज़ाइन पैटर्न को फॉलो करता है और इसमें ऐसी अनेक खूबियाँ और टूल्स शामिल हैं, जो डेवलपर्स को स्केलेबल, उच्च-गुणवत्ता वाली वेब ऐप्स जल्दी और दक्षता से बनाने में मदद करती हैं। शानदार प्रदर्शन, लचीली संरचना और शक्तिशाली बिल्ट-इन फ़ीचर्स (जैसे कैशिंग, सिक्योरिटी, RESTful API सपोर्ट आदि) के कारण Yii 2 को बहुत लोकप्रियता मिली है।
Yii 2 की प्रमुख विशेषताएं और फायदे
- उच्च प्रदर्शन: Yii 2 को विशेष रूप से अनुकूलित किया गया है ताकि यह हाई-कॉनकरेंसी रिक्वेस्ट्स संभाल सके, जिससे यह प्रदर्शन-संवेदनशील ऐप्स के लिए आदर्श बनता है।
- मॉड्यूलरिटी: इसका आर्किटेक्चर अत्यंत मॉड्यूलर है — कोड और कंपोनेंट्स को व्यवस्थित और पुन: उपयोग करना आसान है।
- सुरक्षा: इसमें इनपुट वेलिडेशन, आउटपुट फ़िल्टरिंग, CSRF/XSS सुरक्षा, ऑथेंटिकेशन व ऑथराइजेशन जैसी अनेक सुरक्षा सुविधाएँ शामिल हैं।
- इस्तेमाल में आसान: सहज API व विस्तृत डाक्यूमेंटेशन इसे सीखना और प्रारंभ करना बहुत आसान बनाते हैं।
- मजबूत सामुदायिक समर्थन: एक सक्रिय डेवलपर समुदाय और तृतीय-पक्ष एक्सटेंशनों की भरमार के साथ, सहायता पाना सहज है।
- इंटीग्रेटेड टूल्स: कमांडलाइन टूल्स के जरिए डेटाबेस माइग्रेशन, कोड जेनरेशन आदि कार्य आसान हो जाते हैं।
Yii 2 एंटरप्राइज-लेवल एप्लिकेशन, RESTful API, पोर्टल साइट्स आदि विभिन्न वेब प्रोजेक्ट्स के लिए आदर्श है।
ServBay में Yii 2 प्रोजेक्ट चलाना
ServBay macOS पर स्थानीय वेब विकास के लिए बनाया गया एक प्लेटफ़ॉर्म है, जिसमें PHP, विभिन्न डेटाबेस (जैसे MySQL, PostgreSQL, MongoDB, Redis), वेब सर्वर (Caddy, Nginx) और अन्य विकास उपकरण (Composer, Node.js, Python, Go, Java आदि) पहले से बिल्ट-इन रहते हैं। यह “आउट-ऑफ-द-बॉक्स” सरल डेवलपमेंट अनुभव प्रदान करता है।
यह गाइड बताएगी कि कैसे ServBay के माध्यम से PHP, Composer और डेटाबेस सेवाओं का उपयोग कर Yii 2 बेसिक ऐप प्रोजेक्ट बनाई और चलाई जाए। हम ServBay की “वेबसाइट” सुविधा का उपयोग कर लोकल वेब सर्वर कॉन्फ़िगर करेंगे, जिससे प्रोजेक्ट को आसान एक्सेस और डेमो किया जा सके।
आवश्यकताएँ
शुरू करने से पहले, सुनिश्चित करें कि:
- आपने macOS पर ServBay सफलतापूर्वक स्थापित और रन किया है।
- ServBay में आवश्यक PHP संस्करण (जैसे PHP 8.3 या उससे नवीनतर) इंस्टॉल और सक्रिय है।
- ServBay में आपका वांछित डेटाबेस (जैसे MySQL या PostgreSQL) और कैशिंग सेवाएं (Memcached व Redis) इंस्टॉल और सक्रिय हैं।
इन सॉफ्टवेयर और उनकी स्थिति ServBay की मुख्य स्क्रीन पर देखी और प्रबंधित की जा सकती हैं।
Yii 2 प्रोजेक्ट बनाना
TIP
ServBay अनुशंसा करता है कि आप अपनी परियोजना फ़ाइलें /Applications/ServBay/www
डायरेक्टरी के भीतर रखें। इससे फ़ोल्डर संरचना व्यवस्थित रहती है और ServBay की “वेबसाइट” सुविधा के तहत प्रबंधन आसान होता है।
Composer: ServBay में Composer टूल पहले से शामिल है, अलग से इंस्टॉलेशन की आवश्यकता नहीं। सीधे टर्मिनल में
composer
कमांड रन करें।प्रोजेक्ट डायरेक्टरी बनाएं: टर्मिनल खोलें, ServBay के डिफॉल्ट वेबसाइट रूट में जाएँ और नया डायरेक्टरी बनाएँ।
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app
1
2
3Composer के साथ Yii 2 प्रोजेक्ट बनाएं:
servbay-yii2-app
डायरेक्टरी में, Composer कमांड द्वारा Yii 2 बेसिक टेम्पलेट इंस्टॉल करें।bashcomposer create-project --prefer-dist yiisoft/yii2-app-basic .
1यह कमांड Yii 2 बेसिक एप्लिकेशन टेम्पलेट और उसके डिपेंडेंसीज़ डाउनलोड व इंस्टॉल कर देती है। कृपया Composer को पूरा होने तक प्रतीक्षा करें।
प्रोजेक्ट डायरेक्टरी में जाएँ: सुनिश्चित करें कि टर्मिनल का करंट डायरेक्टरी
/Applications/ServBay/www/servbay-yii2-app
है। आगे के सभी कमांड यहीं से चलाएं।bashcd /Applications/ServBay/www/servbay-yii2-app
1
शुरुआती कॉन्फ़िगरेशन
Yii 2 प्रोजेक्ट बन जाने के बाद, कुछ बेसिक कॉन्फ़िगरेशन करना ज़रूरी है, खासकर डेटाबेस कनेक्शन और कंपोनेंट्स की।
डेटाबेस कनेक्शन सेट करें: प्रोजेक्ट के रूट में
config/db.php
एडिट करें। अपनी सर्वर सेटिंग के अनुसार उपयुक्त यूज़र और पासवर्ड डालें (आमतौर पर यूज़रroot
और पासवर्डpassword
)। पर, यदि आपने बदला है तो वही डालें।पहले, ServBay के अपने डेटाबेस सर्विस में नया डेटाबेस (जैसे
servbay_yii2_app
) बनाएं। ServBay का Adminer टूल या किसी भी पसंदीदा डेटाबेस क्लाइंट जैसे Sequel Ace, TablePlus आदि का उपयोग कर सकते हैं। Adminer, ServBay ऐप के डेटाबेस सेक्शन से सीधे एक्सेस होता है।MySQL के लिए:
php<?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', // dbname वही दें जो डेटाबेस का नाम है 'username' => 'root', // डेटाबेस यूज़रनेम 'password' => 'password', // डेटाबेस पासवर्ड 'charset' => 'utf8mb4', // व्यापक कैरेक्टर सपोर्ट के लिए utf8mb4 बेहतर है ];
1
2
3
4
5
6
7
8
9PostgreSQL के लिए:
php<?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;port=5432;dbname=servbay_yii2_app', // डेटाबेस नाम और पोर्ट बदलें 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'schemaMap' => [ 'pgsql' => [ 'class' => 'yii\pgsql\Schema', 'defaultSchema' => 'public', // PostgreSQL का डिफॉल्ट schema ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15अपने कॉन्फ़िग के अनुसार
config/db.php
को अपडेट करें।कैश व Redis घटक कॉन्फ़िगर करें: प्रोजेक्ट के रूट में
config/web.php
एडिट करें औरcomponents
में Memcached व Redis की सेटिंग्स जोड़ें। ServBay में डिफॉल्ट Memcached पोर्ट11211
और Redis पोर्ट6379
है।php<?php // ... अन्य सेटिंग्स 'components' => [ // ... पहले से मौजूद कॉन्फ़िग (जैसे request, cache, user, errorHandler, log, urlManager) 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, // Memcached का डिफॉल्ट पोर्ट 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, // Redis का डिफॉल्ट पोर्ट 'database' => 0, // Redis DB इंडेक्स ], // ... अन्य कंपोनेंट्स ], // ... अन्य सेटिंग्स
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सुनिश्चित कर लें कि ServBay में Memcached और Redis सेवाएँ चालू हैं। ध्यान दें, Redis के लिए आपको
yiisoft/yii2-redis
पैकेज इंस्टॉल करना होगा (मूल Composer डिपेंडेंसी में आ सकता है पर कभी-कभी अलग सेcomposer require yiisoft/yii2-redis
करना पड़ता है)। Memcached के लिएyiisoft/yii2-memcached
पैकेज होता है।
वेब सर्वर सेटअप (ServBay वेबसाइट)
ServBay की "वेबसाइट" सुविधा के द्वारा लोकल वेब सर्वर (Caddy/Nginx) को अपने Yii 2 प्रोजेक्ट की ओर पॉइंट करें।
- ServBay ऐप खोलें: ServBay ऐप शुरू करें।
- वेबसाइट सेटिंग पर जाएँ: इंटरफ़ेस में “वेबसाइट” सेक्शन में जाएँ।
- नई वेबसाइट जोड़ें: नया वेबसाइट जोड़ने के लिए
+
याAdd
बटन दबाएँ। - वेबसाइट जानकारी भरें:
- नाम: कोई पहचानने योग्य नाम दें, जैसे
My First Yii 2 Dev Site
। - डोमेन: अपने लोकल डेव डोमेन का नाम — जैसे
servbay-yii2-test.local
(ServBay dns को खुद कॉन्फ़िगर कर 127.0.0.1 पर भेजेगा)। - वेबसाइट टाइप:
PHP
चुनें। - PHP संस्करण: वांछित PHP वर्शन (जैसे
8.3
) चुनें। यह वर्शन इंस्टॉल और एक्टिव होना चाहिए। - वेबसाइट रूट: यह महत्वपूर्ण है। Yii 2 के बेसिक टेम्पलेट में, वेबसाइट का सार्वजनिक प्रवेश बिंदु रूट के
web
डायरेक्टरी में होता है, यानी:/Applications/ServBay/www/servbay-yii2-app/web
।
- नाम: कोई पहचानने योग्य नाम दें, जैसे
- सेव और लागू करें: सेटिंग्स सेव करें। ServBay अपने आप सर्वर कॉन्फ़िगरेशन लागू कर देगा।
इंस्टैंस का विवरण ServBay के दस्तावेज़ पहली वेबसाइट जोड़ना में देखें।
ServBay आपके लोकल डेव डोमेन के लिए SSL सर्टिफिकेट खुद जारी और ट्रस्ट करता है (ServBay User CA या ServBay Public CA के जरिए), जिससे HTTPS के जरिए साइट देखें।
डेमो के लिए उदाहरण कोड जोड़ें
डेटाबेस और कैश के डेमोंस्ट्रेशन हेतु, Yii 2 के डिफ़ॉल्ट कंट्रोलर में कुछ उदाहरण एक्शन जोड़ सकते हैं।
प्रोजेक्ट के रूट में controllers/SiteController.php
फ़ाइल खोलें और SiteController
क्लास में ये तरीके जोड़ें:
php
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
use yii\db\Exception as DbException; // डेटाबेस अपवाद क्लास आयात करें
class SiteController extends Controller
{
/**
* होमपेज दिखाता है।
*
* @return string
*/
public function actionIndex()
{
return $this->render('index');
}
/**
* Memcached उपयोग का डेमो देता है।
*
* @return Response
*/
public function actionMemcached()
{
$cache = Yii::$app->cache;
$key = 'my_memcached_test_key';
$data = 'Hello Memcached from ServBay!';
$duration = 60; // 60 सेकंड के लिए कैश
if ($cache->set($key, $data, $duration)) {
$value = $cache->get($key);
return $this->asText("Memcached सेट सफल। प्राप्त मान: " . $value);
} else {
return $this->asText("Memcached में डाटा सेट करने में विफल। कृपया Memcached सेवा और कॉन्फ़िगरेशन जांचें।");
}
}
/**
* Redis उपयोग का डेमो देता है।
*
* @return Response
*/
public function actionRedis()
{
$redis = Yii::$app->redis;
$key = 'my_redis_test_key';
$data = 'Hello Redis from ServBay!';
try {
if ($redis->set($key, $data)) {
$value = $redis->get($key);
return $this->asText("Redis सेट सफल। प्राप्त मान: " . $value);
} else {
return $this->asText("Redis में डाटा सेट करने में विफल। कृपया Redis सेवा और कॉन्फ़िगरेशन जांचें।");
}
} catch (\yii\base\Exception $e) {
return $this->asText("Redis त्रुटि: " . $e->getMessage() . ". कृपया Redis सेवा और कॉन्फ़िगरेशन जांचें।");
}
}
/**
* डेटाबेस में यूज़र जोड़ने का डेमो।
* यह मानता है कि 'users' तालिका मौजूद है।
*
* @return Response
*/
public function actionMysqlAdd() // PostgreSQL के लिए भी उपयुक्त, सही सेटिंग्स के साथ
{
try {
$count = Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay Demo User', // ब्रांडिंग के अनुसार डेमो नाम
'email' => '[email protected]', // ब्रांडिंग के अनुसार डेमो ईमेल
])->execute();
return $this->asText("यूज़र सफलतापूर्वक जोड़ा गया। प्रभावित पंक्तियाँ: " . $count);
} catch (DbException $e) {
return $this->asText("डेटाबेस में यूज़र जोड़ने में विफल। त्रुटि: " . $e->getMessage() . ". कृपया डेटाबेस सेवा, कॉन्फ़िगरेशन और 'users' तालिका की उपलब्धता जांचें।");
}
}
/**
* डेटाबेस से यूज़र्स प्राप्त करने का डेमो।
* यह मानता है कि 'users' तालिका मौजूद है।
*
* @return Response
*/
public function actionMysql() // PostgreSQL के लिए भी उपयुक्त, सही सेटिंग के साथ
{
try {
$users = Yii::$app->db->createCommand('SELECT id, name, email FROM users')->queryAll();
// बेहतर आउटपुट के लिए स्वरूप निर्धारण, संवेदनशील या असंगत डेटा से बचाव
$output = "प्राप्त यूज़र्स:\n";
foreach ($users as $user) {
$output .= "- ID: {$user['id']}, Name: {$user['name']}, Email: {$user['email']}\n";
}
return $this->asText($output);
} catch (DbException $e) {
return $this->asText("डेटाबेस से यूजर्स लाने में विफल। त्रुटि: " . $e->getMessage() . ". कृपया डेटाबेस सेवा, कॉन्फ़िग व 'users' तालिका जांचें।");
}
}
// यदि आप PostgreSQL का उपयोग करते हैं, अलग एक्शन जोड़ सकते हैं, पर अक्सर db कॉम्पोनेंट साझा किया जा सकता है।
// public function actionPgsqlAdd() { ... }
// public function actionPgsql() { ... }
/**
* आउटपुट को प्लेन टेक्स्ट के रूप में स्वरूपित करता है।
* @param string $text
* @return Response
*/
protected function asText($text)
{
Yii::$app->response->format = Response::FORMAT_RAW;
Yii::$app->response->getHeaders()->add('Content-Type', 'text/plain');
return $text;
}
/**
* आउटपुट को JSON के रूप में स्वरूपित करता है।
* @param mixed $data
* @return Response
*/
protected function asJson($data)
{
Yii::$app->response->format = Response::FORMAT_JSON;
return $data;
}
}
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
ध्यान दें, मैंने actionMysqlAdd
और actionMysql
में त्रुटि हैंडलिंग जोड़ी है और आउटपुट स्वरूपित (formatted) किया है। साथ ही, डेमो यूज़र और ईमेल ServBay ब्रांड अनुसार बदला।
अब, प्रोजेक्ट के views/site/index.php
में जो actionIndex को दिखाता है, अपनी आवश्यकता अनुसार बदलें या डिफ़ॉल्ट रखें:
php
<?php
/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */
use yii\helpers\Html;
$this->title = 'My Yii2 Application on ServBay'; // शीर्षक अपडेट करें
?>
<div class="site-index">
<div class="jumbotron">
<h1>शुभकामनाएँ!</h1>
<p class="lead">आपने सफलतापूर्वक Yii2 एप्लिकेशन बनाया व उसे ServBay पर कॉन्फ़िगर किया!</p>
<p><a class="btn btn-lg btn-success" href="https://www.yiiframework.com">Yii के साथ शुरू करें</a></p>
</div>
<div class="body-content">
<h2>डेमोंस्ट्रेशन</h2>
<ul>
<li><a href="<?= Html::toRoute('site/memcached') ?>">Memcached टेस्ट करें</a></li>
<li><a href="<?= Html::toRoute('site/redis') ?>">Redis टेस्ट करें</a></li>
<li><a href="<?= Html::toRoute('site/mysql-add') ?>">DB में यूज़र जोड़ें</a> (आवश्यक: 'users' तालिका)</li>
<li><a href="<?= Html::toRoute('site/mysql') ?>">DB से यूज़र्स लाएँ</a> (आवश्यक: 'users' तालिका)</li>
</ul>
<p>कृपया सुनिश्चित करें कि ServBay में Memcached, Redis और वांछित डेटाबेस सेवा चली हुई है और `config/web.php` व `config/db.php` में इनकी कॉन्फ़िगरेशन सही है।</p>
<p>डेटाबेस उदाहरणों के लिए, आपको Yii माईग्रेशन चलते हुए 'users' तालिका बनानी होगी (नीचे विवरण देखें)।</p>
</div>
</div>
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
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
मैंने डेमो एक्शन के लिए लिंक भी जोड़ दिए हैं।
रिलेशनल डेटाबेस: टेबल स्ट्रक्चर बनाना (माईग्रेशन)
यदि आप डेटाबेस संबंधित उदाहरण (actionMysqlAdd
, actionMysql
) आज़माना चाहते हैं, तो पहले users
टेबल बना लें। Yii में यह माइग्रेशन के ज़रिए होता है।
Gii टूल से माइग्रेशन फाइल बनाएं: प्रोजेक्ट रूट
/Applications/ServBay/www/servbay-yii2-app
में टर्मिनल खोलकर ये रन करें:bashphp yii migrate/create create_users_table
1yes
टाइप कर पुष्टि करें। इससेmigrations
में एक नई PHP फाइल बनेगी, नाम कुछ ऐसा होगाmYYYYMMDD_HHMMSS_create_users_table.php
।माइग्रेशन फाइल एडिट करें: बनाई गई फाइल खोलकर उसके
up()
मेथड में यूजर्स टेबल का स्ट्रक्चर लिखें।php<?php use yii\db\Migration; /** * Handles the creation of table `{{%users}}`. */ class mXXXXXXXXXXXXXX_create_users_table extends Migration // XXXXXXXXXXXXXX टाइमस्टैम्प है { /** * {@inheritdoc} */ public function up() { $this->createTable('{{%users}}', [ // टेबल प्रीफिक्स सपोर्ट के लिए 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); // वैकल्पिक: क्वेरी परफ़ॉर्मेंस के लिए इंडेक्स $this->createIndex( 'idx-users-email', '{{%users}}', 'email', true // true = यूनिक इंडेक्स ); } /** * {@inheritdoc} */ public function down() { // इंडेक्स हटाएँ $this->dropIndex( 'idx-users-email', '{{%users}}' ); // टेबल हटाएँ $this->dropTable('{{%users}}'); } }
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
46mXXXXXXXXXXXXXX_create_users_table
अपने असली फाइल नेम से बदलें।माइग्रेशन चलाएँ: रूट में ही रहें और ये कमांड चलाएँ:
bashphp yii migrate
1yes
टाइप कर पुष्ट करें। सब ठीक रहा तो टेबल बन जाएगी।
वेबसाइट पर जाएँ और परिक्षण करें
अब ब्राउज़र खोलिए और ServBay में अपनी सेट की गई डोमेन https://servbay-yii2-test.local
खोलिए।
https://servbay-yii2-test.local
पर जाएं — आपको Yii 2 बेसिक टेम्पलेट का वेलकम पेज और डेमो लिंक्स दिखेंगे।- "Memcached टेस्ट करें" पर क्लिक करें या
https://servbay-yii2-test.local/index.php?r=site/memcached
खोलें — यदि सब ठीक है तो "Memcached सेट सफल..." का मैसेज आएगा। - "Redis टेस्ट करें" पर क्लिक या
https://servbay-yii2-test.local/index.php?r=site/redis
खोलें — यदि Redis सर्विस भी चालू व सही कॉन्फ़िग है तो "Redis सेट सफल..." दिखेगा। - "DB में यूज़र जोड़ें" या
https://servbay-yii2-test.local/index.php?r=site/mysql-add
खोलें — माइग्रेशन के बाद और डेटाबेस सर्विस ठीक हो तो "यूज़र सफलतापूर्वक जोड़ा गया..." दिखेगा। - "DB से यूज़र्स लाएँ" या
https://servbay-yii2-test.local/index.php?r=site/mysql
— माइग्रेशन के बाद यह डेटाबेस के यूज़र दिखाएगा।
यदि कोई समस्या आए, तो ServBay की संबंधित सेवाओं (PHP, वेब सर्वर, डेटाबेस, Memcached, Redis) की स्थिति चेक करें; अपनी Yii 2 कॉन्फ़िग फाइलें (config/db.php
, config/web.php
) चेक करें; और सुनिश्चित करें कि माइग्रेशन सफल रहा।
सामान्य प्रश्न (FAQ)
- डोमेन खोलने पर “वेबसाइट नहीं मिल सकी” या सर्टिफिकेट एरर क्यों आ रही है? वेबसाइट सेटिंग में डोमेन सही डालें और ServBay ऐप चालू रखें। ServBay अपने आप लोकल DNS और SSL सेट करता है। अगर सर्टिफिकेट की समस्या है तो ServBay User CA या ServBay Public CA को ट्रस्ट करें। विस्तृत निर्देश ServBay डाक्यूमेंटेशन में पाएँ।
- Composer कमांड नहीं चल रहा? देखिए Composer पैकेज चालू है व आप macOS टर्मिनल में कमांड चला रहे हैं — ServBay, Composer अपने आप PATH में जोड़ देता है।
- डेटाबेस कनेक्शन बा-नहीं हो रहा? संबंधित डेटाबेस सेवा (MySQL/PostgreSQL) चालू है या नहीं देखें।
config/db.php
में DSN, यूज़र, पासवर्ड ठीक हैं या नहीं और डेटाबेस (जैसेservbay_yii2_app
) बना हुआ है या नहीं, जांचें। Adminer टूल से भी देखें। - Memcached/Redis कनेक्शन फेल? ये सेवाएं चल रही हैं या नहीं और
config/web.php
में होस्ट व पोर्ट डिफॉल्ट (127.0.0.1, पोर्ट 11211 / 6379) हैं या नहीं, जांचें। - माइग्रेशन (
php yii migrate
) फेल?config/db.php
सही कॉन्फ़िग, डेटाबेस सेवा चालू व डेटाबेस बना हो — सब चेक करें। actionMysqlAdd
/actionMysql
टेबल मौजूद नहीं कह रहे? पहले माइग्रेशन (php yii migrate
) चला कर 'users' टेबल खड़ी करें।- PHP एरर लॉग कहाँ देखें? ServBay के “लॉग” सेक्शन में PHP व वेब सर्वर लॉग्स एक जगह मिलेंगे — डिबग के लिए वे देखें।
निष्कर्ष
ServBay की मदद से आप macOS पर पूरी तरह कार्यशील लोकल डेवलपमेंट एनवायरनमेंट में आसानी से Yii 2 प्रोजेक्ट्स चला सकते हैं। Composer, PHP संस्करण प्रबंधन, इन-बिल्ट डेटाबेस व कैशिंग सेवाएं और सरल वेबसाइट कॉन्फ़िगरेशन आपकी विकास प्रक्रिया को बहुत सरल और तेज बनाते हैं। इस गाइड के माध्यम से आप जल्दी से अपना Yii 2 डेवलपमेंट शुरू कर सकते हैं और ServBay के टूल्स से अपनी उत्पादकता बढ़ा सकते हैं।
आपका विकास सफल रहे!