ServBay के साथ CakePHP प्रोजेक्ट बनाएं और चलाएं
ServBay एक लोकल वेब डेवलपमेंट एनवायरनमेंट है जो macOS और Windows दोनों को सपोर्ट करता है। यह PHP, Node.js, Python, Go, Java जैसी कई प्रोग्रामिंग लैंग्वेज के साथ-साथ MySQL, PostgreSQL, MongoDB, Redis जैसी डेटाबेस सेवाएं और Caddy या Nginx वेब सर्वर को इंटीग्रेट करता है। ServBay एक आसान और कुशल प्लेटफ़ॉर्म मुहैया कराता है, जिससे डेवलपर्स अपने लोकल प्रोजेक्ट को आसानी से सेटअप और मैनेज कर सकते हैं।
यह लेख आपको ServBay एनवायरनमेंट में CakePHP प्रोजेक्ट बनाने, कॉन्फ़िगर करने और चलाने की विस्तृत प्रक्रिया बताएगा। CakePHP एक लोकप्रिय PHP वेब डेवलपमेंट फ्रेमवर्क है जो MVC (मॉडल-व्यू-कंट्रोलर) पैटर्न पर आधारित है। यह तेज़ विकास, शक्तिशाली ORM और इनबिल्ट सिक्योरिटी फीचर्स के लिए जाना जाता है। ServBay की सुविधा के साथ, आप तुरंत CakePHP में डेवलपमेंट शुरू कर सकते हैं।
CakePHP क्या है?
CakePHP एक ओपन-सोर्स PHP वेब एप्लिकेशन फ्रेमवर्क है, जो वेब एप्लिकेशन को तेज़ी और संरचित ढंग से बनाने के लिए बेसिक आर्किटेक्चर देता है। यह "कंवेंशन ओवर कॉन्फ़िगरेशन" के सिद्धांत का पालन करता है जिससे सामान्य डेवलपमेंट कार्य आसान हो जाते हैं।
CakePHP की प्रमुख विशेषताएं और फ़ायदे
- MVC पैटर्न: कोड का स्पष्ट संगठन, रखरखाव और विस्तार आसान।
- तेज़ विकास: कमांड लाइन टूल (Bake) से कोड जनरेट करें, जिससे विकास गति बढ़ती है।
- पावरफुल ORM: डेटाबेस इंटरैक्शन आसान और बहु-डेटाबेस सपोर्ट।
- इनबिल्ट सिक्योरिटी: CSRF सुरक्षा, SQL Injection से बचाव और इनपुट वेलिडेशन।
- लचीलापन: व्यू लेयर के लिए कई टेम्पलेट विकल्प।
- सक्रिय समुदाय और प्लगइन सपोर्ट: समस्या आने पर सहायता उपलब्ध और एक्सटेंशन के लिए कई विकल्प।
- विस्तृत डॉक्यूमेंटेशन: पूरे गाइड और API रेफरेंस।
CakePHP छोटे API से लेकर बड़े एंटरप्राइज लेवल साइट्स तक सभी वेब एप्लिकेशन बनाने के लिए उपयुक्त है।
ServBay के साथ CakePHP डेवलपमेंट एनवायरनमेंट सेटअप
ServBay CakePHP विकास हेतु अनुकूलित इंटीग्रेशन ऑफर करता है, जिसमें शामिल हैं:
- प्री-इंस्टॉल्ड PHP इंटरप्रेटर और आवश्यक एक्सटेंशन।
- Composer पैकेज मैनेजर पहले से इंस्टॉल।
- वेब सर्वर (Caddy या Nginx) आसानी से कॉन्फ़िगर।
- इंटीग्रेटेड डेटाबेस सेवाएं (MySQL, PostgreSQL, Redis आदि)।
ServBay के माध्यम से आप इन्हें मैन्युअली इंस्टॉल और कॉन्फ़िगर करने की परेशानी से बच सकते हैं।
आवश्यकताएँ
शुरू करने से पहले, निम्नलिखित तैयारियां सुनिश्चित करें:
- ServBay इंस्टॉल करें: अपने macOS सिस्टम पर ServBay डाउनलोड और इंस्टॉल करें।
- ServBay सर्विसेस शुरू करें: ServBay ऐप खोलें और आवश्यक पैकेज (जैसे PHP, चुना हुआ डेटाबेस - MySQL या PostgreSQL, तथा Redis या Memcached) शुरू करें। इन्हें ServBay कंट्रोल पैनल में "पैकेज" टैब से मैनेज करें।
- ServBay बेसिक ऑपरेशन जानें: ServBay में वेबसाइट कैसे ऐड और सेटअप करें, इसकी जानकारी हो। अगर नहीं जानते, तो ServBay शुरुआती गाइड पढ़ें।
CakePHP प्रोजेक्ट बनाना
ServBay आपकी वेबसाइट फाइल्स को /Applications/ServBay/www
डायरेक्टरी में रखने का सुझाव देता है ताकि वेब प्रोजेक्ट की ऑटोमैटिक पहचान और मैनेजमेंट आसान हो।
टर्मिनल खोलें
macOS में टर्मिनल ऐप ओपन करें।
ServBay वेबसाइट रूट डायरेक्टरी पर जाएं
वेबसाइट स्टोरेज की अनुशंसित डायरेक्टरी में नेविगेट करें:
bashcd /Applications/ServBay/www
1प्रोजेक्ट के लिए डायरेक्टरी बनाएं
CakePHP प्रोजेक्ट के लिए एक नया सबडायरेक्ट्री बनाएं, उदाहरण:
servbay-cakephp-app
:bashmkdir servbay-cakephp-app cd servbay-cakephp-app
1
2Composer से CakePHP प्रोजेक्ट बनाएं
ServBay में Composer पहले से इंस्टॉल है। अब प्रोजेक्ट डायरेक्ट्री में CakePHP स्केलेटन इंस्टॉल करें:
bashcomposer create-project --prefer-dist cakephp/app .
1यह कमांड CakePHP का लेटेस्ट स्टेबल वर्शन और डिपेंडेंसी डाउनलोड करके इनस्टॉल कर देगा।
ORM ड्राइवर इंस्टॉल करें (अगर PostgreSQL इस्तेमाल करते हैं)
PostgreSQL डेटाबेस के लिए CakePHP ORM ड्राइवर इंस्टॉल करें:
bashcomposer require cakephp/orm-pgsql
1MySQL के लिए अलग ड्राइवर इंस्टॉल करने की आवश्यकता नहीं होती, वह Core में शामिल है।
इनिशियल कॉन्फ़िगरेशन
प्रोजेक्ट बन जाने के बाद मुख्य रूप से डेटाबेस कनेक्शन की सेटिंग करनी होती है।
एनवायरनमेंट वेरिएबल और डेटाबेस कनेक्शन सेट करें
CakePHP के लोकल एनवायरनमेंट की सेटिंग
config/app_local.php
में रहती है। इसमेंDatasources
सेक्शन में डेटाबेस कनेक्शन सेट करें। ServBay का डिफ़ॉल्ट यूजर नेम सामान्यतःroot
और पासवर्डpassword
रहता है।उदाहरण, MySQL डेटाबेस कनेक्शन सेट करें:
php// config/app_local.php 'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, // या \Cake\Database\Driver\Postgres::class PostgreSQL के लिए 'persistent' => false, 'host' => '127.0.0.1', // डेटाबेस सर्वर, ServBay में लोकल //'port' => '3306', // MySQL के लिए डिफ़ॉल्ट पोर्ट 3306, PostgreSQL के लिए 5432 'username' => 'root', // ServBay का डिफ़ॉल्ट यूजरनेम 'password' => 'password', // ServBay का डिफ़ॉल्ट पासवर्ड 'database' => 'servbay_cakephp_app', // आपका डेटाबेस नाम 'encoding' => 'utf8mb4', 'timezone' => 'UTC', 'flags' => [], 'cacheMetadata' => true, 'log' => false, /** * अगर आप "user" जैसा वर्ड टेबल का नाम रखते हैं तो identifier quoting true करें। * "cake" जैसे नाम के लिए false रखें। * संदेह है तो true रखें। */ 'quoteIdentifiers' => false, /** * वर्तमान सीमाएँ: * - अधिकतर ड्राइवर्स PDO options से isolation level सेट नहीं कर सकते। * - सभी ड्राइवर्स charset सेटिंग सपोर्ट नहीं करते। * - Packaged drivers जैसे CakePHP का Postgres, सिर्फ encoding सेटिंग की आवश्यकता होती है। */ 'options' => [], //'url' => env('DATABASE_URL', null), // अगर DATABASE_URL एनवायरनमेंट वेरिएबल प्रयोग करते हैं तो इसे सक्षम करें ], ],
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अपने डेटाबेस (MySQL या PostgreSQL) के अनुसार
driver
औरport
सेट करें।database
नाम भी आपके बनाए डेटाबेस से मेल खाना चाहिए।
वेब सर्वर कॉन्फ़िगरेशन (ServBay में वेबसाइट बनाना)
CakePHP प्रोजेक्ट को ब्राउज़र से चलाने के लिए ServBay में एक वेबसाइट बनाकर उसे आपके प्रोजेक्ट डायरेक्ट्री से जोड़ना होगा।
ServBay कंट्रोल पैनल खोलें
ServBay आइकन पर क्लिक करके कंट्रोल पैनल खोलें।
"वेबसाइट" टैब पर जाएं
कंट्रोल पैनल के बाएं हिस्से में "वेबसाइट" (या पूर्व में 'होस्ट') चुनें।
नई वेबसाइट जोड़ें
नीचे दिए
+
बटन पर क्लिक कर नई वेबसाइट ऐड करें:- नाम: वेबसाइट के लिए कोई पहचान योग्य नाम दें, जैसे
My CakePHP Dev Site
। - डोमेन: लोकल डेवलपमेंट डोमेन सेट करें, जैसे
servbay-cakephp-test.local
। ServBay इसे लोकल पर प्रबंधित कर लेता है। - साइट टाइप:
PHP
चुनें। - PHP वर्शन: CakePHP वर्शन के अनुसार उपयुक्त PHP चुनें (CakePHP 4+ के लिए PHP 7.4+, CakePHP 5+ के लिए PHP 8.1+, उदाहरण:
8.3
)। - डॉक्यूमेंट रूट: अत्यंत आवश्यक! Webroot को सेट करें – प्रोजेक्ट मुख्य डायरेक्ट्री नहीं बल्कि
webroot
डायरेक्ट्री। सेट करें:/Applications/ServBay/www/servbay-cakephp-app/webroot
(servbay-cakephp-app
को अपने प्रोजेक्ट की डायरेक्ट्री से बदलें)।
- नाम: वेबसाइट के लिए कोई पहचान योग्य नाम दें, जैसे
सहेजें और बदलाव लागू करें
सारी जानकारी भरकर राइट साइड के नीचे सेव करें। बदलाव लागू करने का विकल्प आयेगा, पुष्टि करें। ServBay आपका वेब सर्वर (Caddy या Nginx) अपनेआप सेट कर देगा और
servbay-cakephp-test.local
को आपके प्रोजेक्ट केwebroot
डायरेक्ट्री से जोड़ देगा।
विस्तृत वेबसाइट ऐडिंग चरण ServBay डॉक्युमेंटेशन के पहली वेबसाइट ऐड करने की गाइड में देख सकते हैं।
बेसिक सेटअप का सत्यापन
अब आप अपने ब्राउज़र से सेट की हुई लोकल वेबसाइट खोल सकते हैं।
ब्राउज़र में जाएं और अपने चुने डोमेन को खोलें, जैसे: https://servbay-cakephp-test.local
सही सेटिंग्स हो तो आपको CakePHP का डिफ़ॉल्ट Welcome पेज दिखेगा। यानी PHP, वेब सर्वर और ServBay की साइट कॉन्फ़िगरेशन – सब सही चल रही है।
डेटाबेस और कैशिंग सर्विस इंटीग्रेशन
CakePHP में ORM और कैशिंग के लिए शक्तिशाली एब्स्ट्रैक्शन लेयर है, जिससे ServBay की डेटाबेस और कैशिंग सर्विसेज़ जोड़ी जा सकती हैं।
रिलेशनल डेटाबेस उदाहरण (MySQL / PostgreSQL)
यह उदाहरण दिखाता है कि कैसे CakePHP ORM से ServBay के MySQL या PostgreSQL डेटाबेस से जुड़ें, एक सिंपल users
टेबल बनाएं और CRUD ऑपरेशन करें।
ServBay में डेटाबेस बनाएं
सबसे पहले ServBay के डेटाबेस सर्वर में नया डेटाबेस बनाएं। ServBay के मैनेजमेंट टूल (phpMyAdmin - MySQL/MariaDB, pgAdmin - PostgreSQL, या Navicat/DBeaver जैसे थर्ड पार्टी टूल) से कनेक्ट करें (
127.0.0.1
, यूज़र:root
, पासवर्ड:password
), फिर नयाservbay_cakephp_app
नाम का डेटाबेस बनाएं।ORM Model फाइल बनाएं
CakePHP ORM को मॉडल फाइल चाहिए जो डेटाबेस टेबल को रिप्रजेंट करे।
UsersTable.php
फाइल बनाकरusers
टेबल मैप करें।इसे
src/Model/Table/UsersTable.php
में सेव करें:php<?php namespace App\Model\Table; use Cake\ORM\Table; use Cake\Validation\Validator; // अगर वेलिडेशन की आवश्यकता हो class UsersTable extends Table { /** * इनिशियलाइज़ मेथड * * @param array $config टेबल की सेटिंग्स। * @return void */ public function initialize(array $config): void { parent::initialize($config); $this->setTable('users'); // जिस टेबल को लिंक करना है $this->setDisplayField('name'); // डिफ़ॉल्ट डिस्प्ले फील्ड सेट करें $this->setPrimaryKey('id'); // प्राइमरी की सेट करें // अगर टाईमस्टैम्प व्यवहार चाहिए तो // $this->addBehavior('Timestamp'); } /** * डिफ़ॉल्ट वेलिडेशन रूल। * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator): Validator { $validator ->scalar('name') ->maxLength('name', 255) ->requirePresence('name', 'create') ->notEmptyString('name'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmptyString('email') ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); // Email को यूनिक रखें return $validator; } }
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
49Bake टूल से माइग्रेशन फाइल बनायें
डेटाबेस संरचना को मैनेज करने हेतु माइग्रेशन इस्तेमाल करें। प्रोजेक्ट रूट (
/Applications/ServBay/www/servbay-cakephp-app
) में CakePHP का Bake टूल चलाएँ:bashbin/cake bake migration CreateUsers name:string email:string:unique
1यह कमांड
users
टेबल के लिए नाम (string टाइप) और email (string, लेकिन यूनिक) के लिए माइग्रेशन फाइल बना देगा।माइग्रेशन रन करें
माइग्रेशन कमांड रन करके
users
टेबल डेटाबेस में बना दें:bashbin/cake migrations migrate
1सफल माइग्रेशन के बाद डेटाबेस में नया
users
टेबल दिखेगा।डाटा बेस कनेक्शन कॉन्फ़िगर करें (अगर नहीं किया हो)
config/app_local.php
केDatasources.default
में सही डेटाबेस, ड्राइवर और क्रेडेंशियल सेट हों।MySQL उदाहरण:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Mysql::class, 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_cakephp_app', // अन्य सेटिंग्स ], ],
1
2
3
4
5
6
7
8
9
10
11PostgreSQL उदाहरण:
php'Datasources' => [ 'default' => [ 'className' => \Cake\Database\Connection::class, 'driver' => \Cake\Database\Driver\Postgres::class, 'host' => '127.0.0.1', // 'port' => '5432', // डिफ़ॉल्ट पोर्ट 'username' => 'root', // ServBay का डिफ़ॉल्ट यूजरनेम 'password' => 'password', // ServBay का डिफ़ॉल्ट पासवर्ड 'database' => 'servbay_cakephp_app', // अन्य सेटिंग्स ], ],
1
2
3
4
5
6
7
8
9
10
11
12
उदाहरण रूट और कंट्रोलर मेथड जोड़ें
config/routes.php
में रूट जोड़ें ताकि डाटा ऐड और देखें:php// config/routes.php use Cake\Routing\RouteBuilder; use Cake\Routing\Router; use Cake\Routing\Route\DashedRoute; Router::defaultRouteClass(DashedRoute::class); Router::scope('/', function (RouteBuilder $routes) { // अन्य रूट्स $routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); // डेटाबेस उदाहरण रूट्स ऐड करें $routes->connect('/db-add-user', ['controller' => 'Pages', 'action' => 'dbAddUser']); $routes->connect('/db-list-users', ['controller' => 'Pages', 'action' => 'dbListUsers']); // अन्य रूट्स $routes->fallbacks(DashedRoute::class); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18फिर
src/Controller/PagesController.php
में डेटाबेस ऑपरेशन के लिए मेथड्स ऐड करें:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\ORM\TableRegistry; use Cake\Datasource\Exception\RecordNotFoundException; // रिकार्ड न मिलने पर उपयोग class PagesController extends AppController { /** * व्यू दिखाएं * * @param array ...$path पाथ सेगमेंट्स। * @return \Cake\Http\Response|null */ public function display(...$path): ?Response { // ... डिफ़ॉल्ट display मेथड return new Response(['body' => 'Hello ServBay! यह डिफ़ॉल्ट पेज है।']); } /** * डेटाबेस उदाहरण: यूजर ऐड करें */ public function dbAddUser(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // Users Table इंस्टीन्स प्राप्त करें // नया यूजर बनाएं $user = $usersTable->newEntity([ 'name' => 'ServBay Demo User', 'email' => 'servbay-demo@servbay.test' // ServBay ब्रांड का उदाहरण ईमेल ]); // डेटाबेस में सेव करने की कोशिश करें if ($usersTable->save($user)) { return new Response(['body' => 'यूजर सफलतापूर्वक ऐड हुआ! यूजर ID: ' . $user->id]); } else { // सेव फेल होने पर, वेलिडेशन या अन्य त्रुटियाँ $errors = $user->getErrors(); // वेलिडेशन त्रुटियाँ प्राप्त करें return new Response(['body' => 'यूजर ऐड नहीं हुआ। एरर: ' . json_encode($errors)]); } } /** * डेटाबेस उदाहरण: सभी यूजर लिस्ट करें */ public function dbListUsers(): Response { $usersTable = TableRegistry::getTableLocator()->get('Users'); // Users Table इंस्टीन्स प्राप्त करें // सभी यूज़र प्राप्त करें $users = $usersTable->find()->all(); // नतीजे को JSON में दिखाएं return new Response(['body' => json_encode($users->toArray())]); // toArray() से कलेक्शन को ऐरे बनाएं } }
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डेटाबेस उदाहरण देखें
ब्राउज़र खोलकर:
https://servbay-cakephp-test.local/db-add-user
खोलें – एक यूज़र ऐड होगा, सफलता का संदेश दिखेगा।https://servbay-cakephp-test.local/db-list-users
खोलें – सभी यूजरों की लिस्ट (आपका नया यूजर भी दिखेगा) देख सकते हैं।
इन स्टेप्स से आपने CakePHP प्रोजेक्ट को ServBay के रिलेशनल डेटाबेस से जोड़कर बेसिक ORM ऑपरेशन पूरे कर लिए।
कैशिंग सर्विस उदाहरण (Memcached / Redis)
CakePHP में एकीकृत कैशिंग API है, जिससे आसानी से Memcached या Redis पर स्विच किया जा सकता है। ServBay में PHP की Memcached और Redis एक्सटेंशन-प्रीइंस्टॉल्ड हैं, और सर्विसेस भी उपलब्ध हैं।
पहले ServBay के कंट्रोल पैनल के "पैकेज" टैब से Memcached या Redis सर्विस चालू करें।
कैशिंग कनेक्शन सेट करें
config/app_local.php
कीCache
सेक्शन में अपनी कैशिंग सर्विस कॉन्फ़िगर करें।Memcached सेटअप:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\MemcachedEngine::class, 'servers' => ['127.0.0.1:11211'], // ServBay के डिफ़ॉल्ट Memcached एड्रेस और पोर्ट 'prefix' => 'servbay_cakephp_', // कैश की का प्रिफिक्स ], // अन्य कैशिंग सेटिंग्स ],
1
2
3
4
5
6
7
8
9Redis सेटअप:
php// config/app_local.php 'Cache' => [ 'default' => [ 'className' => \Cake\Cache\Engine\RedisEngine::class, 'host' => '127.0.0.1', // ServBay के डिफ़ॉल्ट Redis एड्रेस 'port' => 6379, // ServBay के डिफ़ॉल्ट Redis पोर्ट 'password' => null, // अगर Redis में पासवर्ड है तो डालें 'database' => 0, // Redis डेटाबेस इंडेक्स 'prefix' => 'servbay_cakephp_', // कैश की का प्रिफिक्स ], // अन्य कैशिंग सेटिंग्स ],
1
2
3
4
5
6
7
8
9
10
11
12
अपनी चुनी हुई कैशिंग सर्विस आधार पर सेट करें।
उदाहरण रूट और कंट्रोलर मेथड जोड़ें
config/routes.php
में कैशिंग उदाहरण के रूट जोड़ें:php// config/routes.php // अन्य रूट्स $routes->connect('/cache-memcached', ['controller' => 'Pages', 'action' => 'cacheMemcached']); $routes->connect('/cache-redis', ['controller' => 'Pages', 'action' => 'cacheRedis']); // अन्य रूट्स
1
2
3
4
5फिर
src/Controller/PagesController.php
में कैशिंग ऑपरेशन के लिए मेथड्स ऐड करें:php<?php namespace App\Controller; use Cake\Http\Response; use Cake\Cache\Cache; // Cache क्लास class PagesController extends AppController { // अन्य मेथड्स (display, dbAddUser, dbListUsers) /** * कैशिंग उदाहरण: Memcached प्रयोग करें */ public function cacheMemcached(): Response { // "default" कैशिंग config में MemcachedEngine होना चाहिए $cacheKey = 'servbay_memcached_test_key'; $cachedData = Cache::read($cacheKey); // कैश से पढ़ें $responseBody = ''; if ($cachedData === false) { // कैश मिस $responseBody = 'Cache miss! "Hello Memcached!" कैश में लिख रहे हैं।'; $dataToCache = 'Hello Memcached!'; Cache::write($cacheKey, $dataToCache, 'default'); // डेटा Memcached में लिखें } else { // कैश हिट $responseBody = 'Cache hit! कैश से डेटा: ' . $cachedData; } return new Response(['body' => $responseBody]); } /** * कैशिंग उदाहरण: Redis प्रयोग करें */ public function cacheRedis(): Response { // "default" कैशिंग config में RedisEngine होना चाहिए $cacheKey = 'servbay_redis_test_key'; $cachedData = Cache::read($cacheKey); // कैश से पढ़ें $responseBody = ''; if ($cachedData === false) { // कैश मिस $responseBody = 'Cache miss! "Hello Redis!" कैश में लिख रहे हैं।'; $dataToCache = 'Hello Redis!'; Cache::write($cacheKey, $dataToCache, 'default'); // डेटा Redis में लिखें } else { // कैश हिट $responseBody = 'Cache hit! कैश से डेटा: ' . $cachedData; } return new Response(['body' => $responseBody]); } }
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कैशिंग उदाहरण देखें
ब्राउज़र खोलें:
- अगर Memcached सेटअप किया,
https://servbay-cakephp-test.local/cache-memcached
खोलें। पहली बार "Cache miss", और रीफ्रेश करने पर "Cache hit" दिखेगा। - Redis सेटअप किया,
https://servbay-cakephp-test.local/cache-redis
खोलें। इसी प्रकार परिणाम दिखेगा।
- अगर Memcached सेटअप किया,
इसका मतलब है कि आपके CakePHP प्रोजेक्ट की ServBay कैशिंग सर्विस इंटीग्रेशन सफल रही।
ध्यान रखने योग्य बातें
- डेटाबेस क्रेडेंशियल: ServBay का डिफ़ॉल्ट डेटाबेस यूजर/पासवर्ड (
root
/password
) केवल लोकल विकास के लिए है। प्रोडक्शन में सुरक्षित क्रेडेंशियल उपयोग करें। - वेबसाइट रूट डायरेक्ट्री: बिलकुल ध्यान रखें कि वेब सर्वर की "डॉक्यूमेंट रूट" CakePHP प्रोजेक्ट के "webroot" डायरेक्ट्री पर पॉइंट करे, मुख्य डायरेक्ट्री पर नहीं।
- PHP वर्शन संगतता: ServBay में चुना PHP वर्शन आपके CakePHP वर्शन से मेल खाना चाहिए। पहले CakePHP डॉक्यूमेंटेशन की जाँच करें।
- ServBay पोर्ट: अगर ServBay के डिफ़ॉल्ट पोर्ट (जैसे 80 या 443) किसी अन्य ऐप के उपयोग में हैं, तो ServBay सेटिंग्स से पोर्ट बदलें और आवश्यकतानुसार hosts फाइल या पोर्ट के साथ एक्सेस करें।
सामान्य प्रश्न (FAQ)
- Q:
servbay-cakephp-test.local
खोलने पर "पेज नहीं मिला" एरर?- A: ServBay साइट की "डॉक्यूमेंट रूट" की सेटिंग जांचें – ज़रूरी है कि
/Applications/ServBay/www/servbay-cakephp-app/webroot
सेट हो। - ServBay का Web server (Caddy/Nginx) चालू है या नहीं, जांचें।
- सिस्टम की hosts फाइल में
servbay-cakephp-test.local
को127.0.0.1
पर रीडायरेक्ट हो रहा है या नहीं (ServBay आमतौर पर खुद करता है, लेकिन कभी कभी मैन्युअल चेक करें)। - CakePHP प्रोजेक्ट की
.htaccess
या web server config सही सेट है या नहीं।
- A: ServBay साइट की "डॉक्यूमेंट रूट" की सेटिंग जांचें – ज़रूरी है कि
- Q: डेटाबेस कनेक्शन फेल हो रहा?
- A: ServBay में चुना डेटाबेस सर्विस (MySQL/PostgreSQL) चालू है या नहीं, जांचें।
config/app_local.php
में डेटाबेस कनेक्शन सेटिंग्स (host, port, username, password, database) सही हैं या नहीं।- डेटाबेस सर्वर में
servbay_cakephp_app
नाम का डेटाबेस बना है या नहीं।
- Q: Composer कमांड (
bin/cake
) नहीं चल रहा?- A: सुनिश्चित करें कि टर्मिनल में आप प्रोजेक्ट डायरेक्ट्री में हैं (
/Applications/ServBay/www/servbay-cakephp-app
)। - ServBay का PHP और Composer पैकेज चालू हों।
- टर्मिनल में
php
कमांड उपलब्ध है या नहीं। (ServBay आमतौर पर PHP PATH में जोड़ता है)।
- A: सुनिश्चित करें कि टर्मिनल में आप प्रोजेक्ट डायरेक्ट्री में हैं (
निष्कर्ष
ServBay के माध्यम से आप CakePHP प्रोजेक्ट का लोकल डेवलपमेंट एनवायरनमेंट सरलता और गति के साथ सेटअप कर सकते हैं। ServBay में बिल्ट-इन PHP, Composer, वेब सर्वर और डेटाबेस सेवाएं कॉन्फ़िगरेशन प्रोसेस को बेहद आसान बनाती हैं। इस लेख में प्रोजेक्ट क्रिएशन, बेसिक सेटअप, वेब सर्वर, डेटाबेस और कैशिंग इंटीग्रेशन जैसी सारी प्रक्रिया समझाई गई है। ServBay की सुविधा से आप कोडिंग पर ध्यान केंद्रित कर सकते हैं, एनवायरनमेंट सेटअप की झंझट के बिना।