उबंटू ओएस के तहत डी पर खुद का वेब प्रोजेक्ट

यह सामग्री danial72 द्वारा डी पर लेख सरल साइट के लिए धन्यवाद पैदा हुई थी। केवल विंडोज के तहत पार्स किया गया था। अपने लेख में, मैं कदम से कदम पर विचार करूँगा कि प्रोग्रामिंग भाषा डी में उबंटू 13.04 ओएस के उदाहरण का उपयोग करके अपनी स्वयं की वेब परियोजना बनाने के लिए एक कार्यशील वातावरण तैयार किया जाए।

यदि आपके पास एक जटिल और संसाधन-गहन परियोजना है, और इस बारे में सोचा गया है कि पृष्ठ पर कॉल करने पर हर बार php कोड की हजारों लाइनों को पार्स किया जाएगा, और इनहेरिटेंस वाली कक्षाएं और कुछ टेम्पलेट इंजन, और यहां तक ​​कि सक्रिय भी हैं हजारों उपयोगकर्ता होंगे, जिससे आप घबराएंगे और आतंकित होंगे, यह इस तरह के विकास को लागू करने के लिए एक तर्कसंगत और इष्टतम समाधान के बारे में सोचने के लिए समझ में आता है। इसके विपरीत, यदि आपने कभी इस बारे में नहीं सोचा है, तो सबसे अधिक संभावना है कि आपके पास किसी भी तरह का शक्तिशाली सर्वर नहीं है।

मार्क जुकरबर्ग और उनकी टीम ने हिपहॉप को विकसित करके एक बार में इस समस्या को हल किया, जिसने PHP स्क्रिप्ट को C ++ में बदल दिया और जो बदले में संकलित सर्वर में जा रहा था, इस परियोजना के लिए तेज हो गया। हम कुछ ऐसा ही करेंगे, अनावश्यक प्रक्रिया अनुवादों से बचने के लिए एक बार संकलित भाषा में सब कुछ लिखें और इस प्रक्रिया में संभावित कीड़े से बचें। इसके अलावा, डी भाषा इतनी सुविधाजनक है कि आप इसे आसानी से अपनी समस्याओं को हल करने के लिए उपयोग कर सकते हैं।

