noah nwnw5

rev:2012/11/04

NOAH Installation and Maintenance Manual

Contents

... Installer's Frequently Asked Questions: FAQ

Quick Start
Verbose Installation Procedure
Variable Definitions and noah.config file
The 'database.config' file
The 'icons.tab' file
Database Maintenance and Backups/Archiving
Email Notification
Content Search
Upgrading an existing NOAH installation
Upgrading or changing the NOAH license key
Apache Configuration Tips
Windows XP PRO - IIS Settings
Windows Server 2003 - IIS Settings
Trouble Shooting
Version History


Quick Start   (top)

NOTE:This NOAH Server has not been qualified for use in an NFS or SAMBA file storage configuration nor has it been qualified for use in a Microsoft file sharing configuration. All directories specified in the NOAH configuration file (noah.config) must be locally mounted file systems or data loss could occur.

If you are in a hurry and don't feel you need the long explanation, here's the abbreviated NOAH Installation procedure:

  1. Download NOAH from http://noah.nordicwind.ca.

  2. NOTE: If you are installing the debian release, you will not have a install-noah program and dpkg -i will install a default setup as localhost. See documentation under /usr/share/doc/noah if you get stuck!

  3. Select your OS and unzip or untar your files in an account with software install privileges. Change to the extracted directory and run install-noah and hit ENTER as required to get to the "NOAH License Agreement".

  4. Say 'yes' to the "NOAH License Agreement" if you agree with this legal document.

  5. From NOAH Installation Menu, select the 's', 'c','i' and 't' options (in that order) until you are satisfied with the outcome. If you are LINUX OS, see Apache Configuration Tips.

  6. If you are a WINDOWS OS, go to Windows XP PRO - IIS Settings or Windows Server 2003 - IIS Settings to ensure your directory permissions and IIS settings are correct BEFORE you login to NOAH.

  7. Go to the NOAH login page with your browser (cgi-bin/.../login.cgi) and login with user=admin and password=blizzard.

  8. Go into and edit the 'admin' user (click on [E] under [Info]) and change the password to a more secure one. Add a email address to 'admin' while you are here.

  9. Click on Help in NOAH Banner (upper right) and read both the "Users Help Manual" and the "Administrators Help Manual".

  10. Go to the Database Maintenance and Backups/Archiving section of this document to setup a program to periodically empty your WasteBasket, remove deleted file versions and clean up the temp directory.

  11. If your NOAH License Key supports Email Notification, go to the Email Notification section of this document to setup a program to periodically send email and empty the email notification queue.

  12. If your NOAH License Key supports Content Search and your server is a WINDOWS server, make sure you setup gentext -new program to periodically index new database documents (included in email.bat if you setup Email Notification). You may also want to check out the Content Search section of this document.


The Verbose Installation Procedure   (top)

NOTE:This NOAH Server has not been qualified for use in an NFS or SAMBA file storage configuration nor has it been qualified for use in a Microsoft file sharing configuration. All directories specified in the NOAH configuration file (noah.config) must be locally mounted file systems or data loss could occur.
  1. Login to an account with program installation privileges that will permit you to install programs in the cgi-bin and html directories of your server. In Linux this will be 'root' user, in Windows it's any account with administration privileges.

  2. Download NOAH from http://noah.nordicwind.ca.

  3. Select your OS and unzip or untar your files in an account with software install privileges. Change to the extracted directory and run 'install-noah' and hit ENTER as required to get to the "NOAH License Agreement".

  4. NOTE: If you intend on installing this on a remote server via ftp or something similar, you may want to run 'install-noah' with the -destdir option (see install-noah -h) and set a destination directory for all the files to be installed in and then transfer these files up to your ISP.

  5. Use the SPACEBAR to page through this agreement. Once read, type 'yes' if you accept this legal agreement.

  6. One more ENTER after extracting the remaining NOAH files and you will see a summary of your license key with the NOAH options and maximum # of users etc..

  7. You are now at the NOAH Installation Menu and are given a number of options. You will want to select these three options in order starting with Option 's'. If you are LINUX OS, see Apache Configuration Tips.

  8. Menu Option 's' : setup variables

    Set and adjust each of these variables to correspond with your server configuration. If you want to take the default answer, hit ENTER, otherwise type in a new value followed with ENTER. Repeat this menu selection until you are satisfied that the answers are correct. See the Variable Definitions and noah.config file section for help with these variables.

  9. Menu Option 'c' : create noah.config file

    Select this option to create the noah.config file based on the variable settings from Menu Option 's'.

  10. Menu Option 'i' - install files consistent with noah.config

    Select this option to create directories and copy files to their correct locations based on the variable settings from Menu Option 's'.

    Scroll back to check the messages from this option to see if there are any issues creating directories and copying files.

  11. Repeat Menu Options 's', 'c' and 'i' until you are satisfied with the results.

  12. Install Content Search support by selecting menu item 't' and following instructions.

  13. If you are a WINDOWS OS, go to Windows XP PRO - IIS Settings or Windows Server 2003 - IIS Settings to ensure your directory permissions and IIS settings are correct BEFORE you login to NOAH.

  14. Test to see if you can login to NOAH with your browser by running the login.cgi program in the cgi-bin directory you chose for NOAH.

    For example, if you have installed NOAH on a non-secure server running on your personal computer, your login address might be

    http://localhost/cgi-bin/noah/login.cgi

    where noah is the cgi-bin directory defined in your variable settings during installation.

    Of course, in the above example, localhost as a server name will only work if you are running your browser on the same machine as the server. You will have to determine your network computer name for other users on other machines to access this server.

  15. Login to NOAH with user=admin and password=blizzard and test file uploads and downloads and directory creation.

  16. Go into and edit the admin user (click on [E] under [Info]) and change the password to a more secure one. At the same time, add an email address to the 'admin' user.

  17. Click on Help in NOAH Banner (upper right) and read both the "Users Help Manual" and the "Administrators Help Manual".

  18. Go to the Database Maintenance and Backups/Archiving section of this document to setup a program to periodically empty your WasteBasket and remove deleted file versions.

  19. If your NOAH License Key supports Email Notification, go to the Email Notification section of this document to setup a program to periodically send email and empty the email notification queue.

  20. If your NOAH License Key supports Content Search and your server is a WINDOWS server, make sure you setup gentext -new program to periodically index new database documents (included in email.bat if you setup Email Notification). You may also want to check out the Content Search section of this document.


Variable Definitions and noah.config file   (top)

The install-noah program asks the installer a number of questions in Menu Option 's': "setup variables".

This section explains why these questions are being asked and what variables they are setting in the noah.config file.

At the end of this section, the remaining noah.config file variables are described.

IMPORTANT NOTE:

The database.config file in the cgi-bin directory tells the .cgi programs where to look for the noah.config and noah.key files. The default location for these files is in the sub-directory 'data_dir'/default where 'data_dir' is defined in the database.config file. If the login.cgi program does not find these files in this location, it creates these files by copying them from the versions found in the cgi-bin directory.

If you are going to edit the noah.config by hand, edit the noah.config in the 'data_dir'/default directory after login.cgi copies them over. If you are re-generating these files from the install-noah program, make sure you either delete the versions in the 'data_dir'/default directory and either let login.cgi copy them over or copy them over yourself.

Install Variable Settings:

