CLOUD PAAS / DATABASE

การเชื่อมต่อ PHP กับ MongoDB

คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ

คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง

วัตถุประสงค์

บทความนี้อธิบายการใช้งาน การเชื่อมต่อ PHP กับ MongoDB บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

MongoDBเป็นฐานข้อมูล NoSQL ที่ใช้กันอย่างแพร่หลายโดยใช้รูปแบบ document-oriented และมีไว้สำหรับจัดเก็บข้อมูลกึ่งโครงสร้าง คำแนะนำด้านล่างนี้ให้คำแนะนำเกี่ยวกับวิธีที่คุณสามารถใช้งานร่วมกับแอป PHP ของคุณได้อย่างง่ายดายซึ่งโฮสต์อยู่ใน Ruk-Com Cloud

การสร้าง Environment

ลงชื่อเข้าใช้บัญชี Ruk-Com Cloud ของคุณและ สร้าง Environment ใหม่ด้วย MongoDB node ของเวอร์ชันที่ต้องการ (สามารถพบได้ในส่วน NoSQL wizard)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เพิ่ม instance ที่จำเป็นที่เหลือทั้งหมด (หากมี - เราจะรวม Apache ไว้ด้วยเพื่อ deploy แอปสำหรับทดสอบในภายหลัง อย่างไรก็ตามอาจอยู่ใน Environment ที่แยกต่างหากเช่นกัน) และกำหนดค่าพารามิเตอร์ที่จำเป็นอื่น ๆ เช่น จำนวนของ resources, region, ชื่อ Env ฯลฯ

คลิกปุ่ม Create เมื่อพร้อมและรอสองถึงสามนาทีเพื่อให้ Env ของคุณได้รับการตั้งค่า

การกำหนดค่า MongoDB

1. หลังจากสร้าง Environment เสร็จแล้ว จะมีอีเมลรายละเอียด ที่ใช้สำหรับจัดการ environment ส่งไปยัง inbox ของคุณ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. คลิกที่ลิงค์ Access URL หรือเปลี่ยนไปที่แดชบอร์ดและ Open in browser ใน MongoDB node

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ในแท็บเบราว์เซอร์ที่เปิดขึ้นคุณจะเห็นแบบฟอร์ม Sign in สำหรับพาเนล MongoDB สำหรับแอดมิน ป้อนข้อมูลรับรองของผู้ดูแลระบบที่คุณได้รับในอีเมลดังกล่าวข้างต้นแล้วคลิก เข้าสู่ระบบ เพื่อเข้าถึง

3. สร้างฐานข้อมูลใหม่โดยป้อนข้อมูลที่ช่องกรอกข้อมูลด้านบนทางขวา (ยกตัวอย่างเป็น mongodb-connect) แล้วกดปุ่ม Create Database

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

4. จากนั้นคุณต้องสร้างผู้ใช้สำหรับฐานข้อมูลนี้ – ให้เข้าไปที่ Web SSH ของ instance Mongodb และเข้าใช้ mongodb โดยใช้คำสั่ง

mongo -u 'admin' -p '[ใส่รหัสผ่านในตรงนี้]'
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

5. หลังจากนั้นเลือก database โดยใช้คำสั่ง

use mongodb-connect

จากนั้นพิมพ์คำสั่งต่อไปนี้:

db.createUser({ user: "dbuser", pwd: "passw0rd", roles:[{ role: "readWrite", db: "mongodb-connect"}]})
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ที่ไหน

  • ชื่อผู้ใช้- ชื่อสำหรับผู้ใช้ DB ใหม่ของคุณ
  • รหัสผ่าน- รหัสผ่านสำหรับผู้ใช้รายนี้
  • db_name- ฐานข้อมูล (แนะนำอันที่สร้างขึ้นข้างต้น) ผู้ใช้รายนี้จะมีอ่าน/เขียนสิทธิ์สำหรับ
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

จากนั้นเลือกฐานข้อมูลที่เกี่ยวข้องโดยใช้ลิสรายการและ Execute คำสั่งที่ระบุด้วยปุ่มชื่อเดียวกัน คุณจะได้รับการแจ้งเตือนการทำสำเร็จในเวลาไม่กี่วินาที

5. ตอนนี้ต้องเปิดใช้งานไดรเวอร์การเชื่อมต่อเฉพาะเพื่อเปิดใช้งานการโต้ตอบระหว่างเซิร์ฟเวอร์แอปของคุณและ MongoDB ที่ Ruk-Com Cloud จะรวมอยู่ในการสร้างเซิร์ฟเวอร์ PHP แอปทั้งหมดตามค่าเริ่มต้น.

