Drobo

cant even get droboadmin to install.

now im not a total noob i ahve a little experience with configuring various different systems webhosts etc so please any basic instruction and send me on my way

I am trying to install droboadmin so i can use it to install apps etc.

So i enable droboapps and then place apache.tgz in the folder.

then i restart. seems to have worked it has extracted and files are in place.

put in droboadmin.

seems to ahve worked ok files extract and are in place.

try to access 192.169.1.50:8080 and get a “the connection was reset” result. try to go to /droboadmin/www/index.php and get the following

[code]configure this application now. Please note that the web setup interface may not be available right away while the applications scans files on your Drobo. Depending on the application and amount of files, this can take up to one hour.

\n"; fclose($fh); } return $sAdminUrl; } function UpgradeApp( $sFullPath, $sFullAppName ) { global $droboapp_dir; $splitUrl = split("/", $sFullPath); $sAppNameTgz = $splitUrl[(count($splitUrl)-1)]; $sAppName = trim($sAppNameTgz, “.tgz”); $sAdminUrl = “”; // Get It exec(“wget -P …/…/$sFullPath”); // Stop it $sDroboAppsPath = exec(‘cd …/…/;pwd’); $sCurrentAppPath = $sDroboAppsPath."/".$sAppName; exec("$sCurrentAppPath/service.sh stop"); // Delete it // exec(“rm -rf $sCurrentAppPath”); // install the tgz - also starts it exec(“cd $droboapp_dir && /usr/bin/DroboApps.sh install”); // Look for admin file $sAdminPath = “$sCurrentAppPath/admin.url”; if (file_exists($sAdminPath)) { $fh = fopen($sAdminPath, ‘r’); $sContents = fread($fh, filesize($sAdminPath)); $ip = split(":", $_SERVER[‘HTTP_HOST’]); $sFullUrl = $ip[0].$sContents; $sAdminUrl = "You can configure this application now. Please note that the web setup interface may not be available right away while the applications scans files on your Drobo. Depending on the application and amount of files, this can take up to one hour.

\n"; fclose($fh); } return $sAdminUrl; } function DisableApp( $sAppName ) { $sDroboAppsPath = exec(‘cd …/…/;pwd’); $sCurrentAppPath = $sDroboAppsPath."/".$sAppName; $cmd = “$sCurrentAppPath/service.sh stop”; exec($cmd); exec("./disable_app.sh $sCurrentAppPath"); } function EnableApp( $sAppName ) { $sDroboAppsPath = exec(‘cd …/…/;pwd’); $sCurrentAppPath = $sDroboAppsPath."/".$sAppName; exec("./enable_app.sh $sCurrentAppPath"); $cmd = “cd $sCurrentAppPath && $sCurrentAppPath/service.sh start”; exec($cmd); } function DeleteApp( $sAppName ) { $sDroboAppsPath = exec(‘cd …/…/;pwd’); $sCurrentAppPath = $sDroboAppsPath."/".$sAppName; $cmd = “$sCurrentAppPath/service.sh stop”; exec($cmd); exec('rm -rf '.$sCurrentAppPath); } function RebootFS() { $url = ‘/droboadmin/restart.php?ip=’.$_SERVER[‘HTTP_HOST’].‘droboadmin’; header( 'Location: '.$url); exec(‘sh ./restart.sh > /dev/null&’); } // // // Functions to get passed in parameters // function GetHttpVariable( $name ) { if ( !isset( $_REQUEST[$name] )) { return “”; } return trim( $_REQUEST[$name] ); } // // App Listing // function ListInstalledApps() { global $sTaskG; global $droboapp_dir; echo "

* \n"; if ($handle = opendir($droboapp_dir)) { while (false !== ($file = readdir($handle))) { if (!(preg_match("/^\./", $file, $matches)) && is_dir($droboapp_dir.'/'.$file) && $file != "droboadmin" && $file != "Network Trash Folder" && $file != "Temporary Items") { echo "\n"; $name = $file; unset($output); exec("./get_name.sh $droboapp_dir/$name", $output); $name = $output[0]; // Check for configure url if ($sTaskG == "configure") { $sAdminPath = "../../$file/admin.url"; if (file_exists($sAdminPath)) { $fh = fopen($sAdminPath, 'r'); $sContents = fread($fh, filesize($sAdminPath)); $ip = split(":", $_SERVER['HTTP_HOST']); $sFullUrl = $ip[0].$sContents; echo "$name (Configure)
  \n"; fclose($fh); } else { echo "$name (Not Available)
  \n"; } } elseif ($sTaskG == "uninstall") { echo "$name (Uninstall)
  \n"; } elseif ($sTaskG == "disable") { unset($output); exec("./get_enabled.sh $droboapp_dir/$name", $output); if ($output[0] == "YES") { echo "$name (Disable)
  \n"; } elseif ($output[0] == "NO") { echo "$name (Enable)
  \n"; } else { echo "$name (Not Available)
  \n"; } } echo "
  \n"; } } closedir($handle); } echo "