Q1: Is this a HTTPS Secure server?

If you are operating NOAH with a Secure Server using an SSL certificate, then you will want to say yes to this question.

If you say 'yes' to this question, the noah.config variable https is set to '1'. This forces the NOAH cgi-bin programs to check to see if it is being served by an HTTPS server and issue an error if not.

This is important because some servers are setup for both secure and non-secure services and they sometimes put the secure and non-secure files in the exact same directory locations. If you did not set https=1 then you might think you are secure but you are not since a user can also run the NOAH cgi-bin programs from the non-secure HTTP server!

Q2: what's the name (URL) of this server?

This is something like http://www.nordicwind.ca and forms the home address of the NOAH server.

Note that the http part of this variable must agree with the earlier answer on whether this is an HTTPS (secure server) or not.

This variable is used primarily by the Elinks feature to supply an absolute path to linked files and directories.

The install-noah program will set the noah.config 'server' variable to this answer.

Q3: Were do you want to put the NOAH 'html' files on this server?

You need to know something about how your server is setup to answer this question.

The NOAH install-noah program needs to copy the NOAH html files to the correct location. As noted, this needs to be a full directory path since this location could exist anywhere on the servers file system.

The install-noah program will set the noah.config 'html_root' variable to this answer.

Q4: What's the corresponding browser path for these NOAH html files?

This answer, in combination with the 'server' name from answer Q2, will point a browser to the NOAH html files from answer Q3.

Among other things, this path is important for NOAH to be able to open up icons in the html nwicons sub-directory.

The install-noah program will set the noah.config 'html_home' variable to this answer.

Q5: Were do you want to put the NOAH cgi-bin files on this server?

The answers to this question and the next Q6 question are similar to Q3 and Q4 but refer to the cgi-bin directory where the NOAH cgi-bin programs are located.

You need to know something about how your server is setup to answer this question.

The install-noah program needs to copy the NOAH cgi-bin files to the correct location. As noted, this needs to be a full directory path since this location could exist anywhere on the servers file system.

The install-noah program will set the noah.config 'cgibin_root' variable to this answer.

Q6: What's the corresponding browser path for these NOAH cgi-bin files?

This answer, in combination with the 'server' name from answer Q2, will point a browser to the NOAH cgi-bin files from answer Q5. The user needs to point a browser to the login.cgi program in this cgi-bin directory to login to NOAH.

This question is closely related to the answer to Q5. Q5 is the file systems path to the cgi-bin programs where as Q6 is the browsers path to the same cgi-bin programs.

The install-noah program will set the noah.config 'cgibin_home' variable to this answer.

Q7: If you know where the mime.types file is on this server, enter the full path to this file or set this variable to 'none' if unsure!

The mime.types file is the file that the server uses to determine what type of file is being requested for viewing by the users browser. The NOAH download.cgi program uses the mime.types file to look-up the correct mime-type based on the filename extension.

For example, .html extensions are mime-type 'text/html' and by passing this mime-type onto the browser, the browser can make a better decision on how to deal with this file (in this case, text/html files can be opened directly by the clients browser!).

Another example is the .doc extension which usually has a mime-type of 'application/msword' which tells the browser that this is an MS Word document.

The safest answer to this question is 'none' to force the install-noah program to install and use the mime.types file supplied by NOAH. If you have a special mime.types file for your organization, to address special applications, you probably want to have NOAH point to YOUR mime.types file.

NOTE: Some browsers ignore the mime-type sent by the server if it thinks it has a better interpretation of the files filename extension. Most browsers also let the user associate a particular application with a filename extension which can cause other support issues.

The install-noah program will set the noah.config 'mimetype_file' variable to 'mime.types' if 'none' is the selected answer to this question. This will load the local 'mine.types' file in the NOAH cgi-bin directory.

In the WINDOWS version of NOAH, this 'mime.types' entry gets the full path of the cgibin directory.

Q8: Where do you want to put the NOAH database directory?

This is the directory where all the NOAH documents and database files are stored.

Make sure you allocate enough disk space to accommodate the expected storage requirements for the documents that you intend to store in NOAH. This disk space allocation must also include space for multiple document versions.

The install-noah program will set the noah.config variables 'sid_dir' and 'lock_file_dir' to this questions answer. Go to the end of this section for information on the uses of these two directories as defined in the noah.config file.

The install-noah program will also create the database.config file in both the cgi-bin and admin directories and set the variable 'data_dir' to this questions answer.

A Note on multiple databases

The user can point to different databases under the 'data_dir' directory other than the default database, if your noah.key license file permits. The user would use a URL something like this:

login.cgi?database=marketing

In the above example, NOAH would access datafiles in the directory 'data_dir'/marketing where 'data_dir' is defined in the database.config file.

Note that it is the responsibility of the administrator to create the marketing directory in this example (with correct access permissions) and to copy the correct versions of noah.config and noah.key into this directory. When login.cgi is run for the first time it will populate this database directory with the remaining missing database files.

Q9: Where do you want to put the admin directory for administration scripts ?

The admin directory contains programs and scripts to manage the WasteBasket and to manage the sendmail queue for the Email Notification option.

See the section on Database Maintenance and Backups/Archiving and Email Notification for more information on the uses of scripts and programs in this directory.

The purge, efetch and esend programs read the database.config file in the admin directory to locate and then read the noah.config file. Of course it is important that the database.config file in the admin directory agrees with the database.config file in the cgi-bin directory. To specify a database substructure other than default, add the command line option database=marketing to any of these programs to access the database sub directory 'marketing'.

The importance of keeping admin programs in a separate directory from the NOAH cgi-bin directory can not be over emphasized. You do not want a malicious user accessing administration programs through a browser connection.

Q10: Where do you want to put the NOAH temporary files?

Temporary files are created when uploading files with NOAH. These temporary files are created and then deleted after the upload. To avoid file collision issues, sub-directories are created in this temporary space using the users login name and the IP address of the users client machine.

The install-noah program will set the noah.config 'temp_dir' variable to this answer.

Q11: What do you want to call document descriptions?

The default name for document descriptions in the NOAH meta-data is 'Abstract'. In some applications, this label might not be appropriate or confusing so the option to set this label to another value such as 'Description' is provided for.

The install-noah program will set the noah.config 'abstract_label' variable to this answer.

Q12: What is your SMTP server for EMAIL notifications?

The Email Notification option will make a connection to this SMTP server to send emails to NOAH users. This is only used in Windows environments. See the section on Email Notification for more information.

The install-noah program will set the noah.config 'smtp' variable to this answer.

 


noah.config file variables:

This next section describes the remaining noah.config variables not yet discussed.

disable_uploads_on_lock=y

Set to 'n' if you don't want file uploads disabled if locked by another user.

date_format=YYYYMMDD

Defines how date information is displayed in NOAH. One can also set this variable to MMDDYYYY or DDMMYYYY. In most cases, the month is displayed as a 3 character short-form like 'jan' for January.

Adding GMT to the end of 'date_format' sets the format to GMT which is useful if users are in different time zones and need a common reference.

wrap_trigger=25

Defines at what point file and directory names are wrapped in NOAH page listings. With the default value of 25, only filenames or directory names greater than 25 characters (including any 'lockedby' additions) have wrap enabled.

If you want to turn off wrapping, set this variable to a very large number.