หมายเหตุ :
ลิงค์ #เริ่มต้นด้วยเวอร์ชัน 4.3 Jelasticมีไดร์เวอร์สองเวอร์ชันให้ใช้งานที่เซิร์ฟเวอร์แอป PHP ที่สร้างขึ้นใหม่ทั้งหมด:

  • mongo.so (ปัจจุบันถือว่าเลิกใช้งานแล้ว)
  • mongodb.so

ส่วนขยายทั้งสองนี้ใช้ API ที่แตกต่างกันดังนั้นเราขอแนะนำให้ใช้โมดูลเดิมเพื่อให้แอปพลิเคชันเก่าทำงานต่อไปในขณะที่ปรับโปรเจ็กต์ใหม่ของคุณเนื่องจากเป็นเวอร์ชันล่าสุด

เคล็ดลับ:โดยทั่วไปแล้วการติดตั้ง Ruk-Com ที่ใช้แล้วจะสามารถเห็นได้ภายในโลโก้ที่มุมแดชบอร์ดด้านซ้ายบน นอกจากนี้คุณสามารถตรวจสอบได้จาก link # Ruk-Com Cloud Union Catalog

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ดังนั้นในการเปิดใช้งานไดรเวอร์ที่จำเป็นให้กลับไปที่แดชบอร์ด วางเมาส์เหนือcompute node ใน Env ของคุณแล้วคลิกที่ปุ่ม Config ที่ปรากฏ

6. ภายในแท็บตัวจัดการการกำหนดค่าที่เปิดอยู่ให้ขยายโฟลเดอร์ etc แล้วเลือกไฟล์php.iniที่อยู่ข้างใน

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ค้นหาคำว่า [mongodb] และนำ comment เครื่องหมาย (;) หน้าชื่อของ library ที่ต้องการใช้ออก ในเคสนี้จะเป็นmongdb.so

7.บันทึกการเปลี่ยนแปลงที่ดำเนินการ และรีสตาร์ทโหนดแอปเซิร์ฟเวอร์ของคุณเพื่อนำไปใช้

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

การ Deploy แอปพลิเคชัน

ตอนนี้คุณสามารถดำเนินการ deploy แอปพลิเคชันใน Environment ที่คุณเพิ่งเตรียมไว้โดยใช้ Ruk-Comผู้จัดการฝ่ายปรับใช้(สำหรับโปรเจ็กต์ที่รวมไว้ในที่เก็บแบบถาวรหรือดึงมาจากที่เก็บ GIT / SVN โดยตรง)

ตัวอย่างเช่นเราจะใช้แอปง่าย ๆ ต่อไปนี้ซึ่งออกแบบมาเพื่อตรวจสอบการสร้างการเชื่อมต่อระหว่าง compute node ที่เกี่ยวข้องกับเซิร์ฟเวอร์ MongoDB ที่ระบุโดยใช้ส่วนขยายmongodb.so

ดัชนี.php:

<html>

<head>
 <title>Test MongoDB Connection</title>
</head>

<body>
 <h1>Test MongoDB Connection</h1>
<form action="#" name="form" method="POST">
  <table cellspacing="10">
    <tr><td>Host</td><td><input type="text" name="host" value="<?php echo htmlspecialchars($_POST['host']); ?>" size="40"></td></tr>
      <tr><td>User</td><td><input type="text" name="username" value="<?php echo htmlspecialchars($_POST['username']); ?>" size="20"></td></tr>
    <tr><td>Password</td><td><input type="text" name="password" value="<?php echo htmlspecialchars($_POST['password']); ?>" size="20"></td></tr>
    <tr><td>Database</td><td><input type="text" name="database" value="<?php echo htmlspecialchars($_POST['database']); ?>" size="20"></td></tr>
    <tr></tr>
    <tr><td> </td><td><input type="submit" name="sub" value="Test Me!"></td></tr>
  </table>
</form>

<?php
if (@$_POST['sub']){
 $host=$_POST['host'];
 $username=$_POST['username'];
 $password=$_POST['password'];
 $userdb=$_POST['database'];
 $database=$userdb.".phptest";

  try{
    $manager = new MongoDB\Driver\Manager("mongodb://{$host}/{$userdb}", array("username" => $username, "password" => $password));
       if ($manager) {
        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->insert(['x' => 1]);
        $bulk->insert(['x' => 2]);
        $bulk->insert(['x' => 3]);
        $manager->executeBulkWrite($database, $bulk);

        $filter = ['x' => ['$gt' => 1]];
        $options = [
            'projection' => ['_id' => 0],
            'sort' => ['x' => -1],
        ];

        $query = new MongoDB\Driver\Query($filter, $options);
        $cursor = $manager->executeQuery($database, $query);
            }
  }catch(Exception $e){
      echo  "<center><h1>Doesn't work</h1></center>";
    print_r($e);
           exit;
  }
}

