MongoDB Tutorial 4: Introduction
MongoDB Tutorial 4 : Introduction | Apache Support | phpMoAdmin Support | Mongo-Start
|
|
MongoDB Production Plugin UniServer 6-Carbo. |
MongoDB
Introduction
This tutorial covers a production MongoDB plugin for 6-Carbo. As a starting point is uses the plugin covered in tutorial 2 and the standalone version covered in tutorial 3. Non-authentication components are replaced with their authentication counterparts as covered in the initial plugin design tutorial.
With this structure in place additional functionally is added.
Downloads
We require a working server and plugin to this we will add components from the standalone version covered in tutorial 3.
Downloads and install
- Create a new folder z_mongo
- Download Uniform Server 6-Carbo and save to this foldr.
- Extract by double clicking on file
- Download plugin mongo_plugin_v1_0.exe
- Save to folder z_mongo\UniServer
- To extract Double click mongo_plugin_v1_0.exe
- Create two new folders:
- z_mongo\temp
- z_mongo\zz_temp
- # Download mongo_pro_standalone_v1_0.exe
- Save to z_mongo\zz_temp
- To extract Double click mongo_pro_standalone_v1_0.exe
Save original application
This containks correct path information and strt servers code
- Navigate to z_mongo\UniServer\unicon\tray_menu_2
- Cut and paste these files to folder z_mongo\temp
- mongo_db.php
- mongo_db_inc.php
- Run_mongo_db.bat
Copy over standalone components
- Navigate to folder z_mongo\zz_temp\mongodb_1\control
- Copy following files to folder z_mongo\UniServer\unicon\tray_menu_2
- mongo_db.php
- mongo_db_inc.php
- window_create_database.inc.php
- window_delete_user.inc.php
- window_drop_database.inc.php
- window_port_pass.inc.php
- Navigate to folder z_mongo\zz_temp\mongodb_1\bin
- Copy following files to folder z_mongo\UniServer\usr\local\mongo\bin
- config_auth.ini
- mongo_name_password
- Navigate to folder z_mongo\zz_temp\mongodb_1\data
- Copy folder mongodb to folder z_mongo\UniServer\usr\local\mongo\data (allow overwrite)
For download details see MongoDB Introduction (Main Start page)
Update mongo_db_inc.php
Edit file z_mongo\UniServer\unicon\tray_menu_2\mongo_db_inc.php
Replace this section:
$path_array = explode("\\mongodb_1",getcwd()); // Split at folder usr $mongo_base = $path_array[0]; // find drive letter and any sub-folders $mongo_base_f = preg_replace('/\\\/','/', $mongo_base); // Replace \ with / //=== FOLDERS === define("MONGO_BIN", "$mongo_base_f/mongodb_1/bin"); // Binaries for MongoDB //=== FILES === define("INFO_TXT", "$mongo_base_f/mongodb_1/control/read_me.txt"); // Information file define("NO_NAG_TXT", "$mongo_base_f/mongodb_1/control/no_nag.txt"); // Dummy file define("CONFIG_NO_AUTH_F", "$mongo_base_f/mongodb_1/bin/config_no_auth.ini"); define("UNISERV_EXE", "$mongo_base_f/mongodb_1/bin/uniserv.exe"); // Utility define("UNISERV_EXE_B", $mongo_base.'\mongodb_1\bin\uniserv.exe'); // Utility define("MON_PSKILL_EXE", "$mongo_base_f/mongodb_1/bin/pskill.exe"); // Utility define("CONFIG_AUTH_F", MONGO_BIN."/config_auth.ini"); define("NAME_PWD_F", MONGO_BIN."/mongo_name_password"); define("CMD_DUMMY_TXT", MONGO_BIN."/cmd_dummy.txt"); // Temp command fie
With:
$path_array = explode("\\UniServer",getcwd()); // Split at folder usr $mongo_base = $path_array[0]; // find drive letter and any sub-folders $mongo_base_f = preg_replace('/\\\/','/', $mongo_base); // Replace \ with / //=== FOLDERS === define("MONGO_BIN", "$mongo_base_f/UniServer/usr/local/mongo/bin"); // Binaries for MongoDB define("MONGO_PHP", "$mongo_base_f/UniServer/usr/local/php"); // PHP //=== FILES === define("INFO_TXT", "$mongo_base_f/UniServer/usr/local/mongo/us_info/read_me.txt"); // Information file define("NO_NAG_TXT", "$mongo_base_f/UniServer/usr/local/mongo/us_info/no_nag.txt"); // Dummy file define("INSTALLED_TXT", "$mongo_base_f/UniServer/usr/local/mongo/us_info/installed.txt"); // Dummy file define("PHP_INI_1", MONGO_PHP."/php.ini"); //php main configuration define("PHP_INI_2", MONGO_PHP."/php.ini_delvelopment_nano"); //php dev configuration define("PHP_INI_3", MONGO_PHP."/php.ini_production_nano"); //php pro configuration define("CONFIG_NO_AUTH_F", MONGO_BIN."/config_no_auth.ini"); define("UNISERV_EXE", MONGO_BIN."/uniserv.exe"); // Utility define("UNISERV_EXE_B", $mongo_base.'\UniServer\usr\local\mongo\bin\uniserv.exe'); // Utility define("MON_PSKILL_EXE", MONGO_BIN."/pskill.exe"); // Utility define("CONFIG_AUTH_F", MONGO_BIN."/config_auth.ini"); define("NAME_PWD_F", MONGO_BIN."/mongo_name_password"); define("CMD_DUMMY_TXT", MONGO_BIN."/cmd_dummy.txt"); // Temp command fie define("PHPMOADMIN_PAGE", "$mongo_base_f/UniServer/home/admin/www/phpMoAdmin/moadmin.php"); //phpMoAdmin page define("REDIRECT_PAGE", "$mongo_base_f/UniServer/home/admin/www/phpMoAdmin/mongo_redirect.html"); //Redirect to above fie
All paths are now reference to ubiform server
Add the following function
//=== Config Mongo ============================================================ function config_mongo(){ $str = 'extension=php_mongo.dll'; // String to find $file = file_get_contents(PHP_INI_1); // Read file if(!strpos($file, $str)) { // Check for string $fh = fopen(PHP_INI_1, 'a'); // Not found fwrite($fh, $str."\n"); // Add it to file fclose($fh); // Close file pointer } $file = file_get_contents(PHP_INI_2); if(!strpos($file, $str)) { $fh = fopen(PHP_INI_2, 'a'); fwrite($fh, $str."\n"); fclose($fh); } $file = file_get_contents(PHP_INI_3); if(!strpos($file, $str)) { $fh = fopen(PHP_INI_3, 'a'); fwrite($fh, $str."\n"); } } //======================================================== END Coonfig Mongo ===
Update mongo_db.php
Edit file z_mongo\UniServer\unicon\tray_menu_2\mongo_db.php
We need to tap into Uniform Server add the follwing to the includes section
include_once "../main/includes/config.inc.php"; // US Control include_once "../main/includes/functions.php"; // US Control
We want to force path rewrites. Just below include section add the following
//== Checked servers moved run_location_tracker(); // Have servers moved if moved // update configuration accordingly
If this is a first install configure PHP to install dll ad the follow below the above
//== Configure server to run monoDB if(!file_exists(INSTALLED_TXT)){ // File not found config_mongo(); // Update PHP ini files //== Create installed file $conf[] = "Php configured\n"; $conf[] = "php_cli configured\n"; $str1 = implode($conf); // Convert array to string file_put_contents(INSTALLED_TXT,$str1); // Save string to file }
Summary
With the above modifications we now have a working MongoDB plugin.
Compared to mongo_plugin_v1_0 it lacks some functionality, no Apache control and no phpMoAdmin support.
Next page covers adding Apache support.