\n"; } function ListUpgradableApps() { $appFeed = file(‘http://www.drobo.com/droboapps/feed/textfs.php’); $appListing = split("^", $appFeed[0]); $upgradeApps = array(); $installedApps = array(); // Figure out what we have if ($handle = opendir(’…/…/’)) { while (false !== ($file = readdir($handle))) { unset($output); if ($file != “.” && $file != “…” && is_dir(’…/…/’.$file)) { $installedApps[] = $file; } } } foreach ($appListing as $appInfo) { if ($appInfo != “”) { $appDetails = split("|", $appInfo); $appVersion = $appDetails[5]; $splitUrl = split("/", $appDetails[3]); $sAppNameTgz = $splitUrl[(count($splitUrl)-1)]; $fUpgrade = 0; foreach ($installedApps as $iApp) { if ($iApp.".tgz" == $sAppNameTgz) { if ($appVersion) { unset($output); exec("./get_version.sh …/…/$iApp", $output); if ($appVersion != $output[0]) { $fUpgrade = 1; } } } } if ($fUpgrade == 1) { $upgradeApps[] = $appInfo; } } } foreach ($upgradeApps as $appInfo) { if ($appInfo != “”) { $appDetails = split("|", $appInfo); print <<
$appDetails[1]
Upgrade Now $appDetails[4] Full Description

EOS; } } } function ListAvailableApps() { $appFeed = file(‘http://www.drobo.com/droboapps/feed/textfs.php’); $appListing = split("^", $appFeed[0]); $newApps = array(); $installedApps = array(); // Figure out what we have if ($handle = opendir(’…/…/’)) { while (false !== ($file = readdir($handle))) { unset($output); if ($file != “.” && $file != “…” && is_dir(’…/…/’.$file)) { $installedApps[] = $file; } } } // Figure out what we have installed and remove it from the list foreach ($appListing as $appInfo) { if ($appInfo != “”) { $appDetails = split("|", $appInfo); $splitUrl = split("/", $appDetails[3]); $sAppNameTgz = $splitUrl[(count($splitUrl)-1)]; $fInstalled = 0; foreach ($installedApps as $iApp) { if ($iApp.".tgz" == $sAppNameTgz) { $fInstalled = 1; } } if ($fInstalled == 0) { $newApps[] = $appInfo; } } } // Print out the new apps foreach ($newApps as $appInfo) { if ($appInfo != “”) { $appDetails = split("|", $appInfo); print <<
$appDetails[1]
Install Now $appDetails[4] Full Description

EOS; } } } // // GetSetting // function GetSetting ( $sSettingName ) { global $sSettingsPathG; $settingValue = 0; if (file_exists($sSettingsPathG)) { $fh = fopen($sSettingsPathG, ‘r’); $sContents = fread($fh, filesize($sSettingsPathG)); $vSettings = split("|", $sContents); foreach ($vSettings as $setting) { $currentSetting = split(":", $setting); if ($currentSetting[0] == $sSettingName) { $settingValue = $currentSetting[1]; } } fclose($fh); } return $settingValue; } // // Change Setting // function ChangeSettings() { global $sSettingsPathG; $fChange = 0; // Updates $fCheckForUpdates = GetSetting(“CheckForUpdates”); if (GetHttpVariable(“CheckForUpdates”) !== “”) { $fCheckForUpdates = GetHttpVariable(“CheckForUpdates”); $fChange = 1; } // Write Out Settings if ($fChange == 1) { $fh = fopen($sSettingsPathG, ‘w+’); fwrite($fh, “CheckForUpdates:$fCheckForUpdates|”); fwrite($fh, “\n”); fclose($fh); } } // // What are we doing? // function Process() { global $sTaskG; global $nVersion; if (GetHttpVariable(“install”) !== “”) { $sAdminUrl = InstallApp(GetHttpVariable(“install”), GetHttpVariable(“appname”)); echo "Installed DroboApp: “.GetHttpVariable(“appname”).”

Check the important information section for tips on running DroboApps.

" .$sAdminUrl.""; } if (GetHttpVariable(“upgrade”) !== “”) { $sAdminUrl = UpgradeApp(GetHttpVariable(“upgrade”), GetHttpVariable(“appname”)); echo "Upgraded DroboApp: “.GetHttpVariable(“appname”).”

Check the important information section for tips on running DroboApps.

