Newbie Setup Problems

juggernautsei wrote on Tuesday, February 09, 2010:

I have XAMP PHP MYSQL Apache already installed on a windows 2003 server. I started the install from the initial setup prompt like the instructions say to do. All initial tests were good. The script came back with ready on everything. I setup a new database. It was all successful. I modified the httpd.conf file and place the settings at the end of the file.

When I launch the app I get:

Object not found!
The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

Can anyone tell me how to begin to troubleshoot this or point me to a posting of this error.

Thanks All!

bradymiller wrote on Tuesday, February 09, 2010:

hey,
Do you have a another test site on your server? Does that work? What are versions of OpenEMR, xampp, php, and mysql? Ensure you have the following php configuration in your php.ini file:
http://www.openmedsoftware.org/wiki/FAQ#What_are_the_correct_PHP_settings_.28can_be_found_in_the_php.ini_file.29_.3F
-brady

mmfsystems wrote on Tuesday, February 09, 2010:

Can you please give details about, what is the directory location of your application and also detailed description of the steps taken.
Overall it seems the error related to configuration of the relative path and root directory path to be given in interface/globals.php file.

It would be great if you can paste the web-root variable related code from your globals.php file here.

Can suggest exact solution with more details in hand.

Thanks

rehman123 wrote on Monday, February 15, 2010:

I have exactly the same problem. The install was a like a breeze. I am using XAMPP 1.7.1

Here is how my browser accesses the file,

http://localhost/oemr/interface/login/login_frame.php

My install directory is,

C:\Program Files\xampp\htdocs\oemr

The other sites seem to be functional,

Here is my globals.php,

ini_set(‘memory_limit’, ‘64M’);
ini_set(‘session.gc_maxlifetime’, ‘14400’);

// Emulates register_globals = On.  Moved to here from the bottom of this file
// to address security issues.  Need to change everything requiring this!