निम्नलिखित चरण आपको यह दिखाएंगे कि इस पूरी चीज़ को कैसे तैनात करें:
  1. हम DLang.org पेज पर जाते हैं और आपके सिस्टम के लिए वितरण किट डाउनलोड करते हैं।
  2. अगला, आपको DUB प्रबंधक को स्थापित करने की आवश्यकता है। इसके साथ, हम अपनी परियोजना को तैनात, संकलित और चलाएंगे। भंडार, कुंजी और अद्यतन निर्भरता जोड़ने की आवश्यकता है
    $ sudo wget http://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list $ sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update 
    उसके बाद
     $ sudo apt-get install dub 
  3. स्थापना के पूरा होने पर, प्रोजेक्ट फ़ोल्डर बनाएं जिसमें हमारी परियोजना बनाई जाएगी।
     $ cd /home/< >/projects $ dub init < > 
    यह ऑपरेशन आपके प्रोजेक्ट के फ़ोल्डर में निम्न फ़ाइल संरचना बनाएगा
     public/ source/ app.d views/ package.json 
  4. हम package.json फ़ाइल में रुचि रखते हैं। इसे खोलें और निम्न पाठ जोड़ें:
     "dependencies": { "vibe-d": ">=0.7.16" } 
    अब, संकलन समय पर, DUB अपने आप नवीनतम vibe.d पैकेज डाउनलोड कर लेगा
  5. अगला, किसी भी संपादक के साथ app.d फ़ाइल खोलें। मैं आईडीई का उपयोग करने की सलाह दूंगा, लेकिन दुर्भाग्य से, मुझे एमएस विज़ुअल स्टूडियो 2008 के लिए पूर्ण-आधारित आईडीई या उबंटू के तहत डी भाषा के लिए बोरलैंड डेल्फी नहीं मिला, लेकिन मैं केवल आंशिक रूप से या बैसाखी के साथ इसका उपयोग कर सकता हूं। मैंने गीन पर अब तक अपनी पसंद को चुना है।
    फ़ाइल में बहुत शुरुआत में हम लिखते हैं ...
     #!/usr/bin/rdmd 
    यह आदेश बताता है कि DMD पैकेज से RDMD उपयोगिता का उपयोग करके फ़ाइल को स्वचालित रूप से रनटाइम पर संकलित किया जाएगा।
    फ़ाइल को ही निष्पादन योग्य बनाया गया है
     chmod 775 
    इसके अलावा, स्वचालित रूप से उत्पन्न फ़ाइल में निर्दिष्ट उदाहरण, आप इस कोड को हटा सकते हैं और पेस्ट कर सकते हैं
     import vibe.d; import std.file; void image(HTTPServerRequest req, HTTPServerResponse res) { auto file = format("./public/images/%s", req.params["f"]); if(exists(file)) { auto image = cast(ubyte[]) read(file); res.writeBody(image,"image"); } else { res.writeBody("Not Found","text/plain"); } } void css(HTTPServerRequest req, HTTPServerResponse res) { auto css = readText(format("./public/css/%s", req.params["f"])); res.writeBody(css,"text/css"); } void index_req(HTTPServerRequest req, HTTPServerResponse res) { auto request = req.params["r"]; res.renderCompat!("index.dt", HTTPServerRequest, "req",string,"title")(req,request); } void index(HTTPServerRequest req, HTTPServerResponse res) { res.renderCompat!("index.dt", HTTPServerRequest, "req")(req); } shared static this() { auto router = new URLRouter; router.get("/:r",&index_req); router.get("/", &index); router.get("/css/:f",&css); router.get("/images/:f",&image); auto settings = new HTTPServerSettings; settings.port = 8080; listenHTTP(settings, router); } 

    शैलियों और चित्रों, जैसा कि आप शायद इस उदाहरण में नोटिस करने में कामयाब रहे हैं, को क्रमशः सार्वजनिक / सीएसएस / और सार्वजनिक / छवियों / फ़ोल्डर में संग्रहीत किया जाना चाहिए।
    दो फ़ाइलों को दृश्य फ़ोल्डर में जोड़ा जाना चाहिए:
    layout.dt
     !!! 5 html head title Example page body block body 
    और index.dt
     extends layout block body h1 Example page - Home p Hello, World! 
    यह एक टेम्पलेट इंजन है। अपने पृष्ठों को परिवर्तित करने का तरीका यहां वर्णित है , और एक स्वचालित कनवर्टर यहां है
    हम अपनी सभी फाइलों को सहेजते हैं।
  6. हम अपने प्रोजेक्ट के फोल्डर में जाते हैं और कमांड लाइन पर DUB चलाते हैं
     $ cd /home/< /projects/< > $ dub 
    यदि सब कुछ सही है, तो निम्न पाठ स्क्रीन पर दिखाई देना चाहिए:
     Checking dependencies in '/home/< >/Projects/< >' Building configuration "application", build type debug Running dmd (compile)... Compiling diet template 'index.dt' (compat)... Compiling diet template 'index.dt' (compat)... Linking... Running /tmp/dub/1994091216/< >... Listening for HTTP requests on :::8080 Failed to listen on 0.0.0.0:8080 
    अंतिम पंक्ति त्रुटि के अनुरूप लगती है, लेकिन वास्तव में यह IPv6 को सुनने का प्रयास है, जो मेरे साथ सक्रिय नहीं है। केवल IPv4 का उपयोग किया जाता है।

    ब्राउजर विंडो में 127.0.0.1:8080 ड्राइव करें

    वोइला ... हमारी साइट।

किसी भी परिवर्तन के बाद, टर्मिनल में डब के काम को बाधित करना और इसे फिर से शुरू करना पर्याप्त है। सभी फ़ाइलें स्वचालित रूप से recompiled हैं।

Source: https://habr.com/ru/post/In185878/


All Articles