" .$sAdminUrl.""; } else if (GetHttpVariable(“uninstall”) !== “”) { DeleteApp(GetHttpVariable(“uninstall”)); echo "Uninstalled DroboApp: “.GetHttpVariable(“appname”).”

"; } else if (GetHttpVariable(“disable”) !== “”) { DisableApp(GetHttpVariable(“disable”)); echo "Disabled DroboApp: “.GetHttpVariable(“appname”).”

"; } else if (GetHttpVariable(“enable”) !== “”) { EnableApp(GetHttpVariable(“enable”)); echo "Enabled DroboApp: “.GetHttpVariable(“appname”).”

"; } switch ($sTaskG) { case “install”: { echo "Below are the available DroboApps that you don’t currently have installed on your Drobo FS. By installing any of these applications, you are agreeing to the disclaimer.

"; ListAvailableApps(); break; } case “upgrade”: { echo "Below are the installed DroboApps on your Drobo FS that can be upgraded to new versions. By installing any of these applications, you are agreeing to the disclaimer.

"; ListUpgradableApps(); break; } case “configure”: { echo "These are the installed DroboApps on your Drobo FS. If a web-based setup is a available for the DroboApp, you will see a link next to the app’s name. Check the important information section for tips on running DroboApps.

\n"; ListInstalledApps(); break; } case “disable”: { echo "These are the installed DroboApps on your Drobo FS. To disable an app, click on the link next to its name.

\n"; ListInstalledApps(); break; } case “uninstall”: { echo "These are the installed DroboApps on your Drobo FS. To uninstall an app, click on the link next to its name.

\n"; ListInstalledApps(); break; } case “restart”: { echo "Restarting the Drobo FS will take a a few minutes.

\n"; echo “Restart Drobo FS Now”; break; } case “legal”: { echo "THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

\n"; echo “DroboApps are not supported by Data Robotics. Data Robotics makes no representations regarding the applications or any information related thereto. Any questions, complaints, claims or comments regarding the applications must be directed to the relevant developer or software vendor. Use DroboApps at your own risk. Data Robotics, Inc. does not support this app or any app installed by this app.”; break; } case “info”: { echo "Below is some VERY useful information for those that are new to DroboApps:

* droboadmin: To change the droboadmin password, use the Htpasswd Generator. Place the generated line into a file called 'htpasswd' and place it in DroboApps/droboadmin/.

* Dropbear SSH & Pure FTPd: The default username and password on the Drobo FS is root and root. You can change the password by SSHing into the Drobo FS and running the command 'passwd'.

* Firefly iTunes Media Server: The default user name and password are mt-daapd and Drobo-FS. You can change the password in Firefly's web configuration interface.

"; break; } case “settings”: { echo "These setttings control the functionality of the the DroboApps Admin Utility.

\n"; ListAndChangeSettings(); break; } default: { echo "Welcome to the Drobo FS DroboApps admin tool. Please select a task on the left.
"; echo "

"; echo “Please read the disclaimer.”; } } } // // Section Names // function GetSectionInfo() { global $sSectionStringG; global $sTaskG; if (GetHttpVariable(“task”) !== “”) { $sTaskG = GetHttpVariable(“task”); switch ($sTaskG) { case “install”: { $sSectionStringG = “Install DroboApps”; break; } case “upgrade”: { $sSectionStringG = “Upgrade DroboApps”; break; } case “configure”: { $sSectionStringG = “Configure DroboApps”; break; } case “disable”: { $sSectionStringG = “Disable DroboApps”; break; } case “uninstall”: { $sSectionStringG = “Uninstall DroboApps”; break; } case “restart”: { $sSectionStringG = “Restart Drobo FS”; break; } case “legal”: { $sSectionStringG = “Disclaimer”; break; } case “info”: { $sSectionStringG = “Important Information”; break; } default: { return 0; break; } } return 1; } return 0; } /////////////////////////////////////////////// // // MAIN PAGE // ////////////////////////////////////////////// if (GetHttpVariable(“restart”) == “yes”) { RebootFS(); } else { $fInSection = GetSectionInfo(); print <<[/code]

no idea if i am using an old version or what as i cannot find any new info about it on the droboports site or here.

Any help would be most appreciated.

anyone please help?

Sorry, I have no idea what could possibly have gone wrong. It seems like the index.php file got corrupted somehow. My suggestion is to delete the droboadmin folder and reinstall it from scratch.

do you have a version you would recommend using? or just the latest one from the drobo site?

Since the droboadmin relies on server-side information, I don’t think it makes much sense to use an old version. If I remember correctly older versions were not working properly because DRI changed the location of some pages that the droboadmin app was using.

In other words, I’d go with the latest version. If that version does not work, I would open a support ticket.