Difference between revisions of "TWiki"
m (Incomplete) |
m |
||
Line 241: | Line 241: | ||
[[Category:Incomplete]] | [[Category:Incomplete]] | ||
[[Category:Howto]] | [[Category:Howto]] | ||
+ | [[Category:Social Media Apps]] |
Latest revision as of 16:52, 10 May 2010
How To Install TWiki on SME Server
Home Page
Description
TWiki is a flexible, powerful, and easy to use enterprise wiki,enterprise collaboration platform and knowledge management system. It is a Structured Wiki, typically used to run a project development space, a document management system, a knowledge base, or any other groupware tool, on an intranet or on the internet. Web content can be created collaboratively by using just a browser. Users without programming skills can create web applications. Developers can extend the functionality of TWiki with Plugins. TWiki fosters information flow within an organization; lets distributed teams work together seamlessly and productively; and eliminates the one-webmaster syndrome of outdated intranet content.
Download
http://twiki.org/cgi-bin/view/Codev/DownloadTWiki
Installation
Create a directory named twiki under /opt dir.
Extract all content from twiki tar file under /opt/twiki (bin, data, etc)
Follow the twiki instructions about perl dependancy and requirement, and configure.
Create a new file named "mod_perl_startup.pl" under /opt/twiki/tools/ with this content:
$ENV{MOD_PERL} =~ /mod_perl/ or die "mod_perl_startup called, but mod_perl not used!"; use lib qw( /opt/twiki/bin ); require 'setlib.cfg'; 1;
Create a custom template named "98Twiki" under /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf with the following content.
# Autogenerated httpd.conf file for TWiki. # Generated at http://twiki.org/cgi-bin/view/TWiki/ApacheConfigGenerator # For TWiki version 4.2.X # We set an environment variable called blockAccess. # # Setting a BrowserMatchNoCase to ^$ is important. It prevents TWiki from # including its own topics as URLs and also prevents other TWikis from # doing the same. This is important to prevent the most obvious # Denial of Service attacks. # # You can expand this by adding more BrowserMatchNoCase statements to # block evil browser agents trying the impossible task of mirroring a twiki # # Example: # BrowserMatchNoCase ^SiteSucker blockAccess # BrowserMatchNoCase ^$ blockAccess BrowserMatchNoCase ^Accoona blockAccess BrowserMatchNoCase ^ActiveAgent blockAccess BrowserMatchNoCase ^Attache blockAccess BrowserMatchNoCase BecomeBot blockAccess BrowserMatchNoCase ^bot blockAccess BrowserMatchNoCase Charlotte/ blockAccess BrowserMatchNoCase ^ConveraCrawler blockAccess BrowserMatchNoCase ^CrownPeak-HttpAgent blockAccess BrowserMatchNoCase ^EmailCollector blockAccess BrowserMatchNoCase ^EmailSiphon blockAccess BrowserMatchNoCase ^e-SocietyRobot blockAccess BrowserMatchNoCase ^Exabot blockAccess BrowserMatchNoCase ^FAST blockAccess BrowserMatchNoCase ^FDM blockAccess BrowserMatchNoCase ^GetRight/6.0a blockAccess BrowserMatchNoCase ^GetWebPics blockAccess BrowserMatchNoCase ^Gigabot blockAccess BrowserMatchNoCase ^gonzo1 blockAccess BrowserMatchNoCase ^Google\sSpider blockAccess BrowserMatchNoCase ^ichiro blockAccess BrowserMatchNoCase ^ie_crawler blockAccess BrowserMatchNoCase ^iGetter blockAccess BrowserMatchNoCase ^IRLbot blockAccess BrowserMatchNoCase Jakarta blockAccess BrowserMatchNoCase ^Java blockAccess BrowserMatchNoCase ^KrakSpider blockAccess BrowserMatchNoCase ^larbin blockAccess BrowserMatchNoCase ^LeechGet blockAccess BrowserMatchNoCase ^LinkWalker blockAccess BrowserMatchNoCase ^Lsearch blockAccess BrowserMatchNoCase ^Microsoft blockAccess BrowserMatchNoCase ^MJ12bot blockAccess BrowserMatchNoCase MSIECrawler blockAccess BrowserMatchNoCase ^MSRBOT blockAccess BrowserMatchNoCase ^noxtrumbot blockAccess BrowserMatchNoCase ^NutchCVS blockAccess BrowserMatchNoCase ^RealDownload blockAccess BrowserMatchNoCase ^Rome blockAccess BrowserMatchNoCase ^Roverbot blockAccess BrowserMatchNoCase ^schibstedsokbot blockAccess BrowserMatchNoCase ^Seekbot blockAccess BrowserMatchNoCase ^SiteSnagger blockAccess BrowserMatchNoCase ^SiteSucker blockAccess BrowserMatchNoCase ^Snapbot blockAccess BrowserMatchNoCase ^sogou blockAccess BrowserMatchNoCase ^SpiderKU blockAccess BrowserMatchNoCase ^SpiderMan blockAccess BrowserMatchNoCase ^Squid blockAccess BrowserMatchNoCase ^Teleport blockAccess BrowserMatchNoCase ^User-Agent\: blockAccess BrowserMatchNoCase VoilaBot blockAccess BrowserMatchNoCase ^voyager blockAccess BrowserMatchNoCase ^W3C blockAccess BrowserMatchNoCase ^w3search blockAccess BrowserMatchNoCase ^Web\sDownloader blockAccess BrowserMatchNoCase ^WebCopier blockAccess BrowserMatchNoCase ^WebDevil blockAccess BrowserMatchNoCase ^WebSec blockAccess BrowserMatchNoCase ^WebVac blockAccess BrowserMatchNoCase ^Webwhacker blockAccess BrowserMatchNoCase ^Webzip blockAccess BrowserMatchNoCase ^Wells blockAccess BrowserMatchNoCase ^WhoWhere blockAccess BrowserMatchNoCase www\.netforex\.org blockAccess BrowserMatchNoCase ^WX_mail blockAccess BrowserMatchNoCase ^yacybot blockAccess BrowserMatchNoCase ^ZIBB blockAccess BrowserMatchNoCase ^$ blockAccess # Mod_perl preloading PerlRequire /opt/twiki/tools/mod_perl_startup.pl PerlSwitches -T # The ScriptAlias defines the bin directory as a directory where CGI # scripts are allowed. # The first parameter will be part of the URL to your installation e.g. # http://my.co.uk/twiki/bin/view/... # The second parameter must point to the physical path on your disc. #ScriptAlias /twiki/bin "/opt/twiki/bin" # The Alias defines a url that points to the root of the twiki installation. # It is used to access files in the pub directory (attachments etc) # It must come _after_ the ScriptAlias. #Alias /twiki "/opt/twiki" ScriptAlias /twiki/bin "/opt/twiki/bin" Alias /twiki/pub "/opt/twiki/pub" Alias /twiki "/opt/twiki/bin/view" # Block access to typical spam related attachments # Except the TWiki directory which is read only and does have attached html files. SetEnvIf Request_URI "twiki/pub/.*\.[hH][tT][mM]?$" blockAccess SetEnvIf Request_URI "twiki/pub/TWiki/.*\.[hH][tT][mM]?$" !blockAccess # This specifies the options on the TWiki scripts directory. The ExecCGI # and SetHandler tell apache that it contains scripts. "Allow from all" # lets any IP address access this URL. <Directory "/opt/twiki/bin"> AllowOverride None Order Allow,Deny Allow from all Deny from env=blockAccess Options ExecCGI FollowSymLinks SetHandler cgi-script # Password file for TWiki users AuthUserFile /opt/twiki/data/.htpasswd AuthName 'Enter your WikiName: (First name and last name, no space, no dots, capitalized, e.g. JohnSmith). Cancel to register if you do not have one.' AuthType Basic # File to return on access control error (e.g. wrong password) ErrorDocument 401 /twiki/bin/view/TWiki/TWikiRegistration # Limit access to configure to specific IP addresses and or users. # Make sure configure is not open to the general public. # It exposes system details that can help attackers. <FilesMatch "^(configure)$"> SetHandler cgi-script Order Deny,Allow Deny from all Allow from localhost Require user Normando admin Satisfy Any </FilesMatch> # Enable mod_perl for the bin scripts listed <FilesMatch "(attach|edit|manage|rename|save|upload|view|rest|.*auth).*"> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader On PerlOptions +ParseHeaders </FilesMatch> </Directory> # This sets the options on the pub directory, which contains attachments and # other files like CSS stylesheets and icons. AllowOverride None stops a # user installing a .htaccess file that overrides these options. # Note that files in pub are *not* protected by TWiki Access Controls, # so if you want to control access to files attached to topics you need to # block access to the specific directories same way as the ApacheConfigGenerator # blocks access to the pub directory of the Trash web <Directory "/opt/twiki/pub"> Options None AllowOverride None Order Allow,Deny Allow from all Deny from env=blockAccess # Disable execusion of PHP scripts php_admin_flag engine off # This line will redefine the mime type for the most common types of scripts AddType text/plain .shtml .php .php3 .phtml .phtm .pl .py .cgi # #add an Expires header that is sufficiently in the future that the browser does not even ask #if its uptodate reducing the load on the server significantly #IF you can, you should enable this - it _will_ improve your twiki experience, even if you set #it to under one day. # you may need to enable expires_module in your main apache config #LoadModule expires_module libexec/httpd/mod_expires.so #AddModule mod_expires.c #<ifmodule mod_expires.c> # <filesmatch "\.(jpg|gif|png|css|js)$"> # ExpiresActive on # ExpiresDefault "access plus 11 days" # </filesmatch> #</ifmodule> # </Directory> # Spammers are known to attach their stuff and then move it to trash where it remains unnoticed. # We prevent viewing any attachments directly from pub <Directory "/opt/twiki/pub/Trash"> deny from all </Directory> # Security note: All other directories should be set so # that they are *not* visible as URLs, so we set them as =deny from all=. <Directory "/opt/twiki/data"> deny from all </Directory> <Directory "/opt/twiki/templates"> deny from all </Directory> <Directory "/opt/twiki/lib"> deny from all </Directory> <Directory "/opt/twiki/locale"> deny from all </Directory> <Directory "/opt/twiki/tools"> deny from all </Directory> <Directory "/opt/twiki/working"> deny from all </Directory>
Then save, expand, and restart httpd service.
With this templates you not need to login at twiki at /twiki/bin/... You only go to yourdomain/twiki.
Additional information
Source of This Howto is http://forums.contribs.org/index.php?topic=40404.msg189263#msg189263
All credits to Normando