Note that characters such as '_' and '-' are wrap breakpoints. If you want to suppress wrapping in a specific word, try using '.' as a separator (might still wrap at icon though).

lock_timeout_minutes=20

NOAH uses a lock file to lock out other NOAH users from modifying the NOAH database during a file upload or edit of meta-data. If for some reason the locking mechanism gets 'hung up', the lock function in NOAH will time out after 20 minutes (in this example).

Note that the IIS server in Microsoft may also timeout an idle process after 5 minutes.

sid_timeout_minutes=30

This is the session id time out in minutes. When a user logs in and gets validated against the users password, a session id (a 'session id' is a unique and hard to predict identification number) is generated for that user and kept in the sid.tab file. Every time a user accesses a NOAH cgi-bin page, this sid.tab file gets updated and the time of the last access is compared with present time.

In this example, the users session will time out if the value is greater than 30 minutes.

See also sid_level (next).

sid_level=2

If sid_level=2, a new session id is generated for the user on every server access and is passed as a cookie to the users browser. This makes it more difficult for someone to take over a user's session since the session id is always changing.

If the user is impatient and the INTERNET connection is slow, clicking multiple times on a link will cause the session id to change on the server without the browser getting the chance to update it's session id cookie. This will cause the user to get logged out!

By setting the sid_level=1, the session id is only generated once at login for the user and thus an impatient user and slow connection will not cause a user logout. Of course this is a less secure mechanism and is only recommended if NOAH is being run on a secure server (HTTPS).

sid_level=0 does not do what you think it does but in-fact is the same as sid_level=1.

The install-noah program sets sid_level=1 if the server is an HTTPS secure server and sid_level=2 if not HTTPS.

Android OS caused some issues with downloads as a separate download program launches and cookie data is lost and the session id gets out of sync. For this reason, downloads (download.cgi) are done with a sid_level==1 (ie. session id is frozen). This is also true for file downloads in elink.cgi.

sid_level==3 (untested) forces downloads to also change session id - but be aware that in 2012 Android OS 4.0* did not work with this mode.

max_upload_Ksize=2000

This variable sets the maximum upload file size to ensure an unwary user does not crash the server with extraordinarily large file uploads.

The install-noah program sets this variable to a default of 2000 Kbytes (2Meg).

email_world=1

Setting email_world=0 will DISABLE the option to send Email Notifications to the world NOAH users.

elinks_http=http://www.nordicwind.ca/
elinks_logo=/noah/nwicons/nw5.jpg

The button generates a down-loadable elink file that can be sent to another user or client. This file has a place for a link to a web-page and a logo.