if ($host)
 echo "<center><h1>Good connection</h1></center>";

?>

</body>
</html>

ดังนั้นหากคุณต้องการทดสอบการเชื่อมต่อ เพียงดาวน์โหลดแพ็กเกจพร้อมกับโปรเจ็กต์ดังที่แสดงไว้ด้านบน และ deploy

เคล็ดลับ: สำหรับเวอร์ชันไดรเวอร์เดิม (เช่น mongo.so) โปรดใช้แอปพลิเคชันทดสอบนี้ ขั้นตอนการทำงานจะคล้ายกับที่อธิบายไว้ด้านล่าง

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ดังนั้นคุณจะได้รับ Environment ที่คล้ายกับที่แสดงด้านบน

ตรวจสอบการเชื่อมต่อ

1. เปิด Environment ของคุณในเบราว์เซอร์ด้วยปุ่มชื่อเดียวกันคุณจะเห็นแบบฟอร์มสำหรับป้อนรายละเอียดฐานข้อมูล MongoDB ของคุณ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ควรระบุค่าต่อไปนี้:

  • โฮสต์– ลิงก์ไปยังพาเนลฐานข้อมูลสำหรับแอดมินของคุณโดยไม่มีส่วน https:// (สามารถพบได้ในอีเมลที่เกี่ยวข้องหรือคัดลอกจากแถบ address ของเบราว์เซอร์หลังจากคลิก Open in browser สำหรับ MongoDB node)
  • ผู้ใช้- ชื่อผู้ใช้ที่คุณกำหนดให้กับฐานข้อมูล (ในกรณีของเรา คือ dbuser)
  • รหัสผ่าน- รหัสผ่านสำหรับผู้ใช้ที่ระบุไว้ในฟิลด์ก่อนหน้านี้
  • ฐานข้อมูล- ชื่อของฐานข้อมูลที่ต้องการ (ในกรณีของเรา คือ mongodb-connect)

หลังจากป้อนข้อมูลในช่องที่เกี่ยวข้องแล้วให้คลิกที่ปุ่ม Test Me!

2. หากข้อมูลที่ระบุถูกต้องข้อความ Good connection จะแสดงขึ้น

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ถ้าข้อมูลผิดคุณจะได้รับการแจ้งเตือนว่าการเชื่อมต่อของคุณไม่ทำงาน และผลลัพธ์โดยละเอียดของข้อผิดพลาดนี้เกิดจากสิ่งใด

3. นอกจากนี้เมื่อสร้างการเชื่อมต่อสำเร็จคอลเลกชัน phptest อันใหม่ที่ภายในมี record จำนวนหนึ่งจะถูกเพิ่มไปยังฐานข้อมูลที่ระบุ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

ดังนั้นคุณสามารถไปที่พาเนลฐานข้อมูลของแอดมิน เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้องและดำเนินการอื่น ๆ ที่จำเป็นต่อไป

สิ่งที่ควรรู้

Ruk-Com Developer’s Center ยังมีคู่มือ MongoDB ที่เฉพาะเจาะจงอีกจำนวนมากซึ่งอาจมีประโยชน์สำหรับงานที่แตกต่างกัน:

  • ตั้งค่าการจำลองแบบ Master-Slaveระหว่างเซิร์ฟเวอร์ฐานข้อมูลหลายตัวเพื่อให้ได้ประสิทธิภาพที่ดีขึ้นและการเข้าถึงข้อมูล
  • กำหนดค่าชุดจำลองด้วยจำนวน MongoDB node ที่ไม่เท่ากันเพื่อใช้การจำลองแบบ Master-Slave และ Failover อัตโนมัติพร้อมกัน
  • เพิ่มความปลอดภัยให้กับข้อมูลผ่านการตั้งค่าการกำหนดการสำรองข้อมูลซึ่งอาจป้องกันข้อมูลสูญหายหรือลดผลที่ตามมา (ผ่านการกู้คืน) หากเกิดความล้มเหลวของเซิร์ฟเวอร์โดยไม่คาดคิด
  • ใช้ตัวเลือกการเข้าถึงระยะไกลสำหรับการดำเนินการกับฐานข้อมูลของคุณโดยตรงผ่านไคลเอนต์แอปพลิเคชันที่ต้องการ กำจัดความจำเป็นในการเข้าสู่ระบบแดชบอร์ดของเรา
  • ตรวจสอบวิธีการนำเข้าและส่งออกการถ่ายโอนข้อมูลโดยใช้ 3d-party DB management clients เพื่อสำรองข้อมูลของคุณได้อย่างง่ายดาย