Creating subdomains in Xampp for local development on Windows XP (हिंदी)

Translation Note: The Hindi version of this content is being displayed because the English translation is unavailable.

मैं अपने local PC पर development and testing के लिए xampp इस्तेमाल करता हूँ. अभी Zend Framework सीखते हुए मुझे महसूस हुआ की URL कुछ ज्यादा ही लम्बे हो रहे थे| मैंने विक्रम वासवानी की किताब में पढ़ा भी की किस तरह लम्बे-लम्बे URL टाइप करने की बजाये subdomain बना कर URL छोटे किये जा सकते हैं. अब इस बारे में थोडा बहुत पढ़ा तो पहले भी था ...किसी न किसी और priority की वजह से यह सीखना टल रहा था| चूंकि localhost पर directory tree इतना बड़ा और गहरा हो जाता है, और फिर Zend Framework में URL कुछ ज्यादा ही लम्बे हो रहे थे जैसे कि http://localhost/learning/zend/square/public तो पापी मन नहीं माना और बोला कम से कम xampp पर तो subdomain चला कर देख ही लिया जाये.

मैं xampp 1.7.1 इस्तेमाल कर रहा हूँ (शायद PHP 5.3.x से बचने के लिए :) ). xampp 1.7.1 में PHP 5.2.9 है.

सबसे पहले मैंने इस फाइल को एडिट किया: 'E:\xampp\apache\conf\extra\httpd-vhosts.conf' इसमें 19वीं लाइन पर यह लिखा था:
#NameVirtualHost *:80

'#' character Apache config files में line comment शुरू करने का काम करता है सो मैंने इसे हटा दिया. इसके बाद विक्रम वासवानी की किताब के सुझाव को xampp के हिसाब से बदलते हुए मैंने यह चार लाइनें नीचे जोड़ दीं.
<VirtualHost *:80>
ServerName square.localhost
DocumentRoot E:/xampp/htdocs/learning/zend/square/public
</VirtualHost>

यहाँ ध्यान दीजिये की मेरे PC पर xampp E: drive में रूट पर है. आप अपनी xampp installation के हिसाब से path दीजियेगा| लेकिन सिर्फ ऐसा करने से काम नहीं बना|

इसके बाद थोडा गूगल सर्च करने पर मुझे पता चला की subdomain बनाने पर DNS/IP वगैरह सेट करना पड़ता है| घबराइए नहीं, किस्मत से लोकल PC पर windows की hosts फाइल में सिर्फ एक लाइन जोड़नी पड़ी जो कि यह थी:
127.0.0.1 square.localhost

और हाँ, hosts फाइल आपको यहाँ मिलेगी: C:\WINDOWS\system32\drivers\etc\hosts

यह दोनों काम करने के बाद मैंने Apache बंद करके शुरू किया तो बजाए http://localhost/learning/zend/square/public (बाप रे - बहुत बड़ा नाम है 'लोहपथगामिनी गमनागमन स्थल' की तरह) लिखने के, Zend Framework वाले webpages अब http://square.localhost से खुलने लगे|

लेकिन ये सब करने के बाद एक समस्या अभी भी थी. अब जब मैं http://localhost या http:/ /square.localhost के अलावा किसी भी URL पर जाने की कोशिश करता था तो 'page not found' आने लगा| असल में NameVirtualHost *:80 directive को uncomment करने के बाद सबसे पहले http:/ /localhost के लिए Virtual Host define करना होता है, यानी http://square.localhost के लिए Virtual Host बनाने वाली चार लाइनों से पहले http://localhost के लिए ये चार लाइनें होनी चाहिए:
<VirtualHost *:80>
DocumentRoot E:/xampp/htdocs
ServerName localhost
</VirtualHost>

यह काम करने के बाद मैंने फिर से Apache restart किया तो http://square.localhost और http://localhost फिर से टनाटन खुलने लगे|

चलो, Apache से भी हाय-हेल्लो हो गयी इस बहाने |

काश मेरे Zend Framework सीखने का रास्ता भी इसी तरह छोटा हो जाये ;)