• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    Perl
  • Created over 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

START HERE! This is the Foswiki project "Distribution". It is a monolith repository with the core + default extensions.

Foswiki Installation based on git

These instructions are more geared for developers, and admins who want to use the "bleeding edge" of Foswiki. We recommend using our packaged distributions. See our Download page

You can run a Foswiki instance from this clone simply by pointing Apache at it. See the ApacheConfigGenerator

Note:Configure has been completely rewritten on the master branch. Foswiki is now able to "bootstrap" itself without a configuration. After pseudo-installing the default extensions, Point your browser at your default URL for the new site as configured in ApacheConfigGenerator. (ex. http://yoursite.com, http://yoursite.com/foswiki, or http://yoursite.com/foswiki/bin/view depending upon the apache configuration)

To "install" extensions in a checkout area, you should use the pseudo-install.pl script to install them. On Unix/Linux this script generates soft-links from the core tree to the extensions, so you can work on your code in situ and see the impact of the changes on your live foswiki without needing to do an install step. Windows doesn't support soft links, so the script can also be run in -copy mode (the default on Windows), but in this case you will have to re-run it each time you change your extension. Use:

  • pseudo-install.pl default to install the default contribs and plugins (e.g. Extensions.TwistyContrib which is relied on by Extensions.PatternSkin)
  • pseudo-install.pl developer to install the additional developer extensions. The developer option also installs all the default extensions. See the header comment of the pseudo-install.pl script (core directory of checkout) for options and more information. Note that pseudo-install.pl only works with extensions that have a MANIFEST file, as required by the Extensions.BuildContrib.

Script examples below are for bash shell.

Example of running pseudo-install

The typical situation is that you want to run a pseudo-installed Foswiki checked out from "master" branch. And if you develop plugins, you want to be able to activate your plugin in this installation. This is the entire sequence for checking out the master branch from git and doing the pseudo-install. We assume that you want to run your git based install in /var/www/foswiki

The following commands check out an absolutely minimal Foswiki (the core + default user mapping only). This is the smallest checkout that will run. The steps are:

  1. create the root directory called foswiki
  2. git clone https://github.com/foswiki/distro.git foswiki
  3. This will check out core and all the default and developer extensions, however they are not installed yet.
  4. cd core && ./pseudo-install.pl default
  5. change the ownership so the entire tree is owned by the user running the Apache. In this example the user name is "apache".
  6. point Apache at the checkout Change the commands to fit your actual file locations and Apache user. Some commands may have to be run as root.
cd /var/www
mkdir foswiki

git clone https://github.com/foswiki/distro.git foswiki
Cloning into 'foswiki'...
remote: Counting objects: 134190, done.
remote: Compressing objects: 100% (37847/37847), done.
remote: Total 134190 (delta 87343), reused 132136 (delta 85289)
Receiving objects: 100% (134190/134190), 66.86 MiB | 1.63 MiB/s, done.
Resolving deltas: 100% (87343/87343), done.
Checking connectivity... done.

# By default this will leave you in the "master" branch, where leading edge development happens
# If you want to use the current release branch, change to the Release01x01 branch
# Skip this step if you want to remain on the experimental master branch.

cd foswiki
git checkout Release01x01
Branch Release01x01 set up to track remote branch Release01x01 from origin.
Switched to a new branch 'Release01x01'

# The extensions have all been checked out one level up from the "core" directory
# the next step is to link / copy them into the installation.  This is done with pseudo-install.

cd core
perl -T pseudo-install.pl default
Installing extensions: PatchFoswikiContrib, AutoViewTemplatePlugin, CompareRevisionsAddOn, CommentPlugin, EditTablePlugin, EmptyPlugin, FamFamFamContrib, HistoryPlugin, InterwikiPlugin, JSCalendarContrib, JQueryPlugin, MailerContrib, TablePlugin, TwistyPlugin, PatternSkin, PreferencesPlugin, RenderListPlugin, SlideShowPlugin, SmiliesPlugin, SpreadSheetPlugin, TipsContrib, WysiwygPlugin, TinyMCEPlugin, TopicUserMappingContrib, TWikiCompatibilityPlugin, core
Processing AutoViewTemplatePlugin
Linked data/System/AutoViewTemplatePlugin.txt
mkdir /var/www/fw/core/lib/Foswiki/Plugins
...
#...
#... A large amount of output is generated.
#... Errors about dependencies on foswiki extensions can generally be ignored.
#... The extensions are not installed in the order that would resolve all dependencies.
#...


# If necessary, change ownership of all files to the webserver user.
# In this case that is 'apache:apache', though it may also be 'www-data:www-data'
# e.g. on Debian and Ubuntu systems, or something else entirely. Check first.
chown -R apache:apache foswiki

# Now configure Apache to use the Foswiki in /var/www/foswiki/core
  1. Use the ApacheConfigGenerator
  2. Clipboard copy and save this to core/../foswiki.httpd.conf
  3. Include this foswiki.httpd.conf from your apache httpd.conf OR
  • On many linux distributions, you can save this file into /etc/apache2/sites_enabled or /etc/apache2/vhosts.d, or /etc/apache2/Include ... Check your local distribution's instructions.
  • If you are on a Mac, you can put this file into /etc/apache2/other/ and line "Include /private/etc/apache2/other/*.conf" will pick it up.
  • Otherwise, edit your httpd.conf and add: Include /path/to/foswiki.httpd.conf
  • Ensure your new .conf file has chmod a+r access Note: If the apache error log has lots of Symbolic link not allowed or link target not accessible type messages, then you probably need to add +FollowSymLinks to the Options for the /var/www/foswiki/dev/core/pub directory in your apache configuration.

At this point, if you point your browser to your foswiki url, it should "just work", but will display a bootstrap warning at the top of the configuration. To fully configure foswiki, visit the bin/configure URL, resolve any warnings and errors, and save the configuration. Caution: Once you save the configuration, you will be unable to use configure again unless you have registered and granted yourself "Adimin" authority. You can control who can use configure by setting Security and Authentication -> Access Control {ConfigureFilter}. When that option is set, it replaces the check for Admin authority and can allow any user including the guest user to use configure. So use caution!.

Now and then you will want to keep your installation in sync with the latest version in the foswiki git repository. The pseudo-install script is not intelligent enough to cope with changes to MANIFESTs, so this is the idiot proof way to update. It first removes all the links (or copied files), git fetch. And finally does a new pseudo-install.

cd /var/www/foswiki/core
./pseudo-install.pl -uninstall all
git pull
./pseudo-install.pl default
chown -R apache:apache ..

Normally just doing the git pull will be enough, unless someone has removed files (and even then you can usually ignore it).

If you are a developer you can also install the kit required to run unit tests, by passing the developer parameter to pseudo-install.pl

cd /var/www/foswiki/core
./pseudo-install.pl developer

This will also install BuildContrib and a number of other components useful to developers.

Tips, hints, and useful commands

Enable ASSERTS for more extensive testing

The unit tests run with ASSERTS enabled, but the live web environment does not. In order to enable ASSERTS, edit bin/LocalLib.cfg (If it's not there, create it by copying bin/LocalLib.cfg.txt) and un-comment the following line

$ENV{FOSWIKI_ASSERTS} = 1;

This enables additional validation tests that will impact performance, but will catch some issues that might be missed during normal web usage.

Use the CPAN modules shipped with Foswiki

Foswiki 1.2 no longer ships with CPAN modules. It is now recommended to use your system's package manager, or cpan to install dependencies. see http://foswiki.org/System/SystemRequirements. In the event that you are unable to install the CPAN dependencies, pseudo-install the CpanContrib to get the 1.x style Foswiki specific dependencies. (CpanContrib is not yet released). In order to test these modules, CPAN lib prepending should be enabled in bin/LocalLib.cfgby uncommenting the following line:

$CPANBASE = '';                     # Uncommented: Default path prepended

. See the comments in bin/LocalLib.cfg.txt for more details.

It is probably best to test using platform modules as well as the shipped modules.

Installing non-default extensions

The example commands above describe how to install a minimalist Foswiki. The pseudo-install script knows some additional tricks to use with non-default extensions. If you pseudo-install an extension that is not currently checked out, pseudo-install will automatically clone the extension from github using https://github.com/foswiki/ExtensionName.git

Note: Although we use release managed branches (master, Release01x00, Release01x01) in the Foswiki core distribution ("distro"), non-default extensions typically only have a "master" branch.

Here's how to install a non-default extension, using AntiWikiSpamPlugin as an example:

cd foswiki/core
 ./pseudo-install.pl AntiWikiSpamPlugin
Useless use of \E at ./pseudo-install.pl line 1553.
Useless use of \E at ./pseudo-install.pl line 1553.
Installing extensions: AntiWikiSpamPlugin
Processing AntiWikiSpamPlugin
Trying clone from git://github.com/foswiki/AntiWikiSpamPlugin.git...
Cloning into 'AntiWikiSpamPlugin'...
remote: Counting objects: 489, done.
remote: Total 489 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (489/489), 86.42 KiB | 0 bytes/s, done.
Resolving deltas: 100% (185/185), done.
Checking connectivity... done.
Cloned AntiWikiSpamPlugin OK
Linked data/Main/AntiWikiSpamBypassGroup.txt
Linked data/System/AntiWikiSpamLocalList.txt
Linked data/System/AntiWikiSpamRegistrationWhiteList.txt
Linked data/System/AntiWikiSpamRegistrationBlackList.txt
Linked data/Sandbox/AntiWikiSpamTestTopic.txt
Linked data/System/AntiWikiSpamPlugin.txt
Linked lib/Foswiki/Plugins/AntiWikiSpamPlugin.pm
Linked lib/Foswiki/Plugins/AntiWikiSpamPlugin
Linked test/unit/AntiWikiSpamPlugin
Linked /var/www/fw/core/tools/develop/githooks/commit-msg as /var/www/fw/AntiWikiSpamPlugin/.git/hooks/commit-msg
Linked /var/www/fw/core/tools/develop/githooks/pre-commit as /var/www/fw/AntiWikiSpamPlugin/.git/hooks/pre-commit
Linked /var/www/fw/core/tools/develop/githooks/commit-msg as /var/www/fw/AntiWikiSpamPlugin/../.git/hooks/commit-msg
Linked /var/www/fw/core/tools/develop/githooks/pre-commit as /var/www/fw/AntiWikiSpamPlugin/../.git/hooks/pre-commit
 AntiWikiSpamPlugin installed
Linked /var/www/fw/core/tools/develop/githooks/commit-msg as /var/www/fw/core/.git/hooks/commit-msg
Linked /var/www/fw/core/tools/develop/githooks/pre-commit as /var/www/fw/core/.git/hooks/pre-commit
Linked /var/www/fw/core/tools/develop/githooks/commit-msg as /var/www/fw/core/../.git/hooks/commit-msg
Linked /var/www/fw/core/tools/develop/githooks/pre-commit as /var/www/fw/core/../.git/hooks/pre-commit

Delete all broken soft links

This is handy if you have changed a lot of MANIFESTS or have manually soft-linked any files, and want to remove any broken soft links. Assume your trunk checkout is at /var/www/foswiki. You'll also need to do this when switching between Release01x01 and master branches.

find -L /var/www/foswiki/core -type l -exec rm \{\} \;

Create a new extension

You can quickly and easily create a new extension using the create_new_extension.pl script that is installed in core when you pseudo-install the Extensions.BuildContrib.

Set up the unit test framework

If you are developing new code you will want to set up the development and test environment. For this you will need to pseudo-install !BuildContrib, !UnitTestContrib and !TestFixturePlugin.

./pseudo-install.pl developer

Then:

cd test/unit
export FOSWIKI_LIBS`/var/www/foswiki/core/lib
perl ../bin/TestRunner.pl FoswikiSuite

(or equivalent on Windows)

For full details, see http://foswiki.org/Development/UnitTests#SettingUpATestEnvironment

More Repositories

1

ImagePlugin

Foswiki's ImagePlugin
Perl
2
star
2

TaskExePlugin

Foswiki's TaskExePlugin
Perl
1
star
3

DebugLogPlugin

Foswiki's DebugLogPlugin
Perl
1
star
4

EditChapterPlugin

Foswiki's EditChapterPlugin
Perl
1
star
5

ImageGalleryPlugin

Foswiki's ImageGalleryPlugin
Perl
1
star
6

AccessStatsPlugin

Foswiki's AccessStatsPlugin
Perl
1
star
7

ApprovalPlugin

Foswiki's ApprovalPlugin
Perl
1
star
8

WebDAVPlugin

Foswiki's WebDAVPlugin
C
1
star
9

RollupPlugin

Foswiki's RollupPlugin
Perl
1
star
10

ThreadedDiscussionPlugin

Foswiki's ThreadedDiscussionPlugin
Perl
1
star
11

TopicTranslationsPlugin

Foswiki's TopicTranslationsPlugin
Perl
1
star
12

TalkContrib

Foswiki's TalkContrib
Perl
1
star
13

AutoSavePlugin

Foswiki module AutoSavePlugin
Perl
1
star
14

IncludeIndexPlugin

Foswiki's IncludeIndexPlugin
Perl
1
star
15

PasswdUserContrib

Foswiki's PasswdUserContrib
Perl
1
star
16

IconPlugin

Foswiki's IconPlugin
Perl
1
star
17

TwitterBootstrapContrib

Foswiki module TwitterBootstrapContrib
JavaScript
1
star
18

BehaviourContrib

OBSOLETE: BehaviourContrib is included in the "distro" repository
JavaScript
1
star
19

SafeWikiPlugin

Foswiki's SafeWikiPlugin
Perl
1
star
20

GenPDFLatexAddOn

Foswiki's GenPDFLatexAddOn
Perl
1
star
21

ChildTopicsTag

Foswiki's ChildTopicsTag
Perl
1
star
22

DpSyntaxHighlighterPlugin

Foswiki's DpSyntaxHighlighterPlugin
CSS
1
star
23

RedDotPlugin

Foswiki's RedDotPlugin
Perl
1
star
24

ConfluenceToFoswikiContrib

Foswiki's ConfluenceToFoswikiContrib
Perl
1
star
25

TocPlugin

Foswiki's TocPlugin
Perl
1
star
26

EmbedTopicPlugin

Foswiki's EmbedTopicPlugin
Perl
1
star
27

TWikiCacheAddOn

Foswiki's TWikiCacheAddOn
1
star
28

MongoDBPlugin

Foswiki's MongoDBPlugin
Perl
1
star
29

QuickMenuSkin

Foswiki's QuickMenuSkin
JavaScript
1
star
30

DistributedServersPlugin

Foswiki's DistributedServersPlugin
Perl
1
star
31

NavPlugin

Foswiki's NavPlugin
Perl
1
star
32

XpTrackerPlugin

Foswiki's XpTrackerPlugin
Perl
1
star
33

SlashFilenamePlugin

Foswiki's SlashFilenamePlugin
Perl
1
star
34

JQGridPlugin

Foswiki's JQGridPlugin
JavaScript
1
star
35

WeatherPlugin

Foswiki's WeatherPlugin
Perl
1
star
36

ExcelImportExportPlugin

Foswiki's ExcelImportExportPlugin
Perl
1
star
37

KinoSearchContrib

Foswiki's KinoSearchContrib
Perl
1
star
38

GenPDFWebkitPlugin

Foswiki's GenPDFWebkitPlugin
Perl
1
star
39

ToPDFPlugin

Foswiki's ToPDFPlugin
PHP
1
star
40

QMPlugin

Workflow Engine for Quality Management
Perl
1
star
41

GenericWikiToTWikiAddOn

Foswiki's GenericWikiToTWikiAddOn
Perl
1
star
42

HttpHeaderPlugin

Foswiki's HttpHeaderPlugin
Perl
1
star
43

TopMenuSkin

Foswiki's TopMenuSkin
Perl
1
star
44

SmartEditContrib

Foswiki's SmartEditContrib
JavaScript
1
star
45

JQTwistyContrib

Foswiki module JQTwistyContrib
JavaScript
1
star
46

SlackPlugin

Slack integration for Foswiki https://foswiki.org/Extensions/SlackPlugin
Perl
1
star
47

TableToolAddOn

Foswiki's TableToolAddOn
PHP
1
star
48

SablotronPlugin

Foswiki's SablotronPlugin
Perl
1
star
49

WordPressPlugin

Foswiki's WordPressPlugin
Perl
1
star
50

InterwikiPreviewPlugin

Foswiki module InterwikiPreviewPlugin
Perl
1
star
51

TWikiDeploymentSpiderAddOn

Foswiki's TWikiDeploymentSpiderAddOn
Perl
1
star
52

FlowchartPlugin

Foswiki's FlowchartPlugin
Perl
1
star
53

GlobalReplacePlugin

Foswiki's GlobalReplacePlugin
Perl
1
star
54

RestPlugin

Foswiki's RestPlugin
Perl
1
star
55

WorkflowPlugin

Foswiki's WorkflowPlugin
Perl
1
star
56

JsonRpcContrib

OBSOLETE: Foswiki module JsonRpcContrib is part of "distro"
Perl
1
star
57

TopicDataHelperPlugin

Foswiki's TopicDataHelperPlugin
Perl
1
star
58

FindElsewherePlugin

Foswiki's FindElsewherePlugin
Perl
1
star
59

HijaxPlugin

Foswiki's HijaxPlugin
JavaScript
1
star
60

LdapContrib

Foswiki's LdapContrib
Perl
1
star
61

SlidyPlugin

Foswiki's SlidyPlugin
JavaScript
1
star
62

EditHiddenTablePlugin

Foswiki's EditHiddenTablePlugin
Perl
1
star
63

SingletonWikiWordPlugin

Foswiki's SingletonWikiWordPlugin
Perl
1
star
64

FakeBasicAuthRegPlugin

Foswiki's FakeBasicAuthRegPlugin
Perl
1
star
65

ClickToCallPlugin

Foswiki's ClickToCallPlugin
Perl
1
star
66

ChecklistPlugin

Foswiki's ChecklistPlugin
Perl
1
star
67

ListMeUpPlugin

Foswiki module ListMeUpPlugin
Perl
1
star
68

GuidPlugin

Foswiki's GuidPlugin
Perl
1
star
69

FastCGIEngineContrib

OBSOLETE! FastCGIEngineContrib is part of distro
Perl
1
star
70

JSPwikiToTWikiAddOn

Foswiki's JSPwikiToTWikiAddOn
Perl
1
star
71

WillNorris

Foswiki module WillNorris
1
star
72

EmbedPlugin

Foswiki's EmbedPlugin
Perl
1
star
73

TouchGraphPlugin

Foswiki's TouchGraphPlugin
Perl
1
star
74

BrowserBoosterPlugin

Foswiki's BrowserBoosterPlugin
Perl
1
star
75

LinkOptionsPlugin

Foswiki's LinkOptionsPlugin
Perl
1
star
76

VarCachePlugin

Foswiki's VarCachePlugin
Perl
1
star
77

CreateTopicTag

Foswiki's CreateTopicTag
Perl
1
star
78

PrefsCachePlugin

Foswiki's PrefsCachePlugin
Perl
1
star
79

HTTPDUserAdminContrib

Foswiki's HTTPDUserAdminContrib
Perl
1
star
80

ExplicitNumberingPlugin

Foswiki's ExplicitNumberingPlugin
Perl
1
star
81

NewUserPlugin

Foswiki's NewUserPlugin
Perl
1
star
82

MailInContrib

Foswiki's MailInContrib
Perl
1
star
83

FreeMindPlugin

Foswiki module FreeMindPlugin
Perl
1
star
84

AutoCompleteAddOn

Foswiki's AutoCompleteAddOn
Perl
1
star
85

ActivityStreamPlugin

Foswiki module ActivityStreamPlugin
Perl
1
star
86

EmptyTag

Foswiki's EmptyTag
Perl
1
star
87

AgentPlugin

Foswiki's AgentPlugin
Perl
1
star
88

BatchUploadPlugin

Foswiki's BatchUploadPlugin
Perl
1
star
89

LazyLoadPlugin

Foswiki module LazyLoadPlugin
JavaScript
1
star
90

JHotDrawPlugin

Foswiki's JHotDrawPlugin
Java
1
star
91

UseModWikiToTWikiAddOn

Foswiki's UseModWikiToTWikiAddOn
Perl
1
star
92

ComponentEditPlugin

Foswiki's ComponentEditPlugin
Perl
1
star
93

TranslateTagPlugin

Foswiki's TranslateTagPlugin
Perl
1
star
94

RemoveTrashPlugin

Foswiki module RemoveTrashPlugin
Perl
1
star
95

PhyloWidgetPlugin

Foswiki module PhyloWidgetPlugin
JavaScript
1
star
96

EmptyHeaderArtContrib

Foswiki's EmptyHeaderArtContrib
Perl
1
star
97

UserInfoPlugin

Foswiki's UserInfoPlugin
Perl
1
star
98

X509UserPlugin

Foswiki's X509UserPlugin
Perl
1
star
99

ImmediateNotifyPlugin

Foswiki's ImmediateNotifyPlugin
Perl
1
star
100

BigBlueButtonPlugin

Foswiki's BigBlueButtonPlugin
Perl
1
star