## TWiki Implementation Notes ### Platforms and System Requirements TWiki is written in **Perl 5** and also uses some **shell commands**. The current implementation runs best on a Unix machine, but it is also possible on Microsoft Windows. **RCS** (for revision control) must be installed on the system. [ **_MM: Locate elsewhere and/or include one-liner and link for RCS..._** ]
Required Environment by Platform
Packages: Linux/Unix: Windows:
Perl 5.x 5.x
Non-standard Perl modules   MIME::Base64, Digest::SHA1 (for password generation)
Optional Perl modules Net::SMTP (or sendmail) Net::SMTP
RCS 5.7 5.7 (including diff
Other external programs ls, fgrep, egrep ls, fgrep, egrep
Web server Apache Apache, IIS
OS versions Linux, Unix... every last Win?!
### Directory Structure You can easily rename the root TWiki directory - **twiki** - to whatever you like by changing a configuration file value. For the simplest installation and future upgrades, you should leave the subdirectory structure exactly as is:
Directory: Files: Used for:
twiki [[Main/WebHome#TWikiFiles]] Start-up info
twiki/bin [[Main/WebHome#BinFiles]] Perl scripts
twiki/lib [[Main/WebHome#LibFiles]] Configuration file & main library
twiki/lib/TWiki [[Main/WebHome#LibTWiki]] Perl modules
twiki/lib/TWiki/Plugins [[Main/WebHome#libtwikiplugins]] [[Main/TWikiPlugins]] Perl modules
twiki/pub [[Main/WebHome#PubFiles]] Public support files (ex: [[Main/FileAttachments]], images) and RCS histories)
twiki/data [[Main/WebHome#DataFiles]] Topic text (page content) and RCS histories;
twiki/templates [[Main/WebHome#TemplatesFiles]] HTML templates, used by TWiki scripts
**_Note: about the additional directories in data, elsewhere_** #### Files in `twiki` **_to follow_** #### Files in `twiki/bin`
File: Used for:
.htaccess.txt Authentication. Rename to .htaccess and customize if used
attach Script that shows the attach file page ([[Main/FileAttachment]])
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 ([[Main/FileAttachment]])
view Script to view a topic ( the script )
viewfile Script to view an file attachment
#### Files in `twiki/lib`
File: Used for:
TWiki.pm Main TWiki library
TWiki.cfg For configuration, used by TWiki.pm
#### Files in `twiki/lib/TWiki`
File: Used for:
Access.pm Access control
Attach.pm Attachment handling
Meta.pm Meta data in topics
Net.pm SMTP mail handling
Plugins.pm Plugin handling
Prefs.pm Preferences handling
Search.pm Search engine, used by wiki.pm
Store.pm Back-end storage, *.txt text file and *.txt,v RCS repository file handling
#### Files in `twiki/lib/TWiki/Plugins`
File: Used for:
DefaultPlugin.pm Default plugin
EmptyPlugin.pm Empty plugin, use to create your own
InterwikiPlugin.pm Refer to external Wikis and other Web sites
#### Files in `twiki/pub` **_to follow_** #### Files in `twiki/data` **_to follow_** #### Files in `twiki/templates` **_to follow_** -- [[MikeMannix]] - 28 Aug 2001