MongoDB เป็นฐานข้อมูล NoSQL ที่ใช้กันอย่างแพร่หลายโดยใช้รูปแบบ document-oriented และมีไว้สำหรับจัดเก็บข้อมูลกึ่งโครงสร้าง คำแนะนำด้านล่างนี้ให้คำแนะนำเกี่ยวกับวิธีที่คุณสามารถใช้งานร่วมกับแอป PHP ของคุณได้อย่างง่ายดายซึ่งโฮสต์อยู่ใน Ruk-Com Cloud
การสร้าง Environment
ลงชื่อเข้าใช้บัญชี Ruk-Com Cloud ของคุณและ สร้าง Environment ใหม่ด้วย MongoDB node ของเวอร์ชันที่ต้องการ (สามารถพบได้ในส่วน NoSQL wizard)
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-create-environment.jpg)
เพิ่ม instance ที่จำเป็นที่เหลือทั้งหมด (หากมี – เราจะรวม Apache ไว้ด้วยเพื่อ deploy แอปสำหรับทดสอบในภายหลัง อย่างไรก็ตามอาจอยู่ใน Environment ที่แยกต่างหากเช่นกัน) และกำหนดค่าพารามิเตอร์ที่จำเป็นอื่น ๆ เช่น จำนวนของ resources, region, ชื่อ Env ฯลฯ
คลิกปุ่ม Create เมื่อพร้อมและรอสองถึงสามนาทีเพื่อให้ Env ของคุณได้รับการตั้งค่า
MongoDB Configurations
1. หลังจากสร้าง Environment เสร็จแล้ว จะมีอีเมลรายละเอียด ที่ใช้สำหรับจัดการ environment ส่งไปยัง inbox ของคุณ
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-credentials.jpg)
2. คลิกที่ลิงค์ Access URL หรือเปลี่ยนไปที่แดชบอร์ดและ Open in browser ใน MongoDB node
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-login.jpg)
ในแท็บเบราว์เซอร์ที่เปิดขึ้นคุณจะเห็นแบบฟอร์ม Sign in สำหรับพาเนล MongoDB สำหรับแอดมิน ป้อนข้อมูลรับรองของผู้ดูแลระบบที่คุณได้รับในอีเมลดังกล่าวข้างต้นแล้วคลิก Login เพื่อเข้าถึง
3. สร้างฐานข้อมูลใหม่โดยป้อนข้อมูลที่ช่องกรอกข้อมูลด้านบนทางขวา (ยกตัวอย่างเป็น mongodb-connect) แล้วกดปุ่ม Create Database
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/mongo-java-create-db.jpg)
4. จากนั้นคุณต้องสร้างผู้ใช้สำหรับฐานข้อมูลนี้ – ให้เข้าไปที่ Web SSH ของ instance Mongodb และเข้าใช้ mongodb โดยใช้คำสั่ง
mongo -u 'admin' -p '[ใส่รหัสผ่านในตรงนี้]'
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-login-1.jpg)
5. หลังจากนั้นเลือก database โดยใช้คำสั่ง
use mongodb-connect
จากนั้นพิมพ์คำสั่งต่อไปนี้:
db.createUser({ user: "dbuser", pwd: "passw0rd", roles:[{ role: "readWrite", db: "mongodb-connect"}]})
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/mongo-cmd-create-user.jpg)
where
- user_name– name for your new DB user
- password – password for this user
- db_name – database (the above created one is suggested) this user will have the read/write permissions for
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-add-user-success.jpg)
จากนั้นเลือกฐานข้อมูลที่เกี่ยวข้องโดยใช้ลิสรายการและ Execute คำสั่งที่ระบุด้วยปุ่มชื่อเดียวกัน คุณจะได้รับการแจ้งเตือนการทำสำเร็จในเวลาไม่กี่วินาที
5. ตอนนี้ต้องเปิดใช้งานไดรเวอร์การเชื่อมต่อเฉพาะเพื่อเปิดใช้งานการโต้ตอบระหว่างเซิร์ฟเวอร์แอปของคุณและ MongoDB ที่ Ruk-Com Cloud จะรวมอยู่ในการสร้างเซิร์ฟเวอร์ PHP แอปทั้งหมดตามค่าเริ่มต้น.
หมายเหตุ :
Link # Starting with the 4.3 Jelastic version มีไดร์เวอร์สองเวอร์ชันให้ใช้งานที่เซิร์ฟเวอร์แอป PHP ที่สร้างขึ้นใหม่ทั้งหมด:
- mongo.so (ปัจจุบันถือว่าเลิกใช้งานแล้ว)
- mongodb.so
ส่วนขยายทั้งสองนี้ใช้ API ที่แตกต่างกันดังนั้นเราขอแนะนำให้ใช้โมดูลเดิมเพื่อให้แอปพลิเคชันเก่าทำงานต่อไปในขณะที่ปรับโปรเจ็กต์ใหม่ของคุณเนื่องจากเป็นเวอร์ชันล่าสุด
เคล็ดลับ: โดยทั่วไปแล้วการติดตั้ง Ruk-Com ที่ใช้แล้วจะสามารถเห็นได้ภายในโลโก้ที่มุมแดชบอร์ดด้านซ้ายบน นอกจากนี้คุณสามารถตรวจสอบได้จาก link # Ruk-Com Cloud Union Catalog
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-create-env-done.jpg)
ดังนั้นในการเปิดใช้งานไดรเวอร์ที่จำเป็นให้กลับไปที่แดชบอร์ด วางเมาส์เหนือcompute node ใน Env ของคุณแล้วคลิกที่ปุ่ม Config ที่ปรากฏ
6. ภายในแท็บ configuration manager ที่เปิดอยู่ให้ขยายโฟลเดอร์ etc แล้วเลือกไฟล์ php.ini ที่อยู่ข้างใน
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongodb-php-ini-cfg.jpg)
ค้นหาคำว่า [mongodb] และนำ comment เครื่องหมาย (;) หน้าชื่อของ library ที่ต้องการใช้ออก ในเคสนี้จะเป็น mongdb.so
7. บันทึกการเปลี่ยนแปลงที่ดำเนินการ และรีสตาร์ทโหนดแอปเซิร์ฟเวอร์ของคุณเพื่อนำไปใช้
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-restart-node.jpg)
การ Deploy แอปพลิเคชัน
ตอนนี้คุณสามารถดำเนินการ deploy แอปพลิเคชันใน Environment ที่คุณเพิ่งเตรียมไว้โดยใช้ Ruk-Com Deployment Manager (สำหรับโปรเจ็กต์ที่รวมไว้ในที่เก็บแบบถาวรหรือดึงมาจากที่เก็บ GIT / SVN โดยตรง)
ตัวอย่างเช่นเราจะใช้แอปง่าย ๆ ต่อไปนี้ซึ่งออกแบบมาเพื่อตรวจสอบการสร้างการเชื่อมต่อระหว่าง compute node ที่เกี่ยวข้องกับเซิร์ฟเวอร์ MongoDB ที่ระบุโดยใช้ส่วนขยาย mongodb.so
index.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>
ดังนั้นหากคุณต้องการทดสอบการเชื่อมต่อ เพียง download แพ็กเกจพร้อมกับโปรเจ็กต์ดังที่แสดงไว้ด้านบน และทำการ deploy
เคล็ดลับ: สำหรับเวอร์ชันไดรเวอร์เดิม (เช่น mongo.so) โปรดใช้แอปพลิเคชันทดสอบนี้ ขั้นตอนการทำงานจะคล้ายกับที่อธิบายไว้ด้านล่าง
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-already-deploy.jpg)
ดังนั้นคุณจะได้รับ Environment ที่คล้ายกับที่แสดงด้านบน
ตรวจสอบการเชื่อมต่อ
1. เปิด Environment ของคุณในเบราว์เซอร์ด้วยปุ่มชื่อเดียวกันคุณจะเห็นแบบฟอร์มสำหรับป้อนรายละเอียดฐานข้อมูล MongoDB ของคุณ
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-test-connection.jpg)
ควรระบุค่าต่อไปนี้:
- Host – ลิงก์ไปยังพาเนลฐานข้อมูลสำหรับแอดมินของคุณโดยไม่มีส่วน https:// (สามารถพบได้ในอีเมลที่เกี่ยวข้องหรือคัดลอกจากแถบ address ของเบราว์เซอร์หลังจากคลิก Open in browser สำหรับ MongoDB node)
- User – ชื่อผู้ใช้ที่คุณกำหนดให้กับฐานข้อมูล (ในกรณีของเรา คือ dbuser)
- Password – รหัสผ่านสำหรับผู้ใช้ที่ระบุไว้ในฟิลด์ก่อนหน้านี้
- Database – ชื่อของฐานข้อมูลที่ต้องการ (ในกรณีของเรา คือ mongodb-connect)
หลังจากป้อนข้อมูลในช่องที่เกี่ยวข้องแล้วให้คลิกที่ปุ่ม Test Me!
2. หากข้อมูลที่ระบุถูกต้องข้อความ Good connection จะแสดงขึ้น
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-connection-success.jpg)
ถ้าข้อมูลผิดคุณจะได้รับการแจ้งเตือนว่าการเชื่อมต่อของคุณไม่ทำงาน และผลลัพธ์โดยละเอียดของข้อผิดพลาดนี้เกิดจากสิ่งใด
3. นอกจากนี้เมื่อสร้างการเชื่อมต่อสำเร็จคอลเลกชัน phptest อันใหม่ที่ภายในมี record จำนวนหนึ่งจะถูกเพิ่มไปยังฐานข้อมูลที่ระบุ
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/05/php-mongo-insert-sucess.jpg)
ดังนั้นคุณสามารถไปที่พาเนลฐานข้อมูลของแอดมิน เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้องและดำเนินการอื่น ๆ ที่จำเป็นต่อไป
สิ่งที่ควรรู้
Ruk-Com Developer’s Center ยังมีคู่มือ MongoDB ที่เฉพาะเจาะจงอีกจำนวนมากซึ่งอาจมีประโยชน์สำหรับงานที่แตกต่างกัน:
- ตั้งค่า Master-Slave Replication ระหว่างเซิร์ฟเวอร์ฐานข้อมูลหลายตัวเพื่อให้ได้ประสิทธิภาพที่ดีขึ้นและการเข้าถึงข้อมูล
- กำหนดค่า Replica Set ด้วยจำนวน MongoDB node ที่ไม่เท่ากันเพื่อใช้การจำลองแบบ Master-Slave และ Failover อัตโนมัติพร้อมกัน
- เพิ่มความปลอดภัยให้กับข้อมูลผ่านการตั้งค่า Backups Scheduling ซึ่งอาจป้องกันข้อมูลสูญหายหรือลดผลที่ตามมา (ผ่านการกู้คืน) หากเกิดความล้มเหลวของเซิร์ฟเวอร์โดยไม่คาดคิด
- ใช้ตัวเลือก Remote Access สำหรับการดำเนินการกับฐานข้อมูลของคุณโดยตรงผ่านไคลเอนต์แอปพลิเคชันที่ต้องการ กำจัดความจำเป็นในการเข้าสู่ระบบแดชบอร์ดของเรา
- ตรวจสอบวิธีการ Import & Export Dump โดยใช้ 3d-party DB management clients เพื่อสำรองข้อมูลของคุณได้อย่างง่ายดาย