$ps = strpos($_SERVER,“myadmin”);
if ($ps === false) {
  extract($_GET);
  extract($_POST);

require_once(dirname(__FILE__) . “/…/includes/config.php”);
// Global variable file in which colors and paths are set for the interface.
///////////////////////////////////////////////////////////////////
// THESE VALUES MUST BE SET BEFORE OPENEMR WILL FUNCTION:
///////////////////////////////////////////////////////////////////
// Set this to the full absolute directory path for openemr:
$webserver_root = “C:/Program Files/xampp/htdocs/oemr”;

// Set this to the relative html path, ie. what you would type into the web
// browser after the server address to get to OpenEMR.  For example, if you
// type “http://127.0.0.1/clinic/openemr/”  to load OpenEMR, set $web_root
// to “/clinic/openemr” without the trailing slash.
$web_root = “/openemr”;

///////////////////////////////////////////////////////////////////

// Collecting the utf8 disable flag from the sqlconf.php file in order
// to set the correct html encoding. utf8 vs iso-8859-1. If flag is set
// then set to iso-8859-1.
require_once(dirname(__FILE__) . “/…/library/sqlconf.php”);
if (!$disable_utf8_flag) {   
ini_set(‘default_charset’, ‘utf-8’);
}
else {
ini_set(‘default_charset’, ‘iso-8859-1’);
}

// This is the return mail address used when sending prescriptions by email:
$GLOBALS = "prescription_mail@example.com";

// Root directory, relative to the webserver root:
$GLOBALS = “$web_root/interface”;
// Absolute path to the source code include and headers file directory (Full path):
$GLOBALS = “$webserver_root/library”;
// Absolute path to the location of documentroot directory for use with include statements:
$GLOBALS = “$webserver_root”;
// Absolute path to the location of interface directory for use with include statements:
$include_root = “$webserver_root/interface”;
// Absolute path to the location of documentroot directory for use with include statements:
$GLOBALS = $web_root;

$GLOBALS = $GLOBALS . “/templates/”;
$GLOBALS = $include_root;
// Location of the login screen file
$GLOBALS = “$rootdir/login_screen.php”;

//
// Language Translations Control Section
//

//  Current supported languages:    // Allow capture of term for translation:
//   Armenian                       // xl(‘Armenian’)
//   Bahasa Indonesia               // xl(‘Bahasa Indonesia’)
//   Chinese                        // xl(‘Chinese’)
//   Dutch                          // xl(‘Dutch’)
//   English (Indian)               // xl(‘English (Indian)’)
//   English (Standard)             // xl(‘English (Standard)’)
//   French                         // xl(‘French’)
//   German                         // xl(‘German’)
//   Greek                          // xl(‘Greek’)
//   Hebrew                         // xl(‘Hebrew’)
//   Norwegian                      // xl(‘Norwegian’)
//   Portuguese (Brazilian)         // xl(‘Portuguese (Brazilian)’)
//   Russian                        // xl(‘Russian’)
//   Slovak                         // xl(‘Slovak’)
//   Spanish                        // xl(‘Spanish’)
//   Swedish                        // xl(‘Swedish’)

// Login Menu Language Translation Configuration
//
//  ‘language_menu_login’ toggle
//    -If set to true then will allow language selection on login
//    -If set to false then will not show menu in login and will use default (see below)
$GLOBALS = true;
//
//  ‘language_menu_all’ toggle
//    -If set to true then show all languages in login menu
//    -If set to false then only show chosen (see below) languages in login menu
$GLOBALS = true;
//
//  ‘language_menu_show’ array
//    -ONLY pertinent if above ‘language_menu_all’ toggle is set to false
//    -Displays these chosen languages in the login menu
$GLOBALS = array(‘English (Standard)’,‘Swedish’);
//
//  ‘language_default’
//    -Sets the default language
//    -If login menu is on, then it will be the ‘Default’ choice in menu
//    -If login menu is off, then it will choose this language
$GLOBALS = “English (Standard)”;

// Language translation options
//  -The globals below allow granular control to turn off translation of
//   several specific parts of OpenEMR.
//
//  ‘translate_layout’
//    -If true, then will translate the layout information.
//    -If false, will not translate the layout information.
//      If false, then most of the demographics and patient data
//       entry forms will not be translated.
$GLOBALS = true;
//
//  ‘translate_lists’
//    -If true, then will translate the lists information.
//    -If false, will not translate the lists information.
//      If false, then many lists of information in forms
//       and templates will be untranslated.
$GLOBALS = true;
//
//  ‘translate_gacl_groups’
//    -If true, then will translate the access control group names.
//    -If false, will not translate the access control group names.
$GLOBALS = true;
//
//  ‘translate_note_titles’
//    -If true, then will translate the patient Form (note) titles.
//    -If false, will not translate the patient Form (note) titles.
$GLOBALS = true;
//
//  ‘translate_document_categories’
//    -If true, then will translate the document categories.
//    -If false, will not translate the document categories.
$GLOBALS = true;
//
//  ‘translate_appt_categories’
//    -If true, then will translate the appt categories.
//    -If false, will not translate the appt categories.
$GLOBALS = true;

// Include the translation engine. This will also call sql.inc to
//  open the openemr mysql connection.
include_once (dirname(__FILE__) . “/…/library/translation.inc.php”);

//
// Lists and Layouts Control Section
//

// ‘state_custom_addlist_widget’
//  - If true, then will display a customized addlist widget for
//    state list entries (will ask for title and abbreviation)
$GLOBALS = true;

// Data type options. This will set data types in forms that are not
//  covered by a layout.
//   1  = single-selection list
//   2  = text field
//   26 = single-selection list with ability to add to the list (addlist widget)
//   (the list entries below are only pertinent for data types 1 or 26)
//
// ‘state_data_type’
$GLOBALS = 26;
$GLOBALS = “state”;
//
// ‘country_data_type’
$GLOBALS = 26;
$GLOBALS = “country”;

// Vitals form and growth chart units (US and-or metrics)
//   1 = Show both US and metric (main unit is US)
//   2 = Show both US and metric (main unit is metric)
//   3 = Show US only
//   4 = Show metric only
$GLOBALS = 1;

// Flag to not show the old deprecated metric form in
// the unregistered section of the admin->forms module.
//  (since 3.1.0, metric units are now used along with US units
//   in the main vitals form; controlled by above setting)
$GLOBALS = true;

include_once (dirname(__FILE__) . “/…/library/date_functions.php”);
include_once (dirname(__FILE__) . “/…/library/classes/Filtreatment_class.php”);

// Default category for find_patient screen
$GLOBALS = 5;
$GLOBALS = ‘Office Visit’;

// The session name appears in cookies stored in the browser.  If you have
// multiple OpenEMR installations running on the same server, you should
// customize this name so they cannot interfere with each other.
//
// Also, if modify session_name, then need to place the identical name in
// the phpmyadmin file here: openemr/phpmyadmin/libraries/session.inc.php
// at line 71. This was required after embedded new phpmyadmin version on
// 05-12-2009 by Brady. Hopefully will figure out a more appropriate fix.
session_name(“OpenEMR”);

session_start();

// Set this to 1 or 2 to activate support for the new frame layout.
// 0 = Old-style layout
// 1 = Navigation menu consists of pairs of radio buttons
// 2 = Navigation menu is a tree view
//
$GLOBALS = 2;

// If >0 this will enforce a separate PHP session for each top-level
// browser window.  You must log in separately for each.  This is not
// thoroughly tested yet and some browsers might have trouble with it,
// so make it 0 if you must.  Alternatively, you can set it to 2 to be
// notified when the session ID changes.
$GLOBALS = 1; // 0=no, 1=yes, 2=yes+debug

// used in Add new event for multiple providers
$GLOBALS = false;

// NOT functional. Always keep this value FALSE.
//  Plan to remove when this functionally has been completely
//   removed from code.
$GLOBALS = FALSE;

// Theme definition:
if ($GLOBALS) {
$top_bg_line = ’ bgcolor="#dddddd" ';
$GLOBALS = “#dddddd”;
$bottom_bg_line = $top_bg_line;
$title_bg_line = ’ bgcolor="#bbbbbb" ';
$nav_bg_line = ’ bgcolor="#94d6e7" ‘;
} else {
$top_bg_line = ’ bgcolor="#94d6e7" ‘;
$GLOBALS = “#94d6e7”;
$bottom_bg_line = ’ background="’.$rootdir.’/pic/aquabg.gif" ';
$title_bg_line = ’ bgcolor="#aaffff" ‘;
$nav_bg_line = ’ bgcolor="#94d6e7" ‘;
}
$login_filler_line = ’ bgcolor="#f7f0d5" ‘;
$login_body_line = ’ background="’.$rootdir.’/pic/aquabg.gif" ‘;
$css_header = “$rootdir/themes/style_sky_blue.css”;
$logocode="<img src=’$rootdir/pic/logo_sky.gif’>";
$linepic = “$rootdir/pic/repeat_vline9.gif”;
$table_bg = ’ bgcolor="#cccccc" ';
$GLOBALS = “#cccccc”;
$GLOBALS = “#222222”;
$GLOBALS = “#dddddd”;
$GLOBALS = $bottom_bg_line;

// The height in pixels of the Logo bar at the top of the login page:
$GLOBALS = 110;
// The height in pixels of the Navigation bar:
$GLOBALS = 22;
// The height in pixels of the Title bar:
$GLOBALS = 20;

// The assistant word, MORE printed next to titles that can be clicked:
//   Note this label gets translated here via the xl function
//    -if you don’t want it translated, then strip the xl function away
$tmore = xl(’(More)’);
// The assistant word, BACK printed next to titles that return to previous screens:
//   Note this label gets translated here via the xl function
//    -if you don’t want it translated, then strip the xl function away
$tback = xl(’(Back)’);

// This is the idle logout function:
// if a page has not been refreshed within this many seconds, the interface
// will return to the login page
if (!empty($special_timeout)) {
  $timeout = intval($special_timeout);
}
else {
  // Max Idle Time in seconds before logout.  Default 7200 (2 hours):
  $timeout = 7200;
}

//Version tags

$v_major = ‘3’;
$v_minor = ‘1’;
$v_patch = ‘0’;
$tag = ‘’; // minor revision number, should be empty for production releases

// This name appears on the login page and in the title bar of most windows.
// It’s nice to customize this to be the name of your clinic.
$openemr_name = ‘OpenEMR’;

$openemr_version = “$v_major.$v_minor.$v_patch”.$tag; // Version tag used by program

$rootdir = $GLOBALS;
$srcdir = $GLOBALS;
$login_screen = $GLOBALS;
$GLOBALS = $css_header;
$GLOBALS = $backpic;
$GLOBALS = $rootdir;

// change these to reflect when the daily view should start to display times
// as well as it should end. ex schedule_start = 9 schedule_end = 17
// start end times in hours
$GLOBALS = 8;
$GLOBALS = 17;

// This is the time granularity of the calendar and the smallest interval
// in minutes for an appointment slot:
$GLOBALS = 15;

// Include the authentication module code here, but the rule is
// if the file has the word “login” in the source code file name,
// don’t include the authentication module - we do this to avoid
// include loops.

if (!$ignoreAuth) {
  include_once("$srcdir/auth.inc");
}

// If you do not want your accounting system to have a customer added to it
// for each insurance company, then set this to true.  SQL-Ledger currently
// (2005-03-21) does nothing useful with insurance companies as customers.
$GLOBALS = true;

// If OpenEMR is being used by an athletic team rather than in a traditional
// clinical setting, set this to true.
$GLOBALS = false;

// True if this is a weight loss clinic:
$GLOBALS = false;

// The telephone country code of this installation.  1 = USA.
// See http://www.wtng.info/ for a list.
$GLOBALS = ‘1’;

// This determines how appointments display on the calendar:
// 1 = lastname; 2 = last,first; 3 = last,first(title);
// 4 = last,first(title: description)
$GLOBALS = 2;

// Make this true if you want providers to see all appointments by default
// and not just their own.
$GLOBALS = false;

// Set this to true if you want the drug database and support for in-house
// prescription dispensing.
$GLOBALS = false;

// Make this nonzero if you want the ability to sell products other than
// prescription drugs.  Also requires inhouse_pharmacy to be true.
// This allows selection of products from the Fee Sheet.
// Set this to 2 if you want a simplified interface (no templates, no
// prescription drugs), otherwise to 1.
$GLOBALS = 0;

// True to omit insurance and some other things from the demographics form:
$GLOBALS = false;

// True to omit form, route and interval which then become part of dosage:
$GLOBALS = false;

// True to omit method of payment from the copay panel:
$GLOBALS = false;

// You may put text here as the default complaint in the New Patient form:
$GLOBALS = ‘’;

// This was added for sports teams needing to fill out injury forms, but might
// have other applications.
$GLOBALS = ‘’;

// If you want a new encounter to be automatically created when appointment
// status is set to “@” (arrived), then make this true.
$GLOBALS = true;

// If you don’t want employer information, country, title in patient demographics.
$GLOBALS = false;

// This is for insurance billing and is specific to Medicare.  Make it true
// to force the referring provider to be the same as the rendering provider,
// instead of coming from the patient demographics.
$GLOBALS = false;

// You can set this to the category name of a document to link to from the
// patient summary page.  Normally this is the category for insurance cards.
// This lets you click on the patient’s name to see their ID card.
$GLOBALS = ‘’;

// Traditionally OpenEMR has allowed creation of user groups (not the same
// as access control groups).  However this has never done anything very
// useful and creates confusion.  Make this false if you really want it.
$GLOBALS = true;

// These are flags for some installation-specific customizations for which
// we have not yet figured out better parameters.
$GLOBALS = false;
$GLOBALS = false;

// True to support discounts in the Checkout form by dollars instead of percentage.
$GLOBALS = false;

// Set this to false if you want the doctors to be prompted to authorize
// patient notes created by others.
$GLOBALS = true;

// This turns on the option of creating a new patient using the complete
// layout of the demographics form as well as a built-in search feature.
// Everyone should want this, but for now it’s optional.
$GLOBALS = true;

// Multi-facility Configuration
//
// Restrict non-authorized users to the “Schedule Facilities” (aka user_facilities table)
// set in User admin.
$GLOBALS = false;
//
// Set a facility cookie, so browser keeps a default selected facility between logins.
$GLOBALS = false;

// This can be used to enable the old Charges panel for entering billing
// codes and payments.  It is not recommended, as it was obsoleted by the
// Fee Sheet which is more complete and comprehensive.
$GLOBALS = true;

// If you want Hylafax support then uncomment and customize the following
// statements, and also customize custom/faxcover.txt:
//
// $GLOBALS   = ‘localhost’;
// $GLOBALS  = ‘/var/spool/fax’;
// $GLOBALS = ‘enscript -M Letter -B -e^ -margins=36:36:36:36’;

// For scanner support, uncomment and customize the following.  This is
// the directory in which scanned-in documents may be found, and may for
// example be a smbfs-mounted share from the PC supporting the scanner:
//
// $GLOBALS = ‘/mnt/scan_docs’;

// Customize these if you are using SQL-Ledger with OpenEMR, or if you are
// going to run sl_convert.php to convert from SQL-Ledger.
//
$sl_cash_acc    = ‘1060’;       // sql-ledger account number for checking account
$sl_ar_acc      = ‘1200’;       // sql-ledger account number for accounts receivable
$sl_income_acc  = ‘4320’;       // sql-ledger account number for medical services income
$sl_services_id = ‘MS’;         // sql-ledger parts table id for medical services
$sl_dbname      = ‘sql-ledger’; // sql-ledger database name
$sl_dbuser      = ‘sql-ledger’; // sql-ledger database login name
$sl_dbpass      = ‘secret’;     // sql-ledger database login password

// Don’t change anything below this line. ////////////////////////////

$encounter = empty($_SESSION) ? 0 : $_SESSION;

if (!empty($_GET) && empty($_SESSION)) {
  $_SESSION = $_GET;
}
elseif (!empty($_POST) && empty($_SESSION)) {
  $_SESSION = $_POST;
}
$pid = empty($_SESSION) ? 0 : $_SESSION;
$userauthorized = empty($_SESSION) ? 0 : $_SESSION;
$groupname = empty($_SESSION) ? 0 : $_SESSION;

// global interface function to format text length using ellipses
function strterm($string,$length) {
  if (strlen($string) >= ($length-3)) {
    return substr($string,0,$length-3) . “…”;
  } else {
    return $string;
  }
}

// turn off PHP compatibility warnings
ini_set(“session.bug_compat_warn”,“off”);

//settings for cronjob
// SEND SMS NOTIFICATION BEFORE HH HOUR
$SMS_NOTIFICATION_HOUR = 50;
// SEND EMAIL NOTIFICATION BEFORE HH HOUR
$EMAIL_NOTIFICATION_HOUR = 50;
$SMS_GATEWAY_USENAME     = ‘SMS_GATEWAY_USENAME’;
$SMS_GATEWAY_PASSWORD    = ‘SMS_GATEWAY_PASSWORD’;
$SMS_GATEWAY_APIKEY      = ‘SMS_GATEWAY_APIKEY’;
?>

bradymiller wrote on Monday, February 15, 2010:

hey,
Did you install the xampp-openemr package? Or did you install xampp separately, then install OpenEMR? What version OpenEMR are you installing?
-brady

rehman123 wrote on Monday, February 15, 2010:

No I did not use the package.

I had XAMPP installed separately.

I UNZIPPED the openemr package and called setup.php

The installation went fine. No errors!

At the end when I was given the link to open the app. I got this error.

bradymiller wrote on Monday, February 15, 2010:

Ensure you have the following php configuration in your php.ini file (if change anything, then need to restart the apache server):
http://www.openmedsoftware.org/wiki/FAQ#What_are_the_correct_PHP_settings_.28can_be_found_in_the_php.ini_file.29_.3F

Then if still not working, look through your apache/php error log file.

-brady

rehman123 wrote on Tuesday, February 16, 2010:

Here is the apache log, it has to do something with the paths, I have checked the globals.php. There is nothing wrong with the paths.

  Digest: generating secret for digest authentication …
  Digest: done
  Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 configured - resuming normal operations
  Server built: Dec 10 2008 00:10:06
  Parent: Created child process 1308
  Digest: generating secret for digest authentication …
  Digest: done
  Child 1308: Child process is running
  Child 1308: Acquired the start mutex.
  Child 1308: Starting 250 worker threads.
  Child 1308: Starting thread to listen on port 443.
  Child 1308: Starting thread to listen on port 80.
   File does not exist: C:/Program Files/xampp/htdocs/openemr, referer: http://localhost/oemr/interface/login/login_frame.php
   File does not exist: C:/Program Files/xampp/htdocs/openemr, referer: http://localhost/oemr/interface/login/login_frame.php
   File does not exist: C:/Program Files/xampp/htdocs/openemr, referer: http://localhost/oemr/interface/login/login_frame.php
   File does not exist: C:/Program Files/xampp/htdocs/openemr, referer: http://localhost/oemr/interface/login/login_frame.php

visolveemr wrote on Wednesday, February 17, 2010:

Hi,

Your openemr installation directory is “C:\Program Files\xampp\htdocs\oemr”

But the value of $web_root in your globals.php is set to “/openemr”.

Can you please modify the $web_root as given below?

$web_root = “/oemr”;

Do let us know what you figure out.

Thanks
ViCarePlus Team

rehman123 wrote on Wednesday, February 17, 2010:

Hey thanks ! That resolved the issue.