If you do not want a logo but just a URL, then remove the 'elinks_logo' variable (or comment out with a # at start of line in noah.config file).

Commenting out both of these 'elinks_*' variables will disable their display in elinks files.

The install-noah program sets these variables to values pointing to the Nordicwind URL and logo.

NOTE: It is becoming common for email tools these days to not display icons from external sources like web-pages when they are embedded in an email message. Keep this in mind when adjusting these variables.

logo_http=http://www.nordicwind.ca/
logo=/noah/nwicons/nw5.jpg
pre_logo=/noah/nwicons/poweredby.gif

These three variables let you replace the Nordicwind Inc. logo with your own logo(s) and http link.

These variables default to the values shown above if there are no entries in the noah.config file.

If you do not want a logo but just an http link, then set the 'logo' AND 'pre_logo' variables to 'blank':
i.e.

    logo=blank
    pre_logo=blank

The 'pre_logo' is generally only used in the login screens, so if you only want a logo in login, use the 'pre_logo' and set the 'logo' to 'blank'.

If you do not want an http link on your logo(s), then set the logo_http variable to 'blank' in a similar fashion.

lock_file_dir=c:/noah_data
sid_dir=c:/noah_data

The 'lock_file_dir' is the directory that the noah_lock_file is created in. This file is used in locking out other users when an edit or file upload to the NOAH database is occurring.

The 'sid_dir' is the directory that the sid.tab file is kept in and is used to track valid users and decide if they should be timed out or logged out. The sid.tab file is used in a locking-mode similar to the noah_lock_file.

The install-noah program sets all these noah.config variables to the same directory as described in the answer to question Q8.

zip_path=

This variable is used to enable automatic unzipping of zipped version files in the 'dir-*' version directory. Typically this variable is set to the unzip program distributed with NOAH and found in the NOAH cgi-bin directory (Linux) or noah_admin directory (Windows).

If the NOAH download program can not find the file it's looking for, it will try to extract the file from the doc.zip file if it exists.

The NOAH purge program (found in the NOAH 'admin' directory) has a '-zip' option for creating a doc.zip file in each 'file_dir/f0-*/f1-*/f2-*/' directory.

lock_prompt=1

The 'lock_prompt' variable sets the behaviour of NOAH when a user clicks on a filename or file icon in the NOAH directory listing pages.

Here are your options:

passwd_level=3

This variable sets the requirement level of the passwords that users are screened against when changing a password or applying for a new password on the login page. NOTE that this level is ignored for an admin user changing a password of a user in the User Administration menu's.

There are currently three levels:

passwd_level=3 is the default level and checks for 8 character passwords, verifies that the first 8 characters do not match the username, firstname, lastname or email address and, if changing password, that the new password does not match the old password.

passwd_level=2 only checks for 4 character passwords and only tests against the last password (if changing passwords).

passwd_level=1 only checks that the password is not zero-length.

search_max=2000

This variable sets the maximum number of items displayed when executing a search.

For Advanced Searches, search_max sets the maximum select range where the select is in steps of 25%. If search_max is negative, the additional 'no limit' option is available in the select with the numerical limits interpreted as positive numbers.

lock_perms=BX

This parameter controls how file and directory locks are treated by the NOAH Delete and Move commands.

The first character controls the Delete command and the second character controls the Move command. The letter F refers to files, D refers to directories and B is for both files and directories.

If the desire is to prevent deletion of both locked files and dirs unless the user owns the lock, then put 'B' in first character position. If you also want to prevent the Move command from moving locked files and dirs, then put a 'B' in 2nd character position.

The default value of 'BX' means that the Delete command can not delete a directory or file if it is locked AND the user is not the owner. With this default value, the Move command can move a locked file or directory any where the user wants (provided the permission accesses permit the move).

If you wanted to prevent both Delete and Move from acting on locked files and directories, then make both letters 'B'.

NOTE that when deleting or moving a directory, NOAH checks the complete hierarchy of the directory for locked files and directories searching for lock violations.

text_params=5000:1000:50:5:10

This set of parameters control how NOAH determines if a file is a text file and is used when a new file is indexed by NOAH (i.e. create .stats file) to support Content Search option.

There are five parameters and they are separated by :'s and are defined from left to right as follows:

n_test:sample size (if possible)
n_alpha_only:threshold size to include space/cr test (below this and we only do alpha count test).
alpha_test:threshold minimum for alpha count test (normalized so 100=100% of chars).
crs_test:threshold minimum for cr count test (normalized so 10000=100% of chars).
spaces_test:threshold minimum for space count test (normalized so 1000=100% of chars).

The test for a text file counts the number of alphanumeric characters, cr's and spaces and normalizes these numbers and then compares to the threshold test limits above.

NOTE that the normalizing of crs and spaces is to 10000 and 1000 respectively for added sensitivity.

If the file size is too small, only the alpha test limit is checked.

If the file exceeds these test limits, it is considered a text file.

ignore_ext=gif:jpeg:jpg:png:tif:tiff:exe

This variable sets a list of common file extensions that will be ignored in generating Content Search indexing files (*.stats files).

getrecent_pwd

This variable sets the password that enables the program getrecent.cgi to display the name of files that do NOT have access permission set to 'universe'. This is useful if you are calling getrecent.cgi from a webpage or wiki and want you users to be able to see the filenames of recent uploads/version changes even if they do not have read access to the actual file.

getrecent_args= &button=B

This variable sets the argument list for the getrecent.cgi links in NOAH (Show recent changes) so you can fine-tune the behaviour of getrecent.cgi for parameters like # of recent days, whether to include a 'back' button, what fields to show and in what order and what constitutes a 'change'.

disable_options=

This variable permits a user to disable a NOAH option that is enabled in the noah.key license. This makes it possible for a user to turn off a feature with out having to purchase a new license!.

The option string is a series of upper and lower case characters identical to the option string in your license. By making a character option a lower case, you turn off this option.

Typically, an option string is of the form 'ScEmT'. If a user sets disable_options=ScEmt then the Content Search option will be disabled. (see FAQ - I1.2 ).

Cn=shortname:longname

Category configuration lines add a 'category' field to the meta-data of all files and permits the user to assign a 'category' to a file to make it easier to sort and search files in NOAH.

The category configuration lines all start with a 'c' or 'C' and are followed by a number and an '=' sign which assigns a shortname and a longname to the category (separated by a colon).

The administrator can configure up to 49 categories with numbers from 1 to 49. Shortnames are used in the directory listings in NOAH and the long names are used in file info pages as well as meta-data edit and search pages.

Pull-down select boxes are ordered based on entry position in the noah.config file and column-sorted based on the shortname.

The administrator can change the short and long names for a given category number without risk of contaminating the NOAH database since only the category number is stored in the NOAH database files. This permits some evolution in category naming.

The noah.config file contains example category entries that can be used as a basis to start understanding how this feature works. Simply remove the '#' to enable these lines.

Example:

C1=FS:Feasibility Study
C2=BP:Business Plan
C3=CS:Customer Spec
C5=DS:Data Sheet
C6=TP:Test Plan
C7=MP:Marketing Plan

category_label=Cat : Doc. Category

This variable permits a user to change the short and long label names for the category fields in NOAH. Short name is first then a colon and the long name.

Sn=ctrl:shortname:longname

Status configuration lines add a 'status' field to the meta-data of all files and permits the user to assign a 'status' to a file to make it easier to sort and search files in NOAH as well as exercise some control over how a document gets a certain status.

The status configuration lines all start with an 's' or 'S' and are followed by a number and an '=' sign which assigns a control string followed by a shortname and a longname to the status (separated by colons).

The administrator can configure up to 49 status states with numbers from 1 to 49. Shortnames are used in the directory listings in NOAH and the long names are used in file info pages as well as meta-data edit and search pages.

Pull-down select boxes are ordered based on entry position in the noah.config file and column-sorted based on the shortname.

The administrator can change the short and long names for a given status number without risk of contaminating the NOAH database since only the status number is stored in the NOAH database files. This permits some evolution in status naming.

The ctrl field of these status definitions can contain specific control characters to determine who can change a files state as well as some control over new file defaults.

control character A:
User must be a member of the admin group to enter or leave this status state.

control character O:
User must be the OWNER of this file to enter or leave this status state.

If no A or O control characters, then anyone with write-permission to the file meta-data may enter or leave this status state.

If BOTH A and O control characters, then either a member of the admin group or the OWNER may enter or leave this status state.

In all cases, the admin super user (username=admin) can change the status of a file

control character V:
This control character controls who can change the default version of the file. If the A or O control characters are present, then only those users can change the default version. There is no meaning in having a V control character without having an A and/or an O present.

The noah.config file contains example status entries that can be used as a basis to start understanding how this feature works. Simply remove the '#' to enable these lines.

Example:

S1=:DFT:Draft document
S2=OAV:PRE:Pre-Release (review)
S3=AV:REL:Release (sign-off)
S4=A:REV:document under Revision
S5=A:OOD:document is Out Of Date
S6=A:OBS:document is Obsolete - do not use!

status_label=Stat : Doc. Status

This variable permits a user to change the short and long label names for the status fields in NOAH. Short name is first then a colon and the long name.


The 'database.config' file   (top)

The database.config file contains a number of variables that directs the executing program to the correct database. It also contains a variable to locate the mkstats-* scripts for the Content Search option.

NOTE that if you change the content of the database.config file in the cgi-bin directory, you should also make the same change in the database.config file in the NOAH admin directory.

These variables are described next:

data_dir

This variable tells the program where to find the NOAH Database so it can read the noah.config and noah.key files .. usually under the subdirectory 'default' unless the command line option 'database' sets the subdirectory to some other name.

maketext_dir

This variable tells NOAH where to find the mkstats-* scripts to make text files and generate .stats files to support the Content Search option.

NOTE that, in the WINDOWS version of NOAH, the install-noah program does not define the maketext_dir in the database.config file in the cgi-bin directory. This is to support a batch mode of indexing (scheduled calls to gentext) which the Linux version does not require.

If you DO define the maketext_dir in this database.config file in the cgi-bin directory, the WINDOWS version of NOAH will attempt to behave like the Linux version and launch a NOAH child process to immediately index the uploaded file. This may not work in WINDOWS unless you change the server authentication for anonymous users in the cgi-bin directory to a username that permits launching of a NOAH process and execution of batch programs.

Only a knowledgeable Windows System administrator should open up your Windows server for this run-time indexing of file uploads. NOTE that there is most probably 'security issues' if you enable your IIS server to run batch programs.

database

You require a database assignment in the database.config file for each database in your 'data_dir' directory provided your NOAH license supports multiple databases.

If you do not have a 'database' entry in your database.config file, your database subdirectory is 'default'.

You may have as many 'database' entries in your database.config file as you wish as long as you don't exceed the number of multiple databases in your NOAH license.


The 'icons.tab' file   (top)

The icons.tab file is located in the database directory (along side the noah.config file) and is used to identify filenames that you want to appear first in NOAH listings (above Directories) and with a custom icon.

The icons.tab file is pre-configured with three special filenames: 'wiki.html', 'index.html' and 'webpage.html' as shown in this next example:

# To simplify the expansion of icons, the following icons convention is used:
#  - icon extension is assumed to be .gif
#  - base icon is:       'icon-name'.gif
#  - RED icon is:        'icon-name'-red.gif    (non-default)
#  - S icon is:          'icon-name'-s.gif      (subscriber)
#  - RED S icon is:      'icon-name'-red-s.gif  (non-default subscriber)
#  - link icon is:       'icon-name'-L.gif
#  - link RED icon is:   'icon-name'-red-L.gif    (non-default)
#  - link S icon is:     'icon-name'-s-L.gif      (subscriber)
#  - link RED S icon is: 'icon-name'-red-s-L.gif  (non-default subscriber)
#
#type;prompt;filename;base icon-name (.gif assumed extension if not present);obs1;obs2;obs3;spare1;spare2;
wiki;0;wiki.html;wiki.gif;;;;;;
html;0;index.html;wiki.gif;;;;;;
html;0;webpage.html;wiki.gif;;;;;;

The fields are defined (left to right) as follows:

type:file type - useful if another script is going to process these file types
prompt:set to '0' or '1'. If '0' then download prompting disabled.
filename:The filename that is to get special treatment.
BASE icon:The icon to be used for this filename (must exist in the html/nwicons directory).
See definitions for associated icons in the icons.tab example file (above).

See Users Help Manual: Special File icons for more info.


Database Maintenance and Backups/Archiving   (top)

The strategy in NOAH is to leave the deletion of files up to the NOAH Administrators control. To this end, when a user deletes files and directories the files are not actually deleted, they are just moved in the database to appear under the WasteBasket directory. In fact, the files themselves do not move, just the entry in the database that changes.

Similarly, when a user deletes a file version, a database entry changes to indicate that the version is 'deleted'.

This means that, unless the purge program (described next) is run, an administrator can undelete files in the WasteBasket simply by moving them (with the move command) to the desired location. Similarly, a user can undelete versions that have not been purged with the button in the View properties and Versions ([V]) page.

purge [database='databaseName'] [-zip] [-unzip] [-t] [-k 'n'] [-daily_at 'hr']

In the NOAH admin directory (see question Q9 in Variable Definitions section), you will find a program call purge.

This program reads the NOAH database entries and moves deleted files (i.e. WasteBasket files) out of the general NOAH database and into a directory in the 'data_dir' directory called waste. It also moves versions that have been marked as deleted out of the NOAH database and into this waste directory.

Again, the idea is never to actually delete any files, just move them and leave it up to the NOAH Administrator to decide if or when files should be permanently deleted or archived.

To keep the waste directory easy to manage, sub directories are created by purge. The first directory created is the 'date' directory with the directory name set to the current date (in YYYY-mmm-DD format).

Below this 'date' directory, the 'time' directory is created. Each one of the 'time' directories, has a waste version of the database files (.tab files) with only entries for the deleted files and versions and directories. In this time directory, the files and file versions themselves are found along with individual *meta-data.txt files that contain the meta-data for each file.

The *meta-data.txt files lend themselves to common search tools such as grep or find making it easy to search for files from meta-data outside of the NOAH server environment.

For example, if these files were transferred to cd-rom, one might want to sort and search through these 'archives' for a particular document title or author. This would be easy to do in this format.

The purge program also deletes the NOAH temp directory to remove any user files left over from zip downloading. This temp file is ONLY purged if the -t option is supplied i.e. purge -t. If a user is in the middle of downloading a multi-file zip when purge is run with this option, the users file would get deleted and the user would have to start the download again. For this reason, it is recommended that the purge -t option be used when there is little activity on the NOAH server.

Since purge uses file-locking just like the cgi-bin programs, there is no need to disable the NOAH server to do backups.

purge -zip will go through all your database files and zip them up into a 'doc.zip' file in each 'dir-*00' directory in the database. See zip_path for more details on this feature.

purge -unzip will go through all your database files and unzip them from the 'doc.zip' file in each 'dir-*00' directory. This option does NOT delete the 'doc.zip' files.

If NOAH is installed on a WINDOWS Client OS like Win-XP, the most convenient way of scheduling purge is through the Windows Scheduling tool.

NOTE 1: Running 'purge' with the -v option puts the program in a more verbose mode.

NOTE 2: Running 'purge' with the command line option of 'database=sales' operates on the database subdirectory 'sales'.

purge -keepmonths 'n' (or -k 'n') will leave files and directories in the WasteBasket folder that have been deleted in the last 'n' MONTHS. It is easy to see which files these are since the WasteBasket organizes file and directory deletes in year-month (YYYY-MM) sub-directories. In addition, log file entries that are less than 'n' months old will not be removed.

Remember that purge never deletes files from the server but only moves files out of the database and into a time/date stamped waste directory.

The default keepmonths is 2 which means that if you want to completely purge your Wastebasket and log file, use purge -k 0.

With the default keepmonths setting of 2 months, you can run the purge command once a day (probably late at night when there are few or no NOAH users logged on) to keep the WasteBasket trimmed down to deletes that are less than 2 months old.

purge -daily_at 'n' is an option that will ensure that purge is only run once a day when the hour reaches 'n' (0 to 23).

This is a useful feature if you want to add the purge command to your email.bat (Windows) or email.bash (Linux) scheduled script where the repetition rate is typically every 5 minutes but you only want to run the purge command once a day. This is probably more useful in a Windows installation since it can be awkward setting up and monitoring multiple scheduled tasks in some windows installations.

Daily Backups:

Doing a daily backup of the NOAH database is a very good idea and this is best done as part of your normal server backup strategy.

The critical files that should be backed up regularly are in the noah database directories commonly '/var/local/noah' for Linux and 'c:\noah_data' in Windows.

As a secondary precaution, NOAH also does a back up of some of the critical .tab files triggered by the first login to NOAH on a given day PROVIDED THAT THE DATABASE HAS FEWER THAN 8192 ENTRIES.

This back up is not complete and can not be used to fully restore the directory structure of the NOAH database. It is useful for debug and some limited restore of all but directory information for small databases.

When a backup is triggered, the index .tab files that have less than 8192 entries are backed up in the NOAH database subdirectory called backups. Each of these files is prefixed with the day of the month. The versions.tab files have the additional prefix of 'dir-xxx' added to indicate which directory the versions.tab file came from.

Here is a typical example of the backups directory from the 11th day of the month:

11.dindex.tab
11.dir-000-versions.tab
11.dir-064-versions.tab
11.dir-128-versions.tab
11.index.tab
11.subscribe.tab
11.users.tab

If it is necessary to retrieve a database table file from backups, be aware that the permission settings of the .tab files must permit writing by the server 'username'.

Make sure you test the editing of the meta data for files and directories and the editing of the versions.tab files and the users.tab if you perform such a retrieval.

Finally, as suggested earlier, these .tab files are incomplete (missing the *.md files in the dir_data directories) and so you may not be able to fully restore your NOAH database to it's original directory configuration .. so make sure you DO YOUR OWN SERVER BACKUPS and leave these .tab files for a last resort analysis.

Setting the 'disable_backup=1' in the noah.config file will turn off daily backups.


Email Notification   (top)

Quick Start using BLAT (Windows Environment):

  1. If you are not running NOAH's Content Search option, comment out the line that runs the gentext program by inserting 'rem' at the start of the line so that you do not get error messages from the gentext program.

  2. Schedule the batch script email.bat in the NOAH admin directory to run every 5 or 10 minutes, depending on how frequently you want email notification to be sent.

  3. Make sure that the scheduler knows that email.bat needs to run in the admin directory!

  4. Test Email Notification with and then with a file version upload
    (Select Actions: ).

  5. Look at the email.log file in the admin directory to see that the email was sent with no errors.

Quick Start using Unix sendmail (Linux Environment):

  1. Schedule the bash shell script email.bash in the NOAH admin directory to run every 5 or 10 minutes, depending on how frequently you want email notification to be sent. The email.bash program may need to be tweaked if you are not using the default /usr/local/noah/admin/bin directory. There are also some sample crontab entries in this script if you are not familiar with crontab in unix.

  2. Make sure that you provide the full path to the email.bash in your crontab file! Test the script by running the script from another directory as root before making your crontab entry!

  3. Test Email Notification with and then with a file version upload
    (Select Actions: ).

  4. Look at the email.log file in the admin directory to see that the email was sent with no errors.

Customizing Email Notification:

The Email Notification programs in the NOAH admin directory are setup in a modular fashion so customization is easy. Here is a list of the email program files and configuration files with a description of what the files do.

efetch [database='databaseName']

This program sets the noah_lock_file and then copies the NOAH database file sendmail.tab to the email subdirectory and then releases the lock file.

No matter how you customize your email installation, you will probably still want to use efetch to stage the processing of the sendmail.tab queue so as not to cause a file corruption problem between processing the email queue and a user adding to the queue.

Use the -v option for some feedback as to what efetch is doing!
Use the -h option for help.

esend [database='databaseName']

This program reads the sendmail.tab file in the email subdirectory and processes this file to send emails via SMTP.

The SMTP server name comes from the noah.config file (Windows only).

The email command used to send the email is email.win.command.

esend looks at the users.tab file and regenerates a fresh collection of group and world email lists in the NOAH database subdirectory email. It then reads the sendmail.tab file and when it sees a group email target, it loops through the corresponding group email list generating and sending email messages for each entry.

If esend is unable to send at least one email, it moves/renames the sendmail.tab to the local admin directory with a date-time stamp in the filename and generates a warning. This permits further analysis of the issues and provides the administrator the option of trying to re-run esend on this file with the esend -f 'filename' option.

esend creates the email to be sent based on one of three template files which the user can customize; one for , another for new version uploads and the third template file is for subscriber email notification.

The esend program substitutes the following 'variables' in the template files with data it gathers from the NOAH database and sendmail.tab file. Note the use of ':' to ensure the variables are substituted uniquely.

:FIRSTNAME:	The first name of the person sending the email
:LASTNAME:	The last name of the person sending the email.
:USERNAME:	The username of the person sending the email.
:EMAIL:		The email address of the person sending the email.
:TO_EMAIL:	The target email that the email is being sent to 
                (described above). 

:NAME:		The name of the file or directory that the notice is being 
                generated for.
:TITLE:		The title of the file or directory.
:AUTHOR:	The document author.
:OWNER:		The document owner.
:DOCNO:		The document number (NOAH internal number).
:VERNO:		The document version number.
:COMMENT:	The comment send with the email notification.
:DATE_LASTUP: 	The date the file was last uploaded to the NOAH database.

:SERVER:	The NOAH server URL (used to compose elink)
:CGIBIN_HOME:	The NOAH cgi-bin home (used to compose elink)

email.win.command

This is the command that esend uses to send an email. Edit this as required.

email.win.elinks.template

This is the template for creating emails and sending them if they are Elink emails. Edit as required.

email.win.upload.template

This is the template for creating emails and sending them if they are new version upload emails. Edit as required.

email.win.subscribe.template

This is the template for creating emails and sending them if they are subscriber notification emails. Edit as required.

email.txt

This is the TEMPORARY file created by esend with all variable substitutions for a particular target user.Note that this file gets generated for each target identified by esend. The email.win.command references this file.

Trouble Shooting Email Notification:

  1. Make sure that the sending user has an email address in the NOAH database.

  2. Verify that the 'smtp' address in the noah.config file is correct.(Windows Environment only, not required for Linux)

  3. Test BLAT independently by looking at the BLAT documentation at http://www.blat.net

  4. Adjust the email.win.command as required.
    You can run this command in a command window to verify sending email is working in your environment.

    Make sure that the sendmail.tab file is being generated in the NOAH database directory by the Elinks or new file version uploads.

  5. Test that efetch -v creates the sendmail.tab file in the NOAH database subdirectory email and that this program zeros the content of sendmail.tab at the NOAH database root.

  6. Test that esend -v sends email and removes the sendmail.tab file in the email NOAH database subdirectory.

  7. Try using esend -vv for more verbose information to assist in trouble shooting.


Content Search   (top)

3rd Party programs:

NOAH relies on a number of 3rd party programs to properly index the NOAH database for content searching.

There is a script for testing for these programs and you can access it here with your browser! It can also be run from the cgi-bin directory and the file name is: mkstats-test.cgi

If you are not sure if you have installed these 3rd party programs, go to http://noah.nordicwind.ca/3rdparty.html for guidance.

Windows:

In a new installation of NOAH on a WINDOWS server, the email.bat file will contain a line that calls the gentext.exe program with the '-new' option. This means that every time the email batch program is run, it will also index any recent uploads as well as update the 'content.sum' summary files to make content searches efficient.

If you don't have the NOAH Email Notification option, make sure you still schedule the email.bat to run every five minutes.

Since most searching is for documents that are more than 5 minutes old, a short delay on a Windows Server to index new documents should not be a concern.

Linux:

On a Linux server, the indexing of new uploads is done automatically at the time of the upload HOWEVER there is still a requirement to schedule the gentext.exe program with the -update option to at least update the 'content.sum' files for a more efficient content searching.

If you don't have the NOAH Email Notification option, make sure you still schedule the Linux email.bash to run periodically to make your content searching efficient.

Windows and Linux: Indexing an Existing Database

If you all ready have a NOAH database and you are adding the Content Search option, you will want to index the existing files. You can do this with the gentext program which you will find in the noah_admin directory. Use the -missing option.

The gentext options are as follows:

Content Search Limitations

The Content Search option uses text converters to generate .stats files for each file in the database. If the file is not a recognized file from the list of supported formats, the file is not indexed and no error is given.

Supported files are:

If a file is an unsupported format but it does have a filename extension, NOAH will call the mkstats script with the extension as the 3rd parameter. This script does 'nothing' unless a user customizes it to generate the .stats files for that file extension. Of course you will need a text extraction program for this to work!

If you want to suppress warnings about file formats that you will never want indexed, add the file's extension to the ignore-ext parameter in the noah.config file.

When a new version of NOAH is installed, any modifications to your mkstats-* scripts will be preserved and new NOAH versions will be installed with the .new extension.

Where are these mkstats-* scripts? - see the maketext_dir parameter in the database.config file.


Upgrading an Existing NOAH installation   (top)

If your existing NOAH installation is release v2.0.2 or later, login as the admin super user and click on the admin button updates for instructions.

To upgrade an existing NOAH installation earlier than release v2.0.2, follow these steps:

  • Download your new NOAH release to a suitable installation directory.

  • Log in to your operating system with administration or root privileges.

  • Find the previous installation directory that you used to install your last NOAH release and copy the 'install.config' file to the same directory that you saved the new NOAH release .bin file.

    NOTE: in post v1.5.1 NOAH, a copy of the install.config file is saved in your cgi-bin directory.

  • If unix, chmod 755 the NOAH new release .bin file so that it is executable.

  • Run/execute the NOAH release file (./filename in unix)

  • Verify that your setup variables are correct with the 's' option.

  • When you are satisfied that the variables are correct, select 'c' and 'i' options to generate a config file and install the new NOAH binaries.

    NOTE: If your noah.config file has changed in the database since you first installed NOAH, you will get warnings that the new noah.config file is different. This new noah.config file does NOT get installed over top of the database noah.config file. In most cases, this is what you want. If the new NOAH release has some new options, you might want to control these options through changes to your old noah.config file. Consult your Installation Manual for information on noah.config variables.

  • Understand and fix as required all NOTES and WARNINGS from the install.

  • install Content Search support by following the instructions in menu item 't'. (see notes on Version Compatibility Issues below.)

  • If instructed to do so, go to the noah admin directory and run the ./fix-indexes program.

  • If Content Search option is a new feature, run gentext -missing in your admin directory to index your database for Content Searching.

  • If your license is Linux, make sure your email.bash file is updated with the email.bash.new file (generated by the install-noah program if required) in your admin directory to contain the line: ./gentext -update and is scheduled to run frequently as a cron job.

  • Login to NOAH as user 'admin' and verify that everything is ok and that the correct NOAH version is displayed in the upper right corner of most pages.

  • Enable user logins through the install-noah menu (select item 'e') or delete the disable.users file in your cgi-bin directory.

  • Login as a normal user and verify that user logins are enabled.

    Version Compatibility Issues:

    If you are updating a new version of NOAH that requires a NOAH Database conversion, you will be supplied with instructions and tools to do this conversion.

    If you are asked to run the fix-index program, then do so. This program will save copies of the indexes and generate a log file in the NOAH Database subdirectory called 'checks' with a time stamp. This would permit a user to undo a run of fix-index.

    If Content Search option is a new feature, run gentext -missing in your admin directory to index your database for Content Searching.

    How does the install work?

    Generally speaking, you can run the install-noah program as many times as you like and you will see that the customizable NOAH configuration files will not be over written but rather generated with the file extension of .new with a suitable warning to the screen.

    The files that are not over-written are:

    admin directory:

    cgi-bin directory:

    If you want to over-write these files, use install-noah -f.

    As discussed earlier, the first time login.cgi is run, the noah.config and noah.key files are copied to the NOAH Database directory where all .cgi programs expect to read these files from.

    The install-noah program NEVER touches anything in the NOAH Database directory! When a user first logs into NOAH, the login.cgi program checks to see if the database directory exists and is complete. If the directory does not exist, it creates it. If a .tab file is missing, it creates a new .tab file by copying it from the .tab.template files in the NOAH cgi-bin directory.

    This approach ensures that the permission and ownerships of files and directories in the NOAH Database are consistent with the servers ownerships. If the NOAH Database files are edited by hand, the permissions and ownerships of these files will have changed (depending on the editor) and the NOAH cgi-bin programs may return errors when writing to these files.

    The install-noah program checks to see if the noah.key or noah.config files in the NOAH data directory are the same. If they are not, a warning is printed.


    Upgrading or changing the NOAH license key   (top)

    If you are sent a new license key for NOAH, you can install it by opening a shell in the admin directory on the NOAH server and saving this new license key in this directory.

    To install the key, run the installkey program in the admin directory and it will install the new key in the 'data_dir'/default subdirectory and backup the old key with a date-time stamp.

    If the new key is not called noah.key but some other name, use the command:

    installkey 'filename' where 'filename' is the name of the new key file.

    If you want to install this key into a different 'data_dir' subdirectory (other than 'default'), then use:

    installkey -database 'databasename' where 'databasename' is the subdirectory name.

    NOTE that if the new key requires a signature (32 character hexadecimal string), you will be prompted for this signature.

    If you have purchased an incremental change to your existing noah license, you will be sent an incremental license key (noah.ikey).

    Install this incremental with the command:

    installkey -i (for the default file name of noah.ikey)

    or:

    installkey -i 'filename' where 'filename' is the name of the new increment key file.


    Windows XP PRO - IIS Settings   (top)

    The following Windows XP PRO settings assume that the user has installed NOAH with the default cgi-bin and html settings (http://localhost/cgi-bin-noah and http://localhost/noah).

    Windows XP PRO has loose security settings with 'Everyone' given permission to read/execute programs within the wwwroot directory tree. This makes the procedure for setting up Windows XP PRO simpler than Windows Server 2003. However, if your Windows XP PRO has had it's security hardened, you may have to follow Windows Server 2003 - IIS Settings and skip over unsupported features such as 'Web Service Extensions'.

    1. open Internet Information Services (IIS) Manager (Start => Run 'inetmgr')

    2. navigate to 'Web Sites => Default Web Site' and highlight 'cgi-bin-noah' and right click and select 'properties'

    3. under 'Directory' tab, ensure that 'Application Settings' has 'Execute permissions:' set to 'Scripts and Executables'

    4. select 'Directory Security' tab

    5. select 'Edit...' under 'Authentication and access control'

    6. select 'Enable anonymous access' to enable anonymous access
      (username will be something like 'IUSR_name' where 'name' is the name of your server)

    7. repeat for 'Default Web Site\noah' directory except set 'Execute Permissions' to 'None'

    8. repeat for 'Default Web Site\noah\nwicons' directory except set 'Execute Permissions' to 'None'


      It probably would not hurt to restart IIS at this point:

    9. navigate to 'Web Sites' and highlight 'Default Web Site' and right click to 'stop' and then repeat to 'start' this web site.


    Windows Server 2003 - IIS Settings   (top)

    The following Windows Server 2003 settings assume that the user has installed NOAH with the default cgi-bin and html settings (http://localhost/cgi-bin-noah and http://localhost/noah).

    1. open Windows Explorer (Start => Run 'explorer')

    2. navigate to 'c:\Inetpub\wwwroot'

    3. highlight the 'cgi-bin-noah' directory and right-click and select 'properties'

    4. select 'Web Sharing' tab

    5. select 'Share this folder'

      • set 'Alias' to 'cgi-bin-noah'
      • set 'Access permissions' to 'Read'
      • set 'Application permissions' to 'Execute (include scripts)'

    6. OK and Apply to finish setting properties


    7. open Internet Information Services (IIS) Manager (Start => Run 'inetmgr')

    8. navigate to 'local computer => Web Service Extensions'

    9. highlight 'All Unknown CGI Extensions' and right click and select 'Allow' to change status to 'Allowed'

    10. navigate to 'Web Sites => Default Web Site' and highlight 'cgi-bin-noah' and right click and select 'properties'

    11. under 'Virtual Directory' tab, ensure that 'Application Settings' has 'Execute permissions:' set to 'Scripts and Executables'

    12. select 'Directory Security' tab

    13. select 'Edit...' under 'Authentication and access control'

    14. select 'Enable anonymous access' to enable anonymous access
      (username will be something like 'IUSR_name' where 'name' is the name of your server)


    15. navigate back to 'Default Web Site' and highlight directory 'cgi-bin-noah'

    16. right click and select 'permissions' and a 'Security' tab will appear

    17. select 'Group or usernames: Internet Guest Account' (use Add.. button if does not exist)

    18. set permissions for 'Internet Guest Account' to Allow 'Read & Execute' and Deny 'Write'


    19. navigate back to 'Default Web Site' and highlight directory 'noah'

    20. right click and select 'permissions' and a 'Security' tab will appear

    21. select 'Group or usernames: Internet Guest Account'

    22. set permissions for 'Internet Guest Account' to Allow 'Read' and Deny 'Write'

    23. repeat for 'Default Web Site\noah' and set permission on directory 'nwicons' to Allow 'Read'


      It probably would not hurt to restart IIS at this point:

    24. navigate to 'Web Sites' and highlight 'Default Web Site' and right click to 'stop' and then repeat to 'start' this web site.

    25. NOW you can open a browser and go to the login page: http://your-server/cgi-bin/noah/login.cgi. It is better to try this on a separate machine first to see if you have set the authentication correctly!


      Take a quick look at the Installers FAQ: 2003 Server questions as a final check on your installation.


    Apache Configuration Tips   (top)

    1. If you know your Apache server is up and running but you can't figure-out what directories the html and cgi-bin files are served from, you should probably find and inspect your httpd.conf file.

      Likely locations for the httpd.conf file are:

      • /etc/httpd
      • /etc/opt/httpd

      You may also find it in the /usr/local/'directory tree' if Apache was installed at a later date and not part of the original Linux distribution.

      Open the httpd.conf file and look for a line that is not commented out which defines 'DocumentRoot'. Some examples are:

      DocumentRoot "/usr/local/apache/htdocs"
      DocumentRoot "/var/www/html"

      This is the path to your html files. In the first example above, you might answer the install-noah question 'Q3' with '/usr/local/apache/htdocs/noah' when asked where you want to put the NOAH html files.

      Now look for a line in httpd.conf that is not commented out and which defined 'ScripAlias'. Some examples are:

      ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin"
      ScriptAlias /cgi-bin/ "/var/www/cgi-bin"


      This is the path to your cgi-bin files. In the first example above, you might answer the install-noah question 'Q5' with '/usr/local/apache/cgi-bin/noah' when asked where you want to put the NOAH cgi-bin files.

    2. When you first login to NOAH (typically: cgi-bin/noah/login.cgi) the NOAH database directory is created and default settings are loaded into the database.

      However, chances are that the location you have chosen for the database does not have the permissions set correctly for the Apache server to be able to create this database hierarchy.

      The answer to the install-noah question 'Q8: Where do you want to put the NOAH database directory?' is the directory you want to make sure the Apache server can create along with the database hierarchy under it.

      If your answer to Q8 was '/var/local/noah' and your Apache server User name is 'www', you could create the first directory of the noah database hierarchy as follows:

      mkdir /var/local/noah
      chown www:www /var/local/noah

      You can figure out the User and Group name that the Apache server runs under by looking at the html or cgi-bin directories or by looking at the httpd.conf file (described above) and search for lines starting with User and Group.

      The directories /var and /var/local can remain as owned by root with 'drwxr-xr-x' permissions as long as the /var/local/noah directory is writable by the Apache server. This is a more secure solution than blindly doing a 'chmod 777' on the /var directory hierarchy!

      Once the root of the NOAH database directory has been created, the NOAH login will create the rest of the hierarchy and populate default index files etc.

      SELINUX If you have an SELINUX (Secure Linux) distribution (like Redhat Fedora 9), then you still might get a 'permission error' when you first try to login to NOAH. You will probably also get a setroubleshoot message talking about the http_daemon not being able to access files.

      The solution is 'chcon -t httpd_sys_content_rw_t /var/local/noah' to change the file context of the NOAH database directory.

      You may also have to run 'chcon -R -t httpd_sys_content_t /var/www/noah' (or where ever you keep your NOAH html files) to change the context of the html files so the httpd daemon can access the html files.

      Not alot of testing has been done with SELINUX at this time however on the next release of NOAH (V3.3), the plan is to run the test suite on Redhat Fedora 9 with SELINUX to ferret out any other issues. If this is not good enough for you, then disable SELINUX.


    Trouble Shooting   (top)

    1. I get an error: can not read file 'database.config' and I'm a Windows Server 2003

      Starting with NOAH Server release v1.5.2, the alias requirement described next has been removed. If you have this problem, it is because you are running an earlier version of NOAH Server.

      Pre-NOAH release v1.5.2 and in Windows Server 2003, you need to set up 'Web Sharing' and aliases for your script directories. If you setup the 'cgi-bin' directory as 'Web Sharing' but did not correctly setup the 'cgi-bin/noah' directory for 'Web Sharing' then NOAH will look in the wrong location for it's database.config file.

      Make sure you follow the steps in Windows Server 2003 - IIS Settings to correctly set the 'noah' subdirectory to have an alias 'cgi-bin/noah'.

    2. When I first try to login to NOAH I get: FATAL ERROR: unable to open file '...some path ... /noah/default/noah.log' as 'write'

      This suggests that NOAH is not able to create the NOAH database directory hierarchy.

      If you are in Linux OS, look at Apache Configuration Tips and especially the second section on database directory ownership.

      If you are a WINDOWS OS, you may have to open 'windows explorer' and look at directory and file permissions.

      NOTE that the 'Internet Guest Account' appears to obtain 'Special Permissions' set as 'Allow' which gives the IIS server permission to create and edit files in the NOAH database directory. Click on 'Advanced' button to see the 'Internet Guest Account' permission settings.

      If this is not the case for your WINDOWS installation, you may have to create 'noah_data' and set permissions so that the 'Internet Guest Account' can create the remaining database hierarchy when login.cgi is first run.

    3. I'm WINDOWS OS and people have to give two passwords on login .. once to Windows Server and another to NOAH .. and now the cgi-bin/noah/login.cgi program just 'hangs' ...

      This is a problem with the permissions set on the NOAH database directory. If you did not enable 'Anonymous access' for the 'Internet Guest Account' then a user will be prompted for a username/password by the Windows Server and once logged in to NOAH all files in the NOAH database will be created with that users access permission!

      When a specific user is the only owner of the NOAH database files, all other users will not be able to access the files and the .cgi programs will 'hang' waiting for access permission and time-out after 20 minutes or so.

      The fix to this problem is two fold:

      • go to Windows Server 2003 - IIS Setup and make sure you've enabled anonymous access to all the cgi-bin and html files in the IIS server Web Site.

      • open up windows explorer and set the 'noah_data' directory hierarchy so that the 'Internet Guest Account' has full control.
        Of course the simple way to achieve this is by deleting the 'noah_data' directory and letting cgi-bin/noah/login.cgi re-create the noah_data directory correctly.

    4. File locking does not work!

      On some older Linux servers there was a problem with file locking with NFS. The quick fix is to change the noah.config variable 'lock_file_dir' to a file system that is not NFS. See NFS/Samba/Microsoft note on remote file sharing.

      If 'lock_file_dir' is set to the /tmp directory on a UNIX system, be sure you understand how your server is setup! Some modern http services are not dedicated to one server machine and the /tmp directory keeps changing! This causes a number of problems with not only file locking but session id's too! See next FAQ.

    5. Users keep getting logged out!

      This problem could be related to the previous FAQ if the sid.tab file is on a file system that keeps changing for every user server access.

      The problem could also be the 'impatient' user syndrome where the user keeps clicking on NOAH buttons before the server or network has a chance to respond with the next session id (in cookie form). The solution here is to get a faster network or server or set sid_level=1 in noah.config (and go to a HTTPS server!).


    Version History   (top)

    NOAH version releases are summarized on the NOAH Download Page.


    contact: noah@nordicwind.ca Copyright © 2004-2012 Nordicwind Inc. - All rights reserved.