%TOC% %STARTINCLUDE% # TWiki Application Environment _Server and client system requirements; file system structure_ ## Overview Maintaining minimum client and server requirements is necessary to keep TWiki deployment as broad as possible. ## Server-Side Requirements TWiki is written in Perl 5 and uses a number of shell commands. It requires GNU RCS (Revision Control System) to be installed on the same system. TWiki is developed in a standard Linux/Apache environment. It can also work with Microsoft Windows and other platforms.
Required Server Environment
Resource Unix Windows
Perl 5.005_03 or higher
Non standard Perl modules Net::SMTP (or sendmail) Net::SMTP, MIME::Base64, Digest::SHA1
RCS 5.7 or higher
Other external programs ls, fgrep, egrep
Web server Apache; others (with support for CGI, authentication, extended path) *
Current documentation covers Linux only. Compiling a basic [TWikiOnWindows](http://twiki.org/cgi-bin/view/Codev/TWikiOnWindows) installation guide is an ongoing effort. ## Client-Side Requirements The TWiki standard installation has extremely low browser requirements: * HTML 3.2 compliant * minimal use of JavaScript in the user interface (degrades gracefully) * no cookies * no CSS TWiki generates XHTML 1.0 code as long as it is compatible with HTML 3.2. ### Known Issues * The new [[TWikiPlugins]] feature currently does not have any compatibility guidelines for developers. Plugins can require just about anything: browser-specific functions, stylesheets (CSS), Java, cookies, etc. ## TWiki File System You can rename the root TWiki directory - `twiki` - to whatever you like by changing it in the `twiki.cfg` configuration file. However, to keep the current installation and future upgrades simple, you should leave the subdirectory structure intact:
Directory: Files: Used for:
twiki list Start-up info
twiki/bin list Perl scripts
twiki/lib list Configuration file, main library, Perl system modules, Plugins
twiki/pub list Public support files (ex: File Attachments?, images) and RCS histories)
twiki/data list Topic text (page content) and RCS histories;
twiki/templates list HTML templates, used by TWiki scripts
### File Descriptions A rundown of the individual files included in the current 01-Sep-2001 distribution, organized by TWiki root directories. #### Files in `twiki` Application info and the current reference documentation. _Full file list:_
File: Used for:
index.html A page with a link to first launch TWiki after install
license.txt GNU General Public License and TWiki-specific info
readme.txt General TWiki start-up info with relevant URLs
TWikiDocumentation.html All documentation packaged as a single page
TWikiHistory.html TWiki development timeline
#### Files in `twiki/bin` Perl CGI scripts. _Full file list:_
File: Used for:
.htaccess.txt Authentication. Rename to .htaccess and customize if used
attach Script that shows the attach file page (File Attachment?)
delete (not used yet)
edit Script to edit a topic
geturl Script to fetch URL data
mailnotify Script called by cron job to notify users of changes
oops Script that shows an OK or oops dialog
preview Script to preview topic after edit
rdiff Script to see differences of topics
rename Script to rename/move topics and move attachments
register Script to register new users
save Script that saves a topic, called by preview
search Script that displays search results
statistics Script to create statistics topic
testenv Script to test CGI environment variables
upload Script that does file upload (File Attachment?)
view Script to view a topic ( the script )
viewfile Script to view an file attachment
#### Files under `twiki/lib` The new `lib/TWiki/Plugins` directories contain configuration, library and function files, and [[TWikiDocumentation]]. _Full file list:_
File: Used for:
TWiki.pm Main TWiki library
TWiki.cfg For configuration, used by TWiki.pm
TWiki/Access.pm Access control
TWiki/Attach.pm Attachment handling
TWiki/Form.pm Form handling
TWiki/Meta.pm Meta data in topics
TWiki/Net.pm SMTP mail handling
TWiki/Plugins.pm Plugin handling
TWiki/Prefs.pm Preferences handling
TWiki/Search.pm Search engine, used by wiki.pm
TWiki/Store.pm Back-end storage, *.txt text file and *.txt,v RCS repository file handling
TWiki/Plugins/DefaultPlugin.pm Handles some legacy rules
TWiki/Plugins/EmptyPlugin.pm Empty plugin, use to create your own
TWiki/Plugins/InterwikiPlugin.pm Use aliases as links for predefined URLs
#### Files under `twiki/pub` The `pub` directory stores data-related files, including images used by TWiki and [[FileAttachments]]. Attachments are stored in sub-directories created with the related topic name. _Partial file list:_
File: Used for:
favicon.ico ICO file
twikilogo.gif GIF file
twikilogo1.gif GIF file
twikilogo2.gif GIF file
twikilogo3.gif GIF file
twikilogo4.gif GIF file
wikiHome.gif GIF file
icn/_filetypes.txt GIF file
icn/bat.gif GIF file
icn/bmp.gif GIF file
... ...
TWiki/FileAttachment/Sample.txt TEXT file
TWiki/FileAttachment/Smile.gif GIF file
TWiki/PreviewBackground/blankltgraybg.gif GIF file
TWiki/PreviewBackground/blankwhitebg.gif GIF file
TWiki/PreviewBackground/previewbg.gif GIF file
TWiki/WabiSabi/wabisabi.gif GIF file
#### Files under `twiki/data` TWiki page data stored as individual text files. Each active web has its own subdirectory. The TWiki distribution includes four start-up webs - `Main`, `TWiki`, `Know`, `Test` - with documentation and demo content, and a `_default` directory containing all topics required to start a new web. _Partial file list:_
File: Used for:
.htpasswd Basic Authentication (htaccess) password file
debug.txt Program messages useful for debugging
mime.types Recognized file formats
warning.txt Diagnostic messages for identifying problems
_default directory can be copied to empty directory when creating new Webs
_default/.changes Web-level record of topic changes
_default/WebChanges.txt Display most recent topic changes in web
_default/WebChanges.txt,v Revisions history (RCS)
_default/WebHome.txt Default web home page
_default/WebHome.txt,v Revisions history (RCS)
_default/WebIndex.txt Lists all topics in a web
_default/WebIndex.txt,v Revisions history (RCS)
_default/WebNotify.txt Subscribe/unsubscribe to web changes email alert
_default/WebNotify.txt,v Revisions history (RCS)
_default/WebPreferences.txt Web-level preference settings
_default/WebPreferences.txt,v Revisions history (RCS)
_default/WebSearch.txt Web-level search options
_default/WebSearch.txt,v Revisions history (RCS)
_default/WebStatistics.txt Generates web usage statistics
_default/WebStatistics.txt,v Revisions history (RCS)
... ...
#### Files in `twiki/templates` Templates used to control appearance of all rendered pages. _Full file list:_
File: Used for:
oopsbadpwformat.tmpl Error message
attachagain.tmpl Control screen
attachnew.tmpl Control screen
changeform.tmpl Control screen
changes.tmpl Displays Web Changes? list of recently changed topics
edit.iejs.tmpl xxxx
edit.tmpl Main edit window
mailnotify.tmpl xxxx
moveattachment.tmpl Control screen
oopsaccesschange.tmpl Error message
oopsaccessgroup.tmpl Error message
oopsaccessrename.tmpl Error message
oopsaccessview.tmpl Error message
oopsauth.tmpl Error message
attach.tmpl Error message
oopschangepasswd.tmpl Error message
oopsempty.tmpl Error message
oopslocked.tmpl Error message
oopslockedrename.tmpl Error message
oopsmissing.tmpl Error message
oopsmoveerr.tmpl Error message
oopsnoformdef.tmpl Error message
oopsnotwikiuser.tmpl Error message
oopsnoweb.tmpl Error message
oopspreview.tmpl Error message
oopsregexist.tmpl Error message
oopsregpasswd.tmpl Error message
oopsregrequ.tmpl Error message
oopsregthanks.tmpl Error message
oopsregwiki.tmpl Error message
oopsrenameerr.tmpl Error message
oopsresetpasswd.tmpl Error message
oopsrev.tmpl Error message
oopssave.tmpl Error message
oopssaveerr.tmpl Error message
oopssendmailerr.tmpl Error message
oopstopicexists.tmpl Error message
oopsupload.tmpl Error message
oopswrongpassword.tmpl Error message
preview.tmpl Preview Changes screen
rdiff.tmpl Displays text changes before & after (Diffs)
register.tmpl Registration page
registernotify.tmpl xxxx
rename.tmpl Doing a new topic rename, user chooses web & topic
renamebase.tmpl Used by other rename templates
renameconfirm.tmpl Confirms a pre-specified rename, ex: undoing a rename
renamerefs.tmpl Rename done, but some references not changed (topics were locked)
search.tmpl xxxx
searchbookview.tmpl Search results with full topic content
searchmeta.tmpl xxxx
searchrenameview.tmpl Used by rename to list references to topic being renamed
twiki.tmpl Base template definitions used by other templates
view.plain.tmpl Alternate topic header/footer view
view.print.tmpl Alternate topic header/footer view
view.tmpl Main topic view
-- [[MikeMannix]] - 29 Aug 2001