<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Documentation</title>
        <description></description>
        <link>http://www.midgard-project.org/documentation/</link>
        <lastBuildDate>Fri, 19 Mar 2010 15:21:55 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <item>
            <title>How to set up site search using Solr</title>
            <link>http://www.midgard-project.org/documentation/how_to_set_up_site_search_using_solr/</link>
            <description>&lt;h2&gt;About Solr&lt;/h2&gt;

&lt;p&gt;Solr is an open source enterprise search server based on the Lucene Java search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search, caching, replication, and a web administration interface. It runs in a Java servlet container such as Tomcat.&lt;/p&gt;

&lt;p&gt;That means that to use Solr you will need to run in some Java servlet container.&lt;/p&gt;

&lt;h2&gt;Using solr-tomcat5.5&lt;/h2&gt;

&lt;p&gt;On Ubuntu et co we have this package available and dependency of the midgard metapackage, so after installing just do the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Make sure the Catalina process uses &lt;a href=&quot;http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q2&quot;&gt;UTF-8 for URI parsing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download the &lt;a href=&quot;http://trac.midgard-project.org/browser/trunk/external-tools/indexer-backends/solr/schema.xml&quot;&gt;MidCOM Solr Schema&lt;/a&gt; and copy over &lt;code&gt;/etc/solr/conf/schema.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure your website to use the indexer
Set the following values in  &lt;code&gt;code-init-before-midcom&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$GLOBALS['midcom_config_local']['indexer_reindex_allowed_ips'] = array ( '127.0.0.1', 'server.main.ip' );
$GLOBALS['midcom_config_local']['indexer_backend'] = 'solr';
$GLOBALS['midcom_config_local']['indexer_xmltcp_host'] = 'localhost';
$GLOBALS['midcom_config_local']['indexer_xmltcp_port'] = '8180';
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you get &lt;code&gt;java.lang.NoClassDefFoundError&lt;/code&gt; in Tomcat logs you may need to &lt;a href=&quot;http://yousefourabi.com/blog/2007/12/running-solr-on-debian-with-tomcat/&quot;&gt;disable Tomcat security&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Using Jetty&lt;/h2&gt;

&lt;div class=&quot;warning&quot;&gt;
This section is very old, we suggest using Tomcat
&lt;/div&gt;

&lt;h3&gt;Dependencies&lt;/h3&gt;

&lt;p&gt;On Debian you need the following packages:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get install libmx4j-java libregexp-java libsablevm-classlib1-java libservlet2.4-java libtomcat5.5-java libxerces2-java sun-java5-jdk
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Installing Jetty&lt;/h3&gt;

&lt;p&gt;Solr comes with Jetty in the example directory.&lt;/p&gt;

&lt;h3&gt;Installing Solr&lt;/h3&gt;

&lt;div class=&quot;note&quot;&gt;
You must use version 1.1 of Solr
&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download Solr from the Solr website
&lt;a href=&quot;http://www.apache.org/dyn/closer.cgi/lucene/solr/&quot;&gt;http://www.apache.org/dyn/closer.cgi/lucene/solr/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unpack solr and copy the jetty example install to the jetty home.&lt;/p&gt;

&lt;p&gt;unzip apache-solr-1.1*.zip&lt;br /&gt;
   cp -R apache-solr-1.1*/example /usr/share/jetty&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the setupfiles for Solr. (Currently just for Debian)&lt;/p&gt;

&lt;p&gt;svn co https://svn.midgard-project.org/midgard/trunk/external-tools/indexer-backends/solr&lt;br /&gt;
cd solr&lt;br /&gt;
bash ./install-solr.sh&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This will install setupfiles in the correct places and set the correct permissions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Start solr&lt;/p&gt;

&lt;p&gt;/etc/init.d/jetty start&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now solr is running and listening to requests on port 8983.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a topic with the Search component.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the menu, choose website -&gt; website configuration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the following values:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Indexer: Solr&lt;/li&gt;
&lt;li&gt;Hostname of indexer xmltcp service: localhost (or the host solr is running on)&lt;/li&gt;
&lt;li&gt;Port of indexer xmltcp service: 8983&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Reindex your site.
Visit &lt;code&gt;/midcom-exec-midcom/reindex.php&lt;/code&gt;. This will take some time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should now be able to run searches on your site.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Security&lt;/h3&gt;

&lt;p&gt;In the &lt;code&gt;addListener&lt;/code&gt; definition in &lt;code&gt;jetty.xml&lt;/code&gt;, add the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;Set name=&quot;Host&quot;&amp;gt;localhost&amp;lt;/Set&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So Jetty doesn't listen to requests from the outside. If you want to still access the admin interface, use firewall scripts to hide the port from most users.&lt;/p&gt;

&lt;p&gt;See &lt;a href=&quot;http://wiki.apache.org/solr/SolrSecurity&quot;&gt;http://wiki.apache.org/solr/SolrSecurity&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h3&gt;Troubleshooting&lt;/h3&gt;

&lt;h4&gt;&quot;Authorization required&quot;&lt;/h4&gt;

&lt;p&gt;When you're running &lt;code&gt;midcom-exec-midcom/reindex.php&lt;/code&gt;, and you get &quot;Authorization required&quot; errors, you should modify the &lt;code&gt;indexer_reindex_allowed_ips&lt;/code&gt;. Either set it in &lt;code&gt;/etc/midgard/midcom.conf&lt;/code&gt; or in the host settings.&lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;midcom.conf&lt;/code&gt; file, you need to add:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$GLOBALS['midcom_config_site']['indexer_reindex_allowed_ips'] = array('127.0.0.1','192.168.126.128','127.0.1.1');
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;&quot;Indexer failed&quot;&lt;/h4&gt;

&lt;p&gt;If you get an &quot;indexer failed&quot; error when reindexing the site, ensure that SOLR's data directory exists and is writable:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir /usr/share/jetty/solr/data  
chown jetty /usr/share/jetty/solr/data
&lt;/code&gt;&lt;/pre&gt;
</description>
            <author>Eero af Heurlin</author>
            <pubDate>Tue, 23 Feb 2010 13:53:10 +0000</pubDate>
        </item>
        <item>
            <title>External tutorials</title>
            <link>http://www.midgard-project.org/documentation/external-tutorials/</link>
            <description>&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www-106.ibm.com/developerworks/library/w-midgard/&quot;&gt;IBM DeveloperWorks Tutorial&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
A nice tutorial on Midgard. Written by David Seager, a software engineer
at IBM, the article describes setting up a basic Midgard site. The
article also does a good job of setting up a general context for what
Midgard is and how it works.&lt;br /&gt;
&lt;a href=&quot;http://www-106.ibm.com/developerworks/library/w-midgard/&quot;&gt;http://www-106.ibm.com/developerworks/library/w-midgard/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.webtechniques.com/archives/2000/05/jepson/&quot;&gt;New Architect on Midgard&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
The May 2000 issue of New Architect (then Web Techniques) carried an
introductory article and tutorial to Midgard by Brian Jepson.&lt;br /&gt;
&lt;a href=&quot;http://www.webtechniques.com/archives/2000/05/jepson/&quot;&gt;http://www.webtechniques.com/archives/2000/05/jepson/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.3rd-evolution.de/docs/misc/midgard/&quot;&gt;Midgard tutorial in German&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
3rd Evolution's tutorial on Midgard and Nadmin Studio on Mandrake Linux. In German.&lt;br /&gt;
&lt;a href=&quot;http://www.3rd-evolution.de/docs/misc/midgard/&quot;&gt;http://www.3rd-evolution.de/docs/misc/midgard/&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;Reference manuals&lt;/h2&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;http://www.php.net/manual/&quot;&gt;PHP Manual&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
The PHP programming language manual and API reference.&lt;br /&gt;
&lt;a href=&quot;http://www.php.net/manual/&quot;&gt;http://www.php.net/manual/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;http://midgardwiki.contentcontrol-berlin.de/index.php/Main_Page&quot;&gt;MidgardWiki @ Content Control&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
Wiki collecting Midgard site building information.
&lt;/p&gt;
</description>
            <author>Mattias Stahre</author>
            <pubDate>Mon, 22 Feb 2010 01:27:06 +0000</pubDate>
        </item>
        <item>
            <title>PHP midgard object method delete_attachments</title>
            <link>http://www.midgard-project.org/documentation/php_midgard_object_method_delete_attachments/</link>
            <description>&lt;p&gt;Delete object's attachments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;boolean&lt;/em&gt; &lt;strong&gt;delete_attachments(&lt;em&gt;array&lt;/em&gt; args);&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This method takes one argument:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;args, associative array&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Array's keys must be &lt;em&gt;midgard_attachment&lt;/em&gt; properties' names, values should define constraints  with properties's values.&lt;/p&gt;

&lt;p&gt;Delete all attachments with matching properties' values. It's possible to undelete attachment which have been deleted with this method.&lt;/p&gt;

&lt;p&gt;Blobs that are linked to attachment are &lt;strong&gt;not&lt;/strong&gt; deleted because one blob can be linked to many attachments. Blobs are deleted with blob's &lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_blob_method_remove_file/&quot; class=&quot;wikipage default&quot; title=&quot;PHP midgard_blob method remove_file&quot;&gt;remove_file&lt;/a&gt; function&lt;/p&gt;

&lt;p&gt;Returns &lt;em&gt;TRUE&lt;/em&gt; on success, &lt;em&gt;FALSE&lt;/em&gt; otherwise.&lt;/p&gt;

&lt;h2&gt;Example&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php

/* Delete all image attachments */

 try {
     $style = new midgard_style($guid);
 } catch (Exception $e) {
     echo $e-&amp;gt;getMessage();  
 }

 $args = array (&quot;mimetype&quot; =&amp;gt; &quot;image/jpeg&quot;);

 if($style-&amp;gt;delete_attachments($args))
     echo &quot;Deleted all image attachments&quot;;

 ?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_object_attachments/&quot; class=&quot;wikipage default&quot; title=&quot;PHP midgard object attachments&quot;&gt;midgard object attachments&lt;/a&gt;&lt;/p&gt;
</description>
            <author>Tero Heikkinen</author>
            <pubDate>Fri, 19 Feb 2010 14:08:14 +0000</pubDate>
        </item>
        <item>
            <title>midcom.services.indexer installation</title>
            <link>http://www.midgard-project.org/documentation/midcom-services-indexer-installation/</link>
            <description>&lt;p&gt;These are instructions for installing and setting up the &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-services-indexer/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.indexer&quot;&gt;MidCOM full-text search system&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;warning&quot;&gt;
This is very old information, see &lt;a href=&quot;http://www.midgard-project.org/midcom-permalink-b487bad8110511dc980877b09f9f174b174b&quot;&gt;How to set up site search using Solr&lt;/a&gt; in stead
&lt;/div&gt;

&lt;h3&gt;Recommended Reading&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/midcom-permalink-3d79ca5390b40723dec859ffc3a8b1e6&quot;&gt;mRFC 9: MidCOM Indexing Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/midcom-permalink-4aa26f6e6eb50e25f396ce4b449b4134&quot;&gt;mRFC 14: MidCOM Remote Indexing Service: XML Communication Protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Class &lt;a href=&quot;http://www.nehmer.net/~torben/midcom-docs/midcom.services/midcom_services_indexer.html&quot;&gt;midcom_service_indexer&lt;/a&gt; in the &lt;a href=&quot;http://www.nehmer.net/~torben/midcom-docs/&quot;&gt;MidCOM API Documentation&lt;/a&gt;, section midcom.services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;General Structure&lt;/h3&gt;

&lt;p&gt;The Indexer is not directly indetrated into PHP. On one hand, the  performance in a persistently running indexer daemon is (on average) better, than a fully integrated solution. On the other hand, there is just no really usable PHP-level On-Demand Indexer out there anyway (not that I would trust PHP far enough in this respect.&lt;/p&gt;

&lt;p&gt;The structure of the index is further described in the &lt;a href=&quot;http://www.midgard-project.org/midcom-permalink-3d79ca5390b40723dec859ffc3a8b1e6&quot;&gt;mRFC 9&lt;/a&gt;. See there how Documents and Fields interact.&lt;/p&gt;

&lt;p&gt;This document will focus on setting up and using the Indexer.&lt;/p&gt;

&lt;h3&gt;Setting up the Lucene Daemon&lt;/h3&gt;

&lt;p&gt;All required files of the current CVS state are available for Download on the &lt;a href=&quot;https://www.midgard-project.org/development/download/required-indexer-files.html&quot;&gt;required indexer files&lt;/a&gt; page, but if you want an up-to-date build of the system, follow these instructions:&lt;/p&gt;

&lt;h4&gt;Building and Installing the Daemon&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Lucene Website and download the latest Lucene binary tarball. In it you will find a file named &lt;strong&gt;lucene-$version.jar&lt;/strong&gt;. Rename it to a plain &lt;strong&gt;lucene.jar&lt;/strong&gt;. (Use version 1.4.3 found here http://apache.fi/lucene/java/archive/)&lt;/li&gt;
&lt;li&gt;Go to the &lt;strong&gt;external-tools/indexer-backends/lucene&lt;/strong&gt; directory of the current MidCOM CVS. Copy the &lt;strong&gt;lucene.jar&lt;/strong&gt; file into this directory and run make there, it will build a file named &lt;strong&gt;indexer.jar&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Create a directory and copy the files &lt;strong&gt;lucene.jar&lt;/strong&gt;, &lt;strong&gt;indexer.jar&lt;/strong&gt;, &lt;strong&gt;xml-communication-request.dtd&lt;/strong&gt; and &lt;strong&gt;xml-communication-response.dtd&lt;/strong&gt; into it.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Running the Daemon&lt;/h4&gt;

&lt;p&gt;Go to the newly created directory, with an user account that has write permissions to this directory. Run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/usr/bin/java -jar indexer.jar (or wherever you have java)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You should be fine from that point, the daemon will listen to 127.0.0.1:2222, which is the default setting from the MidCOM side too.&lt;/p&gt;

&lt;p&gt;The Daemon will run in foreground by default, unless you launch it with some nohup wrapper. For the init-script (for debian), see &quot;To make indexer run as a init.d script&quot; section at the bottom of this page.&lt;/p&gt;

&lt;h4&gt;Changing Configuration&lt;/h4&gt;

&lt;p&gt;The daemon will take a filename during startup as first command line argument. A full configuration file looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;logfile = 
loglevel = WARNING
bind = 127.0.0.1
port = 2222
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;What I wrote here are the defaults, log warning level messages to stderr (no log file) and bind to 127.0.0.1:2222. Check &lt;a href=&quot;http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html&quot;&gt;java.util.logging.Level&lt;/a&gt; for valid logging levels.&lt;/p&gt;

&lt;p&gt;You should be fine using the defaults though.&lt;/p&gt;

&lt;h3&gt;Configuring MidCOM to use the Indexer&lt;/h3&gt;

&lt;p&gt;This is relativly easy, and consists of three tasks:&lt;/p&gt;

&lt;h4&gt;Activate the indexing feature in the MidCOM configuration&lt;/h4&gt;

&lt;p&gt;As usual, you will find all detailed information in the &lt;a href=&quot;http://www.nehmer.net/~torben/midcom-docs/&quot;&gt;MidCOM API docs&lt;/a&gt;, section &lt;a href=&quot;http://www.nehmer.net/~torben/midcom-docs/midcom/_midcom_config_midcom_config_php.html&quot;&gt;midcom_config.php&lt;/a&gt;. As long as you stick to the default configuration, it is enough to activate the XMLTCP indexing backend during MidCOM startup:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$GLOBALS['midcom_local_config']['indexer_backend'] = 'xmltcp';
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Two more configuration options, &lt;strong&gt;indexer_xmltcp_host&lt;/strong&gt; and &lt;strong&gt;indexer_xmltcp_port&lt;/strong&gt;, allowing you to explicitly specify the host/port combination where the indexer runs.&lt;/p&gt;

&lt;h4&gt;Index your entire site&lt;/h4&gt;

&lt;p&gt;Unless you are building a site from scratch, you obviously have to reindex your entire website. This is done by accessing this URL with full admin privileges:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;http://your.site.com/midcom-exec-midcom/reindex.php
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Two important notes about this: First it will take quite some time, as the MidCOM side of the interface does not yet support batch indexing. Second, and far more important, Reindexing will take a huge amount of RAM. For example, a site with around 250 documents on it requires about 60 MB of total RAM.&lt;/p&gt;

&lt;h4&gt;Create the Indexer Frontend&lt;/h4&gt;

&lt;p&gt;Create a new topic using the component &lt;strong&gt;midcom.helper.search&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;To make indexer run as a init.d script (on debian).&lt;/h2&gt;

&lt;p&gt;To make indexer run as a init.d script so you can use normal start &amp;amp;
stop do the following steps. This is for Debian system. Tested in Sarge.
You must perform these steps as root.&lt;/p&gt;

&lt;p&gt;Create &lt;strong&gt;/usr/share/midgard/indexer/indexer&lt;/strong&gt; in which you put the following code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#! /bin/sh
#
# indexer

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC=&quot;MidCOM indexer&quot;
NAME=java-indexer
DAEMON=/usr/share/midgard/indexer/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
ARGS=&quot;-jar indexer.jar&quot;
APPDIR=/usr/share/midgard/indexer

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

# Read config file if it is present.
#if &amp;lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&amp;gt; -r /etc/default/$NAME &amp;lt;/span&amp;gt;
#then
#   . /etc/default/$NAME
#fi

#
#   Function that starts the daemon/service.
#
d_start() {
    start-stop-daemon --start --make-pidfile --pidfile $PIDFILE \
        --chdir $APPDIR --background --quiet \
        --exec $DAEMON -- $ARGS
}

#
#   Function that stops the daemon/service.
#
d_stop() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
}

#
#   Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --signal 1
}

case &quot;$1&quot; in
  start)
    echo -n &quot;Starting $DESC: $NAME&quot;
    d_start
    echo &quot;.&quot;
    ;;
  stop)
    echo -n &quot;Stopping $DESC: $NAME&quot;
    d_stop
    echo &quot;.&quot;
    ;;
  #reload)
    #
    #   If the daemon can reload its configuration without
    #   restarting (for example, when it is sent a SIGHUP),
    #   then implement that here.
    #
    #   If the daemon responds to changes in its config file
    #   directly anyway, make this an &quot;exit 0&quot;.
    #
    # echo -n &quot;Reloading $DESC configuration...&quot;
    # d_reload
    # echo &quot;done.&quot;
  #;;
  restart|force-reload)
    #
    #   If the &quot;reload&quot; option is implemented, move the &quot;force-reload&quot;
    #   option to the &quot;reload&quot; entry above. If not, &quot;force-reload&quot; is
    #   just the same as &quot;restart&quot;.
    #
    echo -n &quot;Restarting $DESC: $NAME&quot;
    d_stop
    sleep 1
    d_start
    echo &quot;.&quot;
    ;;
  *)
    # echo &quot;Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}&quot; &amp;gt;&amp;amp;2
    echo &quot;Usage: $SCRIPTNAME {start|stop|restart|force-reload}&quot; &amp;gt;&amp;amp;2
    exit 1
    ;;
esac

exit 0
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you do not already have PEAR XML_Parser, you need to also get that:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pear install xml_parser
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Copy &lt;strong&gt;indexer.jar&lt;/strong&gt;, &lt;strong&gt;xml-communication-request.dtd&lt;/strong&gt;,
&lt;strong&gt;xml-communication-response.dtd&lt;/strong&gt;, &lt;strong&gt;lucene.jar&lt;/strong&gt; in &lt;strong&gt;/usr/share/midgard/indexer/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make sure you have Java runtime installed. Create symlink so that
&lt;strong&gt;/usr/share/midgard/indexer/java-indexer&lt;/strong&gt; points to java.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ln -s /opt/j2re/bin/java /usr/share/midgard/indexer/java-indexer
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The process we will be running will then be called &lt;strong&gt;java-indexer&lt;/strong&gt; so this
wont mess up with other java processes.&lt;/p&gt;

&lt;p&gt;Create symlink:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ln -s /usr/share/midgard/indexer/indexer /etc/init.d/indexer
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To make it automatically start and stop on startup/shutdown:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;update-rc.d indexer defaults
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Have fun indexing!&lt;/p&gt;
</description>
            <author>Eero af Heurlin</author>
            <pubDate>Mon, 15 Feb 2010 15:10:31 +0000</pubDate>
        </item>
        <item>
            <title>Debian</title>
            <link>http://www.midgard-project.org/documentation/installation-distros-debian/</link>
            <description>&lt;p&gt;Debian packages are now built using &lt;a href=&quot;http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/Debian_5.0/&quot;&gt;OpenSuse Build System&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Add OBS repository to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;deb http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/Debian_5.0/ ./
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or for Debian Etch:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;deb http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/Debian_Etch/ ./
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To get rid of this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;W: GPG error: http://download.opensuse.org ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DFD08130B9E2252E
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;...Download Release.key and import it, e.g.:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/Debian_5.0/Release.key

cat Release.key | apt-key add -
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Download packages and install them manually, if packages can not be installed with apt-get.&lt;/p&gt;

&lt;p&gt;Run these commands when repository is added:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get update
apt-get install midgard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Try to install &lt;code&gt;midgard-debian&lt;/code&gt; package if &lt;code&gt;midgard&lt;/code&gt; is not installable.&lt;/p&gt;

&lt;p&gt;If latter fails:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get install midgard-data php5-midgard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Old stable 1.8 generation &quot;Thor&quot;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;deb http://download.opensuse.org/repositories/home:/midgardproject:/midgard18/Debian_Etch/ ./
&lt;/code&gt;&lt;/pre&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Thu, 04 Feb 2010 11:19:33 +0000</pubDate>
        </item>
        <item>
            <title>Kerberos single sign-on with Active Directory</title>
            <link>http://www.midgard-project.org/documentation/kerberos-single-sign-on-with-active-directory/</link>
            <description>&lt;p&gt;&lt;strong&gt;Kerberos authentication&lt;/strong&gt; is a &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-authentication/&quot; class=&quot;wikipage &quot; title=&quot;Third-party Authentication&quot;&gt;third party authentication&lt;/a&gt; mechanism supported by Midgard. It allows users to &lt;a href=&quot;http://www.midgard-project.org/documentation/logging-into-midcom/&quot; class=&quot;wikipage &quot; title=&quot;Logging into MidCOM&quot;&gt;log in&lt;/a&gt; to Midgard using their LDAP or Active Directory accounts. In Kerberos authentication users may log in to Midgard in the normal way or using single sign-on method.&lt;/p&gt;

&lt;h2&gt;Basic kerberos configuration on midgard server&lt;/h2&gt;

&lt;p&gt;Install mod_auth_kerb.&lt;/p&gt;

&lt;p&gt;Configure /etc/krb5.conf&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[libdefaults]
    default_realm = KERBEROS.REALM

[domain_realm]
    apache.server.fqdn = KERBEROS.REALM

[realms]
    KERBEROS.REALM = {
        kdc = kdc.kerberos.realm
        }
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Test configuration&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ kinit username
$ klist
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you get ticket from the kerberos server, you should be fine to continue. Otherwise you might find the troubleshooting section, in the end of this document, useful.&lt;/p&gt;

&lt;h2&gt;Creating keytab for single sign-on&lt;/h2&gt;

&lt;p&gt;First you must create a user account on the kerberos domain controller server. The user account must not be disabled and the password must stay the same. Otherwise you  might need to recreate the keytab. In this example the user account name is &quot;apache_server&quot; and has password &quot;apache_password&quot;.&lt;/p&gt;

&lt;p&gt;Windows Server 2003:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;C:\Program Files\Support Tools&amp;gt;ktpass -princ HTTP/apache.server.fqdn@KERBEROS.REALM -mapuser apache_server -crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass apache_password -out name.keytab
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Windows Server 2000 (not tested):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;C:\Program Files\Support Tools&amp;gt;ktpass -princ HTTP/apache.server.fqdn@KERBEROS.REALM -mapuser dummyuser -crypto DES-CBC-MD5 -pass password -out name.keytab
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Install support tools to optain ktpass.exe. After creating the keytab you propably need to reset the password because of the new crypto type. You need to use the same password.&lt;/p&gt;

&lt;p&gt;apache.server.fqdn = the site url you are going to use. The url must be resolvable by the kerberos and midgard server to the midgard server ip-address.&lt;/p&gt;

&lt;p&gt;Place the keytab file on the midgard server and give apache user read rights to the file.&lt;/p&gt;

&lt;p&gt;Test the keytab:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ kinit -k -t /etc/name.keytab HTTP/apache.server.fqdn
$ klist
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you get ticket from the kerberos server, you should be fine to continue. Otherwise you might find the troubleshooting section, in the end of this document, useful.&lt;/p&gt;

&lt;h2&gt;Configuring midgard vhost&lt;/h2&gt;

&lt;p&gt;Below is a configuration for a kerberos SingleSignOn authentication which fallbacks to a kerberos password authentication.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Servername apache.server.fqdn
MidgardAuthType trusted

&amp;lt;Location &quot;/&quot;&amp;gt;
    AuthName &quot;Kerberos Authentication&quot;
    AuthType Kerberos
    KrbAuthRealms KERBEROS.REALM
    Krb5Keytab /etc/name.keytab
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    Order Allow,Deny
    # Allow cron scripts etc from local machine
    Allow from localhost
    Allow from apache.server.fqdn
    # Require kerberos for others
    Require valid-user
    Satisfy any
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Browser support for single sign-on&lt;/h2&gt;

&lt;p&gt;Firefox:&lt;/p&gt;

&lt;p&gt;Go to about:config
edit network.negotiate-auth.trusted-uris and add http(s)://(site)&lt;/p&gt;

&lt;p&gt;IE6:&lt;/p&gt;

&lt;p&gt;Add the site to trusted sites.
Make sure that &quot;Enable Integrated Windows Authentication&quot; is on&lt;/p&gt;

&lt;h2&gt;Troubleshooting and useful links&lt;/h2&gt;

&lt;p&gt;In midgard server the site url must be /etc/hosts as a first entry for the ip in question:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;172.0.0.1       locahost.localdomain localhost
'ip-address'    apache.server.fqdn apache
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The midgard server must be in same time with the kerberos server. You can use ntp or ntpdate for this.&lt;/p&gt;

&lt;h3&gt;GSS failure &quot;Key version number for principal in key table is incorrect&quot;&lt;/h3&gt;

&lt;p&gt;If you reset the password after creating the keytab you will need to create a new one, even if kinit does not complain the Kerberos server will refuse to serve authentication requests for the &quot;old&quot; keytab.&lt;/p&gt;

&lt;p&gt;Links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://modauthkerb.sourceforge.net/&quot;&gt;mod_auth_kerb, the Apache Kerberos module&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.grolmsnet.de/kerbtut/&quot;&gt;useful kerberos authentication tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://technet.microsoft.com/fi-fi/library/bb742433%28en-us%29.aspx&quot;&gt;Microsoft's kerberos interoperability guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/tkerberr.mspx&quot;&gt;Microsoft's kerberos troubleshooting document&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
            <author>Eero af Heurlin</author>
            <pubDate>Thu, 21 Jan 2010 12:33:36 +0000</pubDate>
        </item>
        <item>
            <title>Setting Up a Midgard Database</title>
            <link>http://www.midgard-project.org/documentation/installation-database/</link>
            <description>&lt;p&gt;After the Midgard Framework is installed, run the &lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt; command. Before doing this, ensure that the Midgard module in enabled in the &lt;code&gt;php.ini&lt;/code&gt; file used by PHP CLI.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ datagard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;When you run datagard for the first time, and midgard-data can not connect to MySQL server, you will be asked about the MySQL administrator name and password.&lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
By default datagard tries to connect to database with currently logged in username and with empty password. You should change MySQL's administrator password, if connection has been succesfully established without password . It's highly recommended for production servers
&lt;/div&gt;

&lt;h2&gt;Midgard 8.09 Ragnaroek&lt;/h2&gt;

&lt;p&gt;By default, datagard installs new database named 'midgard'. To install new database, run datagard without any arguments:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you need to create another database with self tuned configuration values, create own Midgard &lt;a href=&quot;http://www.midgard-project.org/documentation/unified-configuration/&quot; class=&quot;wikipage &quot; title=&quot;unified configuration&quot;&gt;unified configuration&lt;/a&gt; and specify this configuration as datagard argument:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -c myconfiguration
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You will be asked very few questions, like hostname or host's port. Datagard provides sensible defaults which should be suitable in many cases.&lt;/p&gt;

&lt;p&gt;This initial setup will create:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;Midgard Domain (Sitegroup)&lt;/li&gt;
&lt;li&gt;Apache Virtual Host &lt;/li&gt;
&lt;li&gt;Midgard Virtual Host&lt;/li&gt;
&lt;li&gt;Initial website with default style&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Default Midgard Domain (sitegroup) administrator's username is &lt;em&gt;admin&lt;/em&gt;. Password: &lt;em&gt;nowadays randomized so please change it to something you remember or write it down&lt;/em&gt;.&lt;/p&gt;

&lt;div class=&quot;note&quot;&gt;
If you install Midgard for the first time, and datagard ask you for Midgard root username and password - use recommended, default values.
&lt;/div&gt;

&lt;h2&gt;Midgard 1.8&lt;/h2&gt;

&lt;p&gt;Select &quot;install&quot; from the datagard menu:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/eb0cf27745b4b1f3652be2c1951b8b85/5972b33f2f7e4613a6a3b3eb8560cc82/menu_s.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You will be asked about the database name which you would like to create:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/eb0cf27745b4b1f3652be2c1951b8b85/778ed60a1ae394ee9dd8064be6b76c47/dbname_s.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Right after that you will be asked about the Midgard database username and password. This data is used to create a MySQL account and to connect websites with the MySQL server.&lt;/p&gt;

&lt;p&gt;All midgard packages which are included in midgard-data will be imported to the database. (Depending on your hardware, it may take from a few minutes up to twenty minutes.)&lt;/p&gt;

&lt;p&gt;If You need and want to create a virtual host, answer &quot;yes&quot;. This is important. If you say &quot;no&quot;, midgard-data won't update your database to be ready to use with the Apache server, and you will be forced to update your database manually.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/eb0cf27745b4b1f3652be2c1951b8b85/b362d21673ea26d10bce0d6aad0e7f31/cvhost_s.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Read &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-vhost/&quot; class=&quot;wikipage &quot; title=&quot;Creating a New Virtual Host&quot;&gt;Creating a New Virtual Host&lt;/a&gt; for instructions on creating the virtual host.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Tue, 05 Jan 2010 21:38:21 +0000</pubDate>
        </item>
        <item>
            <title>PHP midgard_object_class</title>
            <link>http://www.midgard-project.org/documentation/php_midgard_object_class/</link>
            <description>&lt;div class=&quot;note&quot;&gt;
This is Midgard 1.9/2.0 API
&lt;/div&gt;

&lt;p&gt;midgard_object_class is semi or pseudo class because it doesn't have any properties registered. Besides it's not even usefull to create its new instances.
It's implemented as class with static methods for better readability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;factory&lt;/span&gt;&lt;/strong&gt; - Create new MgdSchema instance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;undelete&lt;/span&gt;&lt;/strong&gt; - Undelete MgdSchema object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;is_multilang&lt;/span&gt;&lt;/strong&gt; - Returns boolean value whether the MgdSchema object/class has multilingual properties&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;get_object_by_guid&lt;/span&gt;&lt;/strong&gt; - Creates MgdSchema instance identified by given guid&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;get_property_up&lt;/span&gt;&lt;/strong&gt; - Get class' up property&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;get_property_parent&lt;/span&gt;&lt;/strong&gt; - Get class' parent property&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_object_class_method_connect_default/&quot; class=&quot;wikipage default&quot; title=&quot;PHP midgard_object_class method connect_default&quot;&gt;connect_default&lt;/a&gt;&lt;/strong&gt; - Connects   a callback to event&lt;/li&gt;
&lt;/ul&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Mon, 04 Jan 2010 10:33:09 +0000</pubDate>
        </item>
        <item>
            <title>Ubuntu</title>
            <link>http://www.midgard-project.org/documentation/ubuntu/</link>
            <description>&lt;p&gt;Ubuntu packages are available (among other distribution) on &lt;a href=&quot;http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/&quot;&gt;OpenSuse Build System&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There's also repository mirror on Midgard website.
Add ubuntu repository to &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;deb http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/xUbuntu_9.04/ ./
&lt;/code&gt;&lt;/pre&gt;

&lt;div class=&quot;note&quot;&gt;
Check the version number of your Ubuntu and change URL accordingly
&lt;/div&gt;

&lt;p&gt;Update packages info and install.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get update

apt-get install midgard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And then just &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-database/&quot; class=&quot;wikipage &quot; title=&quot;Setting Up a Midgard Database&quot;&gt;proceed to set up your database and website&lt;/a&gt;.&lt;/p&gt;
</description>
            <author>harty zeidt</author>
            <pubDate>Wed, 18 Nov 2009 13:21:43 +0000</pubDate>
        </item>
        <item>
            <title>Midgard release names</title>
            <link>http://www.midgard-project.org/documentation/midgard-release-names/</link>
            <description>&lt;p&gt;The Midgard releases have usually been named after some current event in the community. If no fitting events have been around, then names have been taken from &lt;a href=&quot;http://en.wikipedia.org/wiki/Viking_mythology&quot; class=&quot;wikipedia&quot;&gt;Viking mythology&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.0 Land Rover series&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;The first public release of Midgard was named after the 1962 Land Rover jeep of Eero af Heurlin that Midgard originators Jukka Zitting and Henri Bergius used on several trips, and which &lt;a href=&quot;http://www.greywolves.org/kuvat/kuva/Vareventyr/Landikka_tienposkessa.html&quot;&gt;always broke and needed to be pushed&lt;/a&gt; from places. The Land Rover also had its own &lt;a href=&quot;http://www.greywolves.org/kuvat/kuva/Harmaasusien_Kesasiirtola-98/Apua_Se_tulee.html&quot;&gt;theme song&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.1 Iron River series&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;Iron River was named after the &lt;a href=&quot;http://www.greywolves.org/uutiset/1999-11-19-Rautajoki_menestyi_Linda-gaalassa.html&quot;&gt;award-winning&lt;/a&gt; &lt;a href=&quot;http://rautajoki.greywolves.org/&quot;&gt;Rautajoki&lt;/a&gt; &lt;abbr title=&quot;Live Action RolePlay&quot;&gt;LARP&lt;/abbr&gt; arranged by Harmaasudet Ry in Finland. Midgard developer Jukka Zitting delayed the 1.1 release substantially by leaving to build the Viking village needed for the game near town of &lt;a href=&quot;http://en.wikipedia.org/wiki/Hollola&quot; class=&quot;wikipedia&quot;&gt;Hollola&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.2 Mad King series&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;Midgard 1.2.x was a long-running Midgard release series started in summer 1999 and ended in December 2000.&lt;/p&gt;

&lt;p&gt;Mad King was the name of a medieval &lt;a href=&quot;http://www.greywolves.org/kuvat/kuva/puotila00_nina/004hullukuninkas.html&quot;&gt;theatre play&lt;/a&gt; where Jukka Zitting took part.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.4 Bifrost series&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;Introduced in December 2000, Midgard 1.4 series introduced features like &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-attachment/&quot; class=&quot;wikipage &quot; title=&quot;MidgardAttachment&quot;&gt;attachments&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-sitegroup/&quot; class=&quot;wikipage &quot; title=&quot;MidgardSitegroup&quot;&gt;site groups&lt;/a&gt;, and was the first series where PHP did not need to be patched for Midgard.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Bifrost&quot; class=&quot;wikipedia&quot;&gt;Bifrost&lt;/a&gt; is the bridge leading from &lt;a href=&quot;http://en.wikipedia.org/wiki/Midgard&quot; class=&quot;wikipedia&quot;&gt;Midgard&lt;/a&gt;, the world of men into &lt;a href=&quot;http://en.wikipedia.org/wiki/Asgard&quot; class=&quot;wikipedia&quot;&gt;Asgard&lt;/a&gt;, the world of gods. 1.4.0 was thought to be paving the way for the Midgard 2 release.&lt;/p&gt;

&lt;h3&gt;1.4.3 Rough Landing&lt;/h3&gt;

&lt;p&gt;The 1.4.3 release was named after Emile Heyns' &lt;a href=&quot;http://www.routamc.org/midcom-permalink-7f78f2ed93c403f0d5cf39d2099033fe&quot;&gt;parachuting accident&lt;/a&gt;  in April 2002 that left Torben Nehmer as the new release manager. Luckily Emile has &lt;a href=&quot;http://marc.theaimsgroup.com/?l=midgard-user&amp;amp;m=103538006806078&amp;amp;w=2&quot;&gt;returned to the skies&lt;/a&gt; since.&lt;/p&gt;

&lt;h3&gt;1.4.4 Happy Christmas&lt;/h3&gt;

&lt;p&gt;This major bugfix release was make in &lt;a href=&quot;http://en.wikipedia.org/wiki/Christmas&quot; class=&quot;wikipedia&quot;&gt;Christmas&lt;/a&gt; 2002. 1.4.4 was the last release of the 1.4 series.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.5 Biergarten series&lt;/span&gt;&lt;/h2&gt;

&lt;p&gt;The 1.5 series were named after the famous &lt;a href=&quot;http://en.wikipedia.org/wiki/Biergarten&quot; class=&quot;wikipedia&quot;&gt;Biergarten&lt;/a&gt;s of &lt;a href=&quot;http://en.wikipedia.org/wiki/Munich&quot; class=&quot;wikipedia&quot;&gt;Munich&lt;/a&gt;, the city where the summer 2003 Midgard developer meeting was held.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 1.6 series&lt;/span&gt;&lt;/h2&gt;

&lt;h3&gt;1.6.0beta Five Years&lt;/h3&gt;

&lt;p&gt;The 1.6.0beta release was timed for the &lt;a href=&quot;/midcom-permalink-ff5536f153aa767653f40fedf42bb707&quot;&gt;Fifth Anniversary Party&lt;/a&gt; of the project held on May 2004 in Poznan, Poland.&lt;/p&gt;

&lt;h3&gt;1.6.0rc1 Black Wolga&lt;/h3&gt;

&lt;p&gt;Released on September 22th 2004 and apparently named after the Russian &lt;a href=&quot;http://en.wikipedia.org/wiki/Volga_%28automobile%29&quot;&gt;Volga cars&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;1.6.0rc2 Night Boat&lt;/h3&gt;

&lt;p&gt;Released on October 19th 2004.&lt;/p&gt;

&lt;h3&gt;1.6.0 Swedengard&lt;/h3&gt;

&lt;p&gt;Swedengard was a Midgardization of Sweden, the location of then-upcoming Midgard developer meeting.&lt;/p&gt;

&lt;h3&gt;1.6.1 Sverix&lt;/h3&gt;

&lt;p&gt;Sverix is short for &lt;em&gt;Sweden Fix&lt;/em&gt;, for release containing bug fixes made during a developer meeting in Linköping, Sweden.&lt;/p&gt;

&lt;h3&gt;1.6.2 Amerigard&lt;/h3&gt;

&lt;p&gt;Amerigard was a play on the &lt;a href=&quot;http://www.rammstein.com/amerika/&quot;&gt;We all live in Amerika&lt;/a&gt; song by &lt;a href=&quot;http://en.wikipedia.org/wiki/Rammstein&quot; class=&quot;wikipedia&quot;&gt;Rammstein&lt;/a&gt; that was popular and playing constantly during the November 2004 Midgard developer meeting in Sweden.&lt;/p&gt;

&lt;h3&gt;1.6.3 Threadened by Patents&lt;/h3&gt;

&lt;p&gt;1.6.3 was the first release supporting PHP built with the &lt;a href=&quot;http://php-mag.net/itr/kolumnen/psecom,id,34,nodeid,207.html&quot;&gt;Zend threat safety&lt;/a&gt; features enabled. At the time the &lt;a href=&quot;http://bergie.iki.fi/midcom-permalink-f3a3407ce8e2d8ce1c6caad9aea6e1d6&quot;&gt;European software patent controversy&lt;/a&gt; was also raging.&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-1-7-0/&quot; class=&quot;wikipage default&quot; title=&quot;midgard-1.7.0&quot;&gt;Midgard 1.7 series&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Started in early 2005, Midgard 1.7 series was finally the stage where Midgard 2 features were introduced into Midgard for real.&lt;/p&gt;

&lt;h3&gt;1.7alpha1 Leoni &amp;amp; Akseli&lt;/h3&gt;

&lt;p&gt;The release was named after &lt;a href=&quot;http://people.best-off.org/~dsr/cubelog/archives/2005/03/26/a-little-diva-is-born/&quot;&gt;Leonie&lt;/a&gt; and &lt;a href=&quot;http://www.kaukolaweb.com/midcom-permalink-b162adbfb2f2ab81a04ac55451e28e21&quot;&gt;Akseli&lt;/a&gt;, the newborn children of Midgard developers Daniel Reichenbach and Henri Kaukola.&lt;/p&gt;

&lt;h3&gt;1.7beta1 FlyHigh&lt;/h3&gt;

&lt;p&gt;The 1.7beta1 release was named for &lt;a href=&quot;http://en.wikipedia.org/wiki/Private_pilot_license&quot; class=&quot;wikipedia&quot;&gt;Private Pilot License&lt;/a&gt; training's &lt;a href=&quot;http://bergie.iki.fi/midcom-permalink-abf2de93094ccd2327b75a01fe423080&quot;&gt;first solo flight&lt;/a&gt; by Henri Bergius, a Midgard developer.&lt;/p&gt;

&lt;h3&gt;1.7rc Patent Free&lt;/h3&gt;

&lt;p&gt;This release celebrated the &lt;a href=&quot;http://bergie.iki.fi/midcom-permalink-b59ab255e514f931bbd594806afd322b&quot;&gt;repealing of software patents&lt;/a&gt; in the &lt;a href=&quot;http://en.wikipedia.org/wiki/European_union&quot; class=&quot;wikipedia&quot;&gt;European union&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-1-7-0/&quot; class=&quot;wikipage default&quot; title=&quot;midgard-1.7.0&quot;&gt;1.7.0 Vali&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Vali_%28Norse_mythology%29&quot;&gt;Vali&lt;/a&gt; was the son of &lt;a href=&quot;http://en.wikipedia.org/wiki/Odin&quot; class=&quot;wikipedia&quot;&gt;Odin&lt;/a&gt; in the Viking mythology, and only one of the old gods to survive the last battle of &lt;a href=&quot;http://en.wikipedia.org/wiki/Ragnarok&quot; class=&quot;wikipedia&quot;&gt;Ragnarok&lt;/a&gt;. Similarly, 1.7 were the last Midgard series to include the classic Midgard API.&lt;/p&gt;

&lt;h3&gt;1.7.1 Plug and Pray&lt;/h3&gt;

&lt;p&gt;The 1.7.1 release fixed some severe &lt;a href=&quot;http://en.wikipedia.org/wiki/Memory_leak&quot; class=&quot;wikipedia&quot;&gt;Memory leak&lt;/a&gt;s in 1.7.0 when used together with Apache 2. The name is a play on the &lt;a href=&quot;http://en.wikipedia.org/wiki/Plug_and_play&quot; class=&quot;wikipedia&quot;&gt;Plug and play&lt;/a&gt; concept of having hardware work automatically with a computer.&lt;/p&gt;

&lt;h3&gt;1.7.2 Plugged&lt;/h3&gt;

&lt;p&gt;Main aim of this release was to find any piece of code which triggers memory leaks. So when were found , Midgard was plugged.&lt;/p&gt;

&lt;h3&gt;1.7.3 Quoted&lt;/h3&gt;

&lt;p&gt;Main changes in this release: quota enchancements and new MidCOM release.
Quota improvements and new quota written for MgdSchema objects forced &lt;a href=&quot;http://www.midgard-project.org/midcom-permalink-3ff6cd1917c7702b8587474e1afdf676&quot;&gt;Piotras&lt;/a&gt; to think about &quot;quoted&quot; release.&lt;/p&gt;

&lt;h3&gt;1.7.4 Kick&lt;/h3&gt;

&lt;p&gt;There were plenty of kicks before this release. Roundhouse kicks, typical kicks, non typical kicks and all those similiar kicks. Besides, this release kicked old releases and midgard-core sources. Few very old bugs were found and resolved.&lt;/p&gt;

&lt;h3&gt;1.7.5 Szybka&lt;/h3&gt;

&lt;p&gt;This release includes major stability and critical fix in Style Engine, which fixes performance problems for hosts which use template_midcom package. The key for the fix was sitegroup transparency feature.&lt;/p&gt;

&lt;p&gt;in Polish &quot;szybka&quot; means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;something which is fast ( female type , but release is female type in Polish )&lt;/li&gt;
&lt;li&gt;small part of transparent glass&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;1.7.6 &quot;Fotomodelo&quot;&lt;/h3&gt;

&lt;p&gt;Quotting &lt;a href=&quot;http://www.kaktus.cc/weblog/using-flickr-to-gather-pictures-from-the-developer-meeting.html&quot;&gt;Arttu Manninen&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every situation must have a proper slogan.  Midgard developer meeting was no exception. When we were going around in the night of Poznan, Poland, I asked Alessio to translate me the slogan for the night:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Non é facile essere un fotomodelo, ma qualcuno deve farlo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It means: It's not easy to be a top model, but someone has to do it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-1-8-0/&quot; class=&quot;wikipage default&quot; title=&quot;midgard-1.8.0&quot;&gt;Midgard 1.8 series&lt;/a&gt;&lt;/h2&gt;

&lt;h3&gt;1.8alpha1 Stylish.&lt;/h3&gt;

&lt;p&gt;December 2005. Month focused on endless threads about new style engine.&lt;/p&gt;

&lt;h3&gt;1.8alpha2 Independent&lt;/h3&gt;

&lt;p&gt;Just a few independency features :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MgdSchema objects functionality is able to replace old API&lt;/li&gt;
&lt;li&gt;midgard-apache modules are not compiled against MySQL &lt;/li&gt;
&lt;li&gt;midgard-php is not compiled against MySQL and Apache &lt;/li&gt;
&lt;li&gt;Database and usable midgard hosts can be created without repligard&lt;/li&gt;
&lt;li&gt;May,3rd is &quot;Independency Day&quot; in Poland ( release May,2nd )&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;1.8alpha3 Hot&amp;amp;Black&lt;/h3&gt;

&lt;p&gt;Alpha3 has been released shortly after &lt;a href=&quot;http://bergie.iki.fi/blog/midgard-developer-meeting-in-komorniki.html&quot;&gt;developers meeting&lt;/a&gt; in Poznan, Poland.
During the meeting, developers could taste something hot and black.&lt;/p&gt;

&lt;h3&gt;1.8beta1 Danke&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/community/whoswho/torben.html&quot;&gt;Torben Nehmer&lt;/a&gt; MidCOM's Lead Developer &lt;a href=&quot;http://www.midgard-project.org/updates/withdraw-from-midcom.html&quot;&gt;left project&lt;/a&gt; a week before this release. As Torben's native language is German , community thanks him a lot with loud &lt;strong&gt;Danke!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;1.8beta2 Sonya&lt;/h3&gt;

&lt;p&gt;Sonya is a song title. It sounds excellent when you have sauna with a good company.
It has been sung during mini developer meeting in September, 2006.&lt;/p&gt;

&lt;h3&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-1-8-0/&quot; class=&quot;wikipage default&quot; title=&quot;midgard-1.8.0&quot;&gt;1.8.0 Thor&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Thor&quot; class=&quot;wikipedia&quot;&gt;Thor&lt;/a&gt; , one of the major Nordic gods. Like Thor will die during Ragnarok, old &quot;god's&quot; Midgard code will be removed since 1.9 Ragnarok release.&lt;/p&gt;

&lt;h3&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-1-8-1/&quot; class=&quot;wikipage default&quot; title=&quot;midgard-1.8.1&quot;&gt;1.8.1 &quot;42&quot;&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;Release name suggested by &lt;a href=&quot;/community/whoswho/ab.html&quot;&gt;Alexander&lt;/a&gt;, as the answer for all questions.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.2 &quot;Hoitsu&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;Name inspired by English word 'nurse' translated to Finnish.
The commercial sentence for this could also be :
&quot;Silja Line - Where nurses come true&quot;&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.3 &quot;Eight&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;Eight years. Released just about for midgard's eight birthday.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.4 &quot;kaft&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;&quot;kaft&quot; unfortunatelly can not be translated and published.
It's addressed for people who doesn't respect other's properties.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.5 &quot;Refix&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;Yet another bugfixex release. Some changes made in 1-8 branch has been not included in 1.8.4 release due to cvs/svn server changes and that's why &quot;refix&quot; describes sense of the name.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.6 &quot;The First&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;Release with two major fixes. And &quot;The First&quot; in 2008 year.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.7 &quot;Flying pancake&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/community/whoswho/group/401a8fe6112711dcb24769d85bdd5cc75cc7/bergie.html&quot;&gt;Bergie&lt;/a&gt; watched his favourite movie on wednesday. The one with flying pig.
And, obviously there's pancake day on thursday. So I thought: &quot;Pancakes also can fly&quot;.
And I believe they do :)&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.8 &quot;Lingua Grata&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;As we implemented very desired Midgard multilingual improvement.&lt;/p&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;1.8.9 &quot;Samshoblo&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;In Georgian 'samshoblo' means homecountry or motherland. 
Russia vs Georgia war is still on, while we make this release...
&lt;a href=&quot;http://www.midgard-project.org/community/whoswho/group/70ef758c112c11dcbcb951fd8ef996819681/taya.html&quot;&gt;Taya&lt;/a&gt; is from Georgia, and we are glad she and her family are fine.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 8.09 series&lt;/span&gt;&lt;/h2&gt;

&lt;h3&gt;8.09.0 &quot;Ragnaroek&quot;&lt;/h3&gt;

&lt;p&gt;First stable release made with new releasing policy plans in mind. &quot;Ragnaroek&quot; is a final battle before new world come. This Long Term Supported generation includes legacy and almost the whole Midgard2 API to let developers build better software. Released on October, 7th, 2008. Six months before first stable Midgard2 release and only week later after schedule.&lt;/p&gt;

&lt;h3&gt;8.09.3 &quot;New Year's diet&quot;&lt;/h3&gt;

&lt;p&gt;8.09.3 provided many internal improvements and enchancements. Among many changes, we decided to drop internal MidCOM's class inheritance support in favor of using decorator pattern. As we planned to release before Christmas, we wanted to name it &quot;Christmas decorators&quot;, but unfortunately we made release at the beginning of 2009. Faster, lighter. Like with good diet. New Year's one :)&lt;/p&gt;

&lt;h3&gt;8.09.6 &quot;AmsterGard&quot;&lt;/h3&gt;

&lt;p&gt;This version has been released few days after Maemo Summit which has been held in Amsterdam and many Midgardians participated in this event.&lt;/p&gt;

&lt;h2&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Midgard 9.03 series&lt;/span&gt;&lt;/h2&gt;

&lt;h3&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;2.0alpha1 &quot;Wet Dog&quot;&lt;/span&gt;&lt;/h3&gt;

&lt;p&gt;First initial release's codename was 'at last', but &lt;a href=&quot;/community/whoswho/group/a5767170112c11dca0ce71a6e774ad7bad7b/w_i.html&quot;&gt;Jerry&lt;/a&gt; came to rescue during &lt;a href=&quot;http://bergie.iki.fi/blog/midgard_developers_in_linkoping.html&quot;&gt;developer's meeting in Linkoping&lt;/a&gt; (which happened two weeks before release). He (as everyone else) has been drinking delicious honey&amp;amp;oak beer and then he tried a regular light lagger beer. Try to do the same and say how latter beer tastes :)&lt;/p&gt;
</description>
            <author>Piotr Pokora</author>
            <pubDate>Tue, 20 Oct 2009 15:37:12 +0000</pubDate>
        </item>
        <item>
            <title>Fedora and EL</title>
            <link>http://www.midgard-project.org/documentation/installation-distros-fedora/</link>
            <description>&lt;p&gt;Fedora and EL (RHEL/CentOS) packages are available (among other distributions) on &lt;a href=&quot;http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/&quot;&gt;openSUSE Build Service&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At the openSUSE Build Service download server, go to the directory of your OS version and copy the URL of home:midgardproject:ragnaroek.repo. Then run the following commands:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cd /etc/yum.repos.d/
wget &amp;lt;paste the URL here&amp;gt;
yum install midgard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Note for EL (RHEL/CentOS) users: Please note that the default rpm installation of Midgard requires that you have enabled &lt;a href=&quot;http://fedoraproject.org/wiki/EPEL&quot;&gt;Fedora EPEL&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After you've installed the rpm packages, proceed by running the &lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt; install action which sets up Midgard CMS for you:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -a install
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;More information about Midgard installation in general is available in the &lt;a href=&quot;http://www.midgard-project.org/documentation/installation/&quot; class=&quot;wikipage &quot; title=&quot;Midgard Installation Manual&quot;&gt;Midgard Installation Manual&lt;/a&gt;.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 13:06:53 +0000</pubDate>
        </item>
        <item>
            <title>Creating a New Virtual Host</title>
            <link>http://www.midgard-project.org/documentation/installation-vhost/</link>
            <description>&lt;h2&gt;Midgard 8.09 Ragnaroek&lt;/h2&gt;

&lt;p&gt;Please note that the &lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt;'s install action already created one vhost for you. If you need to create additional vhosts, read on.&lt;/p&gt;

&lt;p&gt;To create new virtual host with datagard, define Midgard &lt;a href=&quot;http://www.midgard-project.org/documentation/unified-configuration/&quot; class=&quot;wikipage &quot; title=&quot;unified configuration&quot;&gt;unified configuration&lt;/a&gt; and correct &lt;code&gt;vhost&lt;/code&gt; action. If Your configuration is stored as &lt;code&gt;myconfiguration&lt;/code&gt;, run this command:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -c myconfiguration -a vhost
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you need to create vhost for default 'midgard' named configuration, define only action.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -a vhost
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;During setup, datagard will ask you about sitegroup for which you want to create virtual host. If you want to create new sitegroup as well, type new name for sitegroup. In such case, datagard will create new sitegroup and then virtual host. If you need to create host for internal sitegroup, define sitegroup as &lt;code&gt;SG0&lt;/code&gt; explicitly.&lt;/p&gt;

&lt;h2&gt;Midgard 1.8&lt;/h2&gt;

&lt;p&gt;Type Virtual Host name in dialog box. There is no need (and you should not name your host with &lt;code&gt;http://&lt;/code&gt; or &lt;code&gt;https://&lt;/code&gt; protocol type). You may also define port which will be used for this virtual host. If your site is going to be served at port &lt;code&gt;80&lt;/code&gt;, you don't have to define the port. In any other case you should define the host with the port, like &lt;code&gt;www.midgard-project.org:8001&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/eb0cf27745b4b1f3652be2c1951b8b85/5995c4844b743acdcabaa2dfa5958492/vhostname_s.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Congratulations! Your Midgard database and virtual host are now configured. *&lt;br /&gt;
Please, stop and start httpd now and log in to Midgard site.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/eb0cf27745b4b1f3652be2c1951b8b85/1119667bbc1d7437540c828520c33030/congrats_s.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In some cases the default virtual host configuration generated by &lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt; is not correct or sufficient for your situation, for example when you are creating a SSL host or when you don't want the document root to change (datagard sets DocumentRoot under &lt;code&gt;/var/lib/midgard/vhosts/&lt;/code&gt; by default). You can edit the configuration manually in &lt;code&gt;/etc/midgard/apache/vhosts/hostname_port&lt;/code&gt;. (Replace &quot;hostname&quot; with your virtual host name and &quot;port&quot; with the port of the virtual host. The port is 80 if you did not specify it.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some Midgard PHP applications depend on certain PHP settings. Here's a list of the needed PHP settings which should be set in the virtual host configuration (if not set in php.ini):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Global virtual host level PHP settings for all Midgard applications  
#  
# Required for uploading attachments  
php_admin_flag file_uploads On  
# Required by majority of the Midgard PHP applications  
php_flag magic_quotes_gpc Off  
# Required by MidCOM &amp;lt;= 1.4 (comment this out with newer releases)  
php_flag short_open_tag On  
# Recommended at least for MidCOM AIS (8M is the minimum requirement)  
# (change and enable if you want to set different value than in php.ini)  
#php_value memory_limit 8M  
# Maximum size of POST data (affects attachment uploads)  
# (change and enable if you want to set different value than in php.ini)  
#php_value post_max_size 8M  
# Maximum size for uploaded files (affects attachment uploads)  
# (change and enable if you want to set different value than in php.ini)  
#php_value upload_max_filesize 2M  

# Location specific PHP settings for certain Midgard applications  
#  
&amp;lt;Location /spider-admin&amp;gt;  
 php_flag register_globals On  
&amp;lt;/Location&amp;gt;  
&amp;lt;Location /aegir&amp;gt;  
 php_flag short_open_tag On  
 php_flag register_globals On  
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once your VirtualHost is up and running you should be ready to set up the website using the &lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-admin-sitewizard/&quot; class=&quot;wikipage &quot; title=&quot;midgard.admin.sitewizard&quot;&gt;Midgard Site Wizard&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you need to later edit the configuration see &lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-apache-directives/&quot; class=&quot;wikipage &quot; title=&quot;Midgard Apache directives&quot;&gt;Midgard Apache directives&lt;/a&gt;.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 10:32:54 +0000</pubDate>
        </item>
        <item>
            <title>Installing MidCOM with PEAR</title>
            <link>http://www.midgard-project.org/documentation/installing-midcom-with-pear/</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM&quot;&gt;MidCOM&lt;/a&gt; releases are shipped as PEAR packages for better version management and control. The packages utilize a MidCOM-specific channel in &lt;a href=&quot;http://ragnaroek.pear.midgard-project.org/&quot;&gt;ragnaroek.pear.midgard-project.org&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Midgard 8.09 &quot;Ragnaroek&quot;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt; in Midgard 8.09 performs all required steps to initialize all channels (Ragnaroek, Pearified, etc) and install all initial base packages. If you are only interested in installing PEAR packages, run datagard with desired action type:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -a pear
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Keep in mind, that pear action &lt;strong&gt;removes old midcom&lt;/strong&gt; if found, and install new packages from new channel.&lt;/p&gt;

&lt;p&gt;Useful informations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ragnaroek channel url: &lt;a href=&quot;http://ragnaroek.pear.midgard-project.org/&quot;&gt;ragnaroek.pear.midgard-project.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ragnaroek channel alias: ragnaroek&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If, for some reason, some package is not installed or it's not included in base packages, install it manually:&lt;/p&gt;

&lt;p&gt;For Midgard &gt;= 8.09.6:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;datagard -a pear -p package_name
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For Midgard &amp;lt; 8.09.6:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pear install ragnaroek/package_name
datagard -a dbupdate
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Midgard 1.8&lt;/h2&gt;

&lt;h3&gt;MidCOM installation&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Upgrade your &lt;a href=&quot;http://pear.php.net/package/PEAR&quot;&gt;PEAR installation&lt;/a&gt;. MidCOM installation requires PEAR 1.4 or newer.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear upgrade PEAR
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;note&quot;&gt;
If it complains that you at least some version of PEAR to upgrade to the latest version install the requested version first with `pear upgrade PEAR-&lt;version&gt;`
&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Add the needed channels for package installation&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear channel-discover pearified.com
# pear channel-discover pear.midcom-project.org
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install and configure the needed PEAR role files&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear install pearified/Role_Web
# pear config-set web_dir /usr/share/midgard/midcom/static


# pear install midcom/Role_Mgdschema
# pear install midcom/Role_Midgardelement
# pear install midcom/Role_Midgardsql
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install MidCOM and some required packages&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear install -f midcom/midcom
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;note&quot;&gt;
If you get a _Fatal error: Allowed memory size exceeded_ error with any of the packages you have to increase PHP's memory limit. The file to edit is either `/etc/php/php.ini` or `/etc/php/cli/php.ini`. Memory limit is also settable with -d argument for php command ( php -d memory_limit=40M ).
&lt;/div&gt;

&lt;p&gt;Once you have installed new packages you need to stop and start Apache to get the &lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-file/&quot; class=&quot;wikipage &quot; title=&quot;MgdSchema file&quot;&gt;MgdSchema files&lt;/a&gt; supplied with them loaded.&lt;/p&gt;

&lt;h2&gt;Layout template installation&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://ragnaroek.pear.midgard-project.org/index.php?category=8&amp;amp;page=1&quot;&gt;Packaged layout templates&lt;/a&gt; utilize the &lt;code&gt;Role_Midgardelement&lt;/code&gt; package for installation. To make installation work, you have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an &lt;a href=&quot;http://www.midgard-project.org/documentation/unified-configuration/&quot; class=&quot;wikipage &quot; title=&quot;Unified configuration&quot;&gt;unified Midgard configuration&lt;/a&gt; file to &lt;code&gt;/etc/midgard/conf.d/midgard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Point the Midgardelement role to the configuration file&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear config-set midgard_config_file midgard
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install the style template you want, for example&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear install ragnaroek/template_Kubrick
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After these steps you should have a fully functional MidCOM installation in the PEAR path.&lt;/p&gt;

&lt;h2&gt;Installing additional components&lt;/h2&gt;

&lt;p&gt;Other component packages can be installed using the PEAR command, for example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# pear install ragnaroek/net_nehmer_blog
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The list of available components can be found on the &lt;a href=&quot;http://ragnaroek.pear.midgard-project.org/&quot;&gt;PEAR channel website&lt;/a&gt;&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 08:54:35 +0000</pubDate>
        </item>
        <item>
            <title>Installing Midgard from Distribution Packages</title>
            <link>http://www.midgard-project.org/documentation/installation-distros/</link>
            <description>&lt;p&gt;Supported distributions and operating systems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-fedora/&quot; class=&quot;wikipage &quot; title=&quot;Fedora and EL&quot;&gt;CentOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-debian/&quot; class=&quot;wikipage &quot; title=&quot;Debian&quot;&gt;Debian GNU/Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-fedora/&quot; class=&quot;wikipage &quot; title=&quot;Fedora and EL&quot;&gt;Fedora&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-suse/&quot; class=&quot;wikipage &quot; title=&quot;openSUSE and SLE&quot;&gt;openSUSE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-fedora/&quot; class=&quot;wikipage &quot; title=&quot;Fedora and EL&quot;&gt;Red Hat Enterprise Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-suse/&quot; class=&quot;wikipage &quot; title=&quot;openSUSE and SLE&quot;&gt;SLES/SLED&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/ubuntu/&quot; class=&quot;wikipage &quot; title=&quot;Ubuntu&quot;&gt;Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-mac-os-x/&quot; class=&quot;wikipage &quot; title=&quot;Mac OS X&quot;&gt;Mac OS X&lt;/a&gt; (macports)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check new packages at &lt;a href=&quot;http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/&quot;&gt;openSUSE Build Service&lt;/a&gt;. If your distribution is missing, you will have to follow the &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-source/&quot; class=&quot;wikipage &quot; title=&quot;Installing Midgard from Source&quot;&gt;source installation instructions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our goal is to provide packages for all major distributions. Package maintainers for new distributions are always more than welcome. You don't have to be a specialist. We build packages using &lt;a href=&quot;https://build.opensuse.org/&quot;&gt;openSUSE Build Service&lt;/a&gt;, so no dedicated machines are required. What is needed is your will and basic packaging skills (not always even that because sometimes we just need to have a test user for a particular platform). 
&lt;a href=&quot;http://www.midgard-project.org/discussion/&quot;&gt;Contact the developers&lt;/a&gt; if you want to join our distribution/binary package team.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 08:21:57 +0000</pubDate>
        </item>
        <item>
            <title>openSUSE and SLE</title>
            <link>http://www.midgard-project.org/documentation/installation-distros-suse/</link>
            <description>&lt;p&gt;OpenSUSE and SLES/SLED packages are available (among other distributions) on &lt;a href=&quot;http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/&quot;&gt;openSUSE Build Service&lt;/a&gt;.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 08:09:12 +0000</pubDate>
        </item>
        <item>
            <title>Midgard Documentation</title>
            <link>http://www.midgard-project.org/documentation/</link>
            <description>&lt;p&gt;&lt;strong&gt;Midgard Documentation&lt;/strong&gt; is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Wiki&quot; class=&quot;wikipedia&quot;&gt;Wiki&lt;/a&gt; collecting information about features, usage and development of &lt;a href=&quot;/&quot;&gt;Midgard&lt;/a&gt;, the Open Source Content Management System. See &lt;a href=&quot;/documentation/latest/&quot;&gt;latest Wiki changes&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation/&quot; class=&quot;wikipage &quot; title=&quot;Midgard Installation Manual&quot;&gt;Installing Midgard&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros/&quot; class=&quot;wikipage &quot; title=&quot;Installing Midgard from Distribution Packages&quot;&gt;Distribution packages&lt;/a&gt;&lt;/strong&gt; - Midgard installers for distributions like &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-debian/&quot; class=&quot;wikipage &quot; title=&quot;Debian&quot;&gt;Debian&lt;/a&gt;, &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-fedora/&quot; class=&quot;wikipage &quot; title=&quot;Fedora and EL&quot;&gt;Fedora/EL&lt;/a&gt;, &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-suse/&quot; class=&quot;wikipage &quot; title=&quot;openSUSE and SLE&quot;&gt;openSUSE/SLE&lt;/a&gt;, &lt;a href=&quot;http://www.midgard-project.org/documentation/ubuntu/&quot; class=&quot;wikipage &quot; title=&quot;Ubuntu&quot;&gt;Ubuntu&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-distros-mac-os-x/&quot; class=&quot;wikipage &quot; title=&quot;Mac OS X&quot;&gt;Mac OS X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-source/&quot; class=&quot;wikipage &quot; title=&quot;Installing Midgard from Source&quot;&gt;Source installation&lt;/a&gt;&lt;/strong&gt; - Compile Midgard on any Unix platform&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-database/&quot; class=&quot;wikipage &quot; title=&quot;Setting Up a Midgard Database&quot;&gt;Database setup&lt;/a&gt;&lt;/strong&gt; - Creating a new Midgard database with &lt;a href=&quot;http://www.midgard-project.org/documentation/datagard/&quot; class=&quot;wikipage &quot; title=&quot;Datagard&quot;&gt;Datagard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-vhost/&quot; class=&quot;wikipage &quot; title=&quot;Creating a New Virtual Host&quot;&gt;Virtual Host creation&lt;/a&gt;&lt;/strong&gt; - Setting Midgard to answer in different domain names&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installing-midcom-with-pear/&quot; class=&quot;wikipage &quot; title=&quot;Installing MidCOM with PEAR&quot;&gt;MidCOM installation&lt;/a&gt;&lt;/strong&gt; - Installing the &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM&quot;&gt;MidCOM&lt;/a&gt; component framework with PEAR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-troubleshooting/&quot; class=&quot;wikipage &quot; title=&quot;Troubleshooting&quot;&gt;Troubleshooting&lt;/a&gt;&lt;/strong&gt; - Common problems and solutions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-upgrade/&quot; class=&quot;wikipage &quot; title=&quot;Upgrade Notes&quot;&gt;Upgrading Midgard&lt;/a&gt;&lt;/strong&gt; - How to upgrade an existing Midgard installation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-authentication/&quot; class=&quot;wikipage &quot; title=&quot;Third-party Authentication&quot;&gt;Authentication settings&lt;/a&gt;&lt;/strong&gt; - Setting Midgard to authenticate using third-party sources like LDAP or Active Directory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/performance-tuning/&quot; class=&quot;wikipage &quot; title=&quot;Performance tuning&quot;&gt;Performance tuning&lt;/a&gt;&lt;/strong&gt; - High performance setups with Midgard&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/getting-started/&quot; class=&quot;wikipage &quot; title=&quot;Getting Started with Midgard&quot;&gt;Getting started&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/content-production-with-midcom/&quot; class=&quot;wikipage &quot; title=&quot;Content production with MidCOM&quot;&gt;MidCOM content editing&lt;/a&gt;&lt;/strong&gt; - Managing content in Midgard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/getting-started-create-groups/&quot; class=&quot;wikipage &quot; title=&quot;Create Groups and People&quot;&gt;Groups and People&lt;/a&gt;&lt;/strong&gt; - Managing users in Midgard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-administration-interfaces/&quot; class=&quot;wikipage &quot; title=&quot;Midgard Administration Interfaces&quot;&gt;Administration interfaces&lt;/a&gt;&lt;/strong&gt; - Applications for managing Midgard&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/howto-midcom/&quot; class=&quot;wikipage &quot; title=&quot;Site building with MidCOM&quot;&gt;Site building&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/getting-started-create-style/&quot; class=&quot;wikipage &quot; title=&quot;Create a Style&quot;&gt;Style creation&lt;/a&gt;&lt;/strong&gt; - Creating custom layout templates&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-method-dynamic_load/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM method dynamic_load&quot;&gt;Dynamic loading&lt;/a&gt;&lt;/strong&gt; - Including content from different site areas into a page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/howto-midcom-menucreation/&quot; class=&quot;wikipage redirect&quot; title=&quot;Designing your own MidCOM menus&quot;&gt;Custom navigation&lt;/a&gt;&lt;/strong&gt; - Using the &lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-nap/&quot; class=&quot;wikipage &quot; title=&quot;Navigation Access Point&quot;&gt;NAP system&lt;/a&gt; to build custom site navigation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/building-multilingual-sites-with-midcom/&quot; class=&quot;wikipage default&quot; title=&quot;Building Multilingual sites with MidCOM&quot;&gt;Multilingual sites&lt;/a&gt;&lt;/strong&gt; - Making your site support multiple languages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-helper-metadata-approvals/&quot; class=&quot;wikipage &quot; title=&quot;midcom.helper.metadata approvals&quot;&gt;Approvals and scheduling&lt;/a&gt;&lt;/strong&gt; - Adding workflow to your site&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-component-configuration/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM component configuration&quot;&gt;Component configuration&lt;/a&gt;&lt;/strong&gt; - Tweaking components of your website&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/using-midcom-helper-datamanager-schemas/&quot; class=&quot;wikipage &quot; title=&quot;Using midcom.helper.datamanager schemas&quot;&gt;Content schemas&lt;/a&gt;&lt;/strong&gt; - Customizing the fields of your content editors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/styling-midcom-error-pages/&quot; class=&quot;wikipage &quot; title=&quot;Styling MidCOM Error Pages&quot;&gt;Error pages&lt;/a&gt;&lt;/strong&gt; - Customizing error pages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Application development&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-component-development/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM component development&quot;&gt;Component development&lt;/a&gt;&lt;/strong&gt; - Developing your own PHP components&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/using-eclipse-for-midcom-development/&quot; class=&quot;wikipage &quot; title=&quot;Using Eclipse for MidCOM development&quot;&gt;Eclipse usage&lt;/a&gt;&lt;/strong&gt; - Using the Eclipse IDE for component development&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-components-styleguide/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM Coding Styleguide&quot;&gt;Coding Standards&lt;/a&gt;&lt;/strong&gt; - Standards for formatting Midgard PHP code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-in-php/&quot; class=&quot;wikipage &quot; title=&quot;MgdSchema in PHP&quot;&gt;MgdSchema objects&lt;/a&gt;&lt;/strong&gt; - Data handling API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgardquerybuilder/&quot; class=&quot;wikipage &quot; title=&quot;MidgardQueryBuilder&quot;&gt;Query Builder&lt;/a&gt;&lt;/strong&gt; - Database object query API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_core/&quot; class=&quot;wikipage default&quot; title=&quot;PHP Midgard Core&quot;&gt;Midgard core in PHP&lt;/a&gt;&lt;/strong&gt; - Midgard core PHP API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/php-midgard_collector/&quot; class=&quot;wikipage &quot; title=&quot;PHP midgard_collector&quot;&gt;Collector&lt;/a&gt;&lt;/strong&gt; - Optimized database query API that doesn't return objects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-helper-datamanager-api/&quot; class=&quot;wikipage &quot; title=&quot;midcom.helper.datamanager API&quot;&gt;Datamanager API&lt;/a&gt;&lt;/strong&gt; - Making your content fields customizable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/de-bitfolge-feedcreator/&quot; class=&quot;wikipage &quot; title=&quot;de.bitfolge.feedcreator&quot;&gt;Feed creator&lt;/a&gt;&lt;/strong&gt; - Adding RSS and Atom feeds into your components&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/reference/&quot; class=&quot;wikipage &quot; title=&quot;Midgard API Reference&quot;&gt;Complete API reference&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-core/&quot; class=&quot;wikipage &quot; title=&quot;Midgard core&quot;&gt;Midgard core C documentation&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/python_midgard/&quot; class=&quot;wikipage default&quot; title=&quot;Python Midgard &quot;&gt;Midgard in Python&lt;/a&gt;&lt;/strong&gt; - Midgard Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/objectivec_midgard/&quot; class=&quot;wikipage default&quot; title=&quot;ObjectiveC Midgard&quot;&gt;Midgard in ObjectiveC&lt;/a&gt;&lt;/strong&gt; - Midgard in ObjectiveC and on the Mac&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard_app_builder/&quot; class=&quot;wikipage default&quot; title=&quot;Midgard App Builder&quot;&gt;Midgard App Builder&lt;/a&gt;&lt;/strong&gt; - Midgard package for building Fluid applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts/&quot; class=&quot;wikipage &quot; title=&quot;Concepts and features&quot;&gt;Midgard concepts&lt;/a&gt;&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM&quot;&gt;MidCOM&lt;/a&gt;&lt;/strong&gt; - Midgard's Component Framework for PHP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-host_and_page/&quot; class=&quot;wikipage &quot; title=&quot;Host, URL and Dynamic Page Parameters&quot;&gt;URL handling&lt;/a&gt;&lt;/strong&gt; - How Midgard maps URLs to the database&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-users/&quot; class=&quot;wikipage &quot; title=&quot;Permissions in Midgard&quot;&gt;Permissions&lt;/a&gt;&lt;/strong&gt; - How Midgard handles permissions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-page_and_style/&quot; class=&quot;wikipage &quot; title=&quot;Midgard Templating Engine&quot;&gt;Templating Engine&lt;/a&gt;&lt;/strong&gt; - How Midgard's page composition works&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-sitegroups/&quot; class=&quot;wikipage &quot; title=&quot;Sitegroup Virtual Databases&quot;&gt;Sitegroups&lt;/a&gt;&lt;/strong&gt; - Virtual Hosting Databases in Midgard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-quota/&quot; class=&quot;wikipage &quot; title=&quot;Quota in Midgard&quot;&gt;Quota&lt;/a&gt;&lt;/strong&gt; - Setting disk quotas in hosting environments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-i18n/&quot; class=&quot;wikipage &quot; title=&quot;Internationalization in Midgard&quot;&gt;Internationalization&lt;/a&gt;&lt;/strong&gt; - Support for multiple languages and character sets&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-attachments/&quot; class=&quot;wikipage &quot; title=&quot;File Attachments in Midgard&quot;&gt;File attachments&lt;/a&gt;&lt;/strong&gt; - Support for binary files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema/&quot; class=&quot;wikipage &quot; title=&quot;MgdSchema&quot;&gt;MgdSchema&lt;/a&gt;&lt;/strong&gt; - Database object abstraction&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-metadata-object/&quot; class=&quot;wikipage &quot; title=&quot;MgdSchema metadata object&quot;&gt;Metadata object&lt;/a&gt;&lt;/strong&gt; - Centralized metadata system&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-formatting/&quot; class=&quot;wikipage &quot; title=&quot;Formatting engine&quot;&gt;Formatting engine&lt;/a&gt;&lt;/strong&gt; - Registering and using content formatting functions in HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/exorcist/&quot; class=&quot;wikipage &quot; title=&quot;Exorcist&quot;&gt;Exorcist&lt;/a&gt;&lt;/strong&gt; - Replication and cross-CMS content migration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/unittesting/&quot; class=&quot;wikipage &quot; title=&quot;UnitTesting&quot;&gt;UnitTesting&lt;/a&gt;&lt;/strong&gt; - Writing unittests for the php API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-admin-wizards/&quot; class=&quot;wikipage default&quot; title=&quot;midgard.admin.wizards&quot;&gt;Midgard Wizards&lt;/a&gt;&lt;/strong&gt; - tool for creating new &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-sitegroup/&quot; class=&quot;wikipage &quot; title=&quot;MidgardSitegroup&quot;&gt;organizations&lt;/a&gt; and &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;websites&lt;/span&gt; into Midgard&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Midgard tools and configuration&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/command-line-tools/&quot; class=&quot;wikipage &quot; title=&quot;Command line tools&quot;&gt;Command line tools&lt;/a&gt;&lt;/strong&gt; - Running midgard from command line, debug, testing and other tools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/unified-configuration/&quot; class=&quot;wikipage &quot; title=&quot;Unified configuration&quot;&gt;Unified configuration&lt;/a&gt;&lt;/strong&gt; - Configuration with ini like files and reusing them between applications&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Other information&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/glossary/&quot; class=&quot;wikipage &quot; title=&quot;Glossary&quot;&gt;Glossary&lt;/a&gt;&lt;/strong&gt; - Getting hang of Midgard terminology&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/translating-midcom-and-components/&quot; class=&quot;wikipage &quot; title=&quot;Translating MidCOM and components&quot;&gt;Localization&lt;/a&gt;&lt;/strong&gt; - How to translate Midgard to your own language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/external-tutorials/&quot; class=&quot;wikipage &quot; title=&quot;External tutorials&quot;&gt;External tutorials&lt;/a&gt;&lt;/strong&gt; - Midgard information elsewhere on the web&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/how-to-contribute-documentation/&quot; class=&quot;wikipage &quot; title=&quot;How to contribute documentation&quot;&gt;Documentation contribution&lt;/a&gt;&lt;/strong&gt; - How to contribute content to this wiki&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/authors/&quot; class=&quot;wikipage &quot; title=&quot;Authors&quot;&gt;Authors&lt;/a&gt;&lt;/strong&gt; - Wiki contributors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/folklore/&quot; class=&quot;wikipage default&quot; title=&quot;Folklore&quot;&gt;Folklore&lt;/a&gt;&lt;/strong&gt; - Cultural points about the Midgard project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.midgard-project.org/documentation/net-nemein-wiki/&quot; class=&quot;wikipage &quot; title=&quot;net.nemein.wiki&quot;&gt;Midgard Wiki&lt;/a&gt; software makes it easy for community members to add more documentation to this site. The whole documentation is &lt;a href=&quot;http://en.wikipedia.org/wiki/Open_content&quot; class=&quot;wikipedia&quot;&gt;open content&lt;/a&gt; available under the &lt;a href=&quot;/midcom-permalink-efc0f1058f661b2f8b765bbb46f9508b&quot;&gt;Creative Commons Attribution-ShareAlike&lt;/a&gt; license.&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 08:06:28 +0000</pubDate>
        </item>
        <item>
            <title>Mac OS X</title>
            <link>http://www.midgard-project.org/documentation/installation-distros-mac-os-x/</link>
            <description>&lt;h2&gt;Midgard for MacPorts&lt;/h2&gt;

&lt;p&gt;Midgard is being maintained as part of the &lt;a href=&quot;http://www.macports.org/&quot;&gt;MacPorts&lt;/a&gt; collection. MacPorts is a &lt;a href=&quot;http://www.apple.com/macosx/&quot;&gt;Mac&lt;/a&gt; version of the BSD Ports collection that enables easy installation of preconfigured source packages. More information about MacPorts is available in &lt;a href=&quot;http://trac.macports.org/projects/macports/wiki&quot;&gt;their wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To install Midgard with MacPorts you need the &lt;a href=&quot;http://developer.apple.com/tools/xcode/index.html&quot;&gt;Apple Xcode Tools&lt;/a&gt;. Once you have both MacPorts and Xcode installed, open Terminal and run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ sudo port sync
$ sudo port install apache2
$ sudo port install mysql5 +server
$ sudo port install php5 +apache2 +pear +mysql5
$ sudo port install midgard-data
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then you need to initialize and start the MySQL and Apache processes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ sudo launchctl load -w /Library/LaunchDaemons/org.darwinports.mysql5.plist
$ sudo launchctl load -w /Library/LaunchDaemons/org.darwinports.apache2.plist
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After that you should be able to set up the &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-database/&quot; class=&quot;wikipage &quot; title=&quot;Setting Up a Midgard Database&quot;&gt;database&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/installation-vhost/&quot; class=&quot;wikipage &quot; title=&quot;Creating a New Virtual Host&quot;&gt;virtual host&lt;/a&gt; normally.&lt;/p&gt;

&lt;p&gt;As these instructions are not very complete, feel free to ask &lt;a href=&quot;/community/whoswho/jwa.html&quot;&gt;Jyrki Wahlstedt&lt;/a&gt; (jwa (at) macports (dot) org).&lt;/p&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Fri, 25 Sep 2009 07:49:16 +0000</pubDate>
        </item>
        <item>
            <title>Datagard</title>
            <link>http://www.midgard-project.org/documentation/datagard/</link>
            <description>&lt;p&gt;&lt;strong&gt;Datagard&lt;/strong&gt; is the command-line tool for managing Midgard installations.&lt;/p&gt;

&lt;p&gt;Basic and easiest setup can be done by just running &lt;code&gt;datagard&lt;/code&gt; command. In both Midgard series: 1.8 and 8.09, datagard will ask you questions, and guide you step by step through setup process.&lt;/p&gt;

&lt;h1&gt;Documentation&lt;/h1&gt;

&lt;p&gt;Main &lt;code&gt;datagard&lt;/code&gt; routines include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-database/&quot; class=&quot;wikipage &quot; title=&quot;Setting Up a Midgard Database&quot;&gt;Setting Up a Midgard Database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installation-vhost/&quot; class=&quot;wikipage &quot; title=&quot;Creating a New Virtual Host&quot;&gt;Creating a New Virtual Host&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installing-midcom-with-pear/&quot; class=&quot;wikipage &quot; title=&quot;Installing MidCOM with PEAR&quot;&gt;Installing MidCOM with PEAR&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Advanced usage&lt;/h2&gt;

&lt;h3&gt;Midgard 8.09&lt;/h3&gt;

&lt;p&gt;Command line switches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-t&lt;/code&gt; type of the setup&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick, datagard tries to determine sensible defaults for all configurations (this is usually a good choise for upgrades as then datagard reads the settings from the configuration file)&lt;/li&gt;
&lt;li&gt;wizard (the default if you don't specify type), datagard asks about every single configuration option&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-c&lt;/code&gt; specifies user defined configuration file name (the default is midgard if you leave out -c)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-a&lt;/code&gt; action type selection. Possible actions are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;install (the default if you don't specify action - installs the database and the Midgard PEAR packages, and then creates a virtual host)&lt;/li&gt;
&lt;li&gt;upgrade (upgrades the database and the Midgard PEAR packages)&lt;/li&gt;
&lt;li&gt;vhost (creates a new virtual host - this operation requires that the database contains a style template for the vhost - style templates are imported to the db during the install action)&lt;/li&gt;
&lt;li&gt;midcom3vhost (creates a new virtual host for MidCOM3 - not recommended for end users)&lt;/li&gt;
&lt;li&gt;dbinstall (installs a new database and its configuration file - remember to specify the database name using the -c option if you already have a database called &quot;midgard&quot; - keep in mind that this action doesn't import style templates to the db like the install action does)&lt;/li&gt;
&lt;li&gt;dbupdate  (updates the database structure)&lt;/li&gt;
&lt;li&gt;pear (installs/upgrades Midgard PEAR package(s) - needs Midgard version to be at least the same as the version of the PEAR packages, because the database structure isn't updated beforehand)&lt;/li&gt;
&lt;li&gt;sitegroup (creates a new domain/sitegroup)&lt;/li&gt;
&lt;li&gt;config-set (sets configuration setting value - datagard's internal action - not recommended for end users because you can edit the configuration manually which is much easier :))&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-p&lt;/code&gt; package (application/component) name(s) (when installing a new site with application like OpenPSA: datagard -a install -p openpsa) (when installing/updating (a) new component(s) like  midcom_helper_search to an existing Midgard CMS installation: datagard -a pear -p midcom_helper_search)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-s&lt;/code&gt; setting and its value for the config-set action (datagard's internal option - not recommended for end users)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;-v&lt;/code&gt; sets verbose level, numeric option (the default value is 0)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
            <author>Jarkko Ala-Louvesniemi</author>
            <pubDate>Mon, 21 Sep 2009 16:31:51 +0000</pubDate>
        </item>
        <item>
            <title>Permissions in Midgard</title>
            <link>http://www.midgard-project.org/documentation/concepts-users/</link>
            <description>&lt;p&gt;Several websites can be managed independently in Midgard thanks to &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-sitegroup/&quot; class=&quot;wikipage &quot; title=&quot;MidgardSitegroup&quot;&gt;Sitegroups&lt;/a&gt;. As for access to various parts of a site, Midgard's permission system is based on Group ownership, and controls only write access to the database records.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/reference-groups/&quot; class=&quot;wikipage &quot; title=&quot;MidgardGroup&quot;&gt;Groups&lt;/a&gt; are organized into a tree structure. &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-person/&quot; class=&quot;wikipage &quot; title=&quot;MidgardPerson&quot;&gt;Persons&lt;/a&gt; may belong to any number of Groups thanks to the &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;member records&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;realm&lt;/code&gt; field in the Sitegroup table is a string which contains the Sitegroup name, and is used instead of the name field in the authentication window opened by your browser. The name field is an identifier which cannot contain whitespace.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/a193abc6c8ffcd8930d470889cd06714/76da15ac88264f27f2ff435e472d97c0/users.jpg&quot; alt=&quot;Entity-Relationship Diagram for Person, Member, Group, Sitegroup and Preference&quot; /&gt;&lt;/p&gt;

&lt;h2&gt;Read Access&lt;/h2&gt;

&lt;p&gt;When authentication is required, read access to any record within a Sitegroup is granted to all the users in that Sitegroup. More comprehensive read-level access control is available through the &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM&quot;&gt;MidCOM framework&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In MidCOM 2.4 and earlier releases, read-level access control was implemented using the &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;ViewerGroups&lt;/span&gt; feature. In MidCOM 2.5 it uses &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Access Control Lists&lt;/span&gt;.&lt;/p&gt;

&lt;h2&gt;Write Access&lt;/h2&gt;

&lt;p&gt;Write access - which includes &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-oop-methods-create/&quot; class=&quot;wikipage &quot; title=&quot;$object-&gt;create&quot;&gt;creation&lt;/a&gt;, &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-oop-methods-update/&quot; class=&quot;wikipage &quot; title=&quot;$object-&gt;update&quot;&gt;modification&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-oop-methods-delete/&quot; class=&quot;wikipage &quot; title=&quot;$object-&gt;delete&quot;&gt;deletion&lt;/a&gt; - is granted to any user who is either a member of the owner Group the record belongs to, or a &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;member&lt;/span&gt; of a &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-groups/&quot; class=&quot;wikipage &quot; title=&quot;MidgardGroup&quot;&gt;Group&lt;/a&gt; which owns a parent of that record.&lt;/p&gt;

&lt;p&gt;In other words, users get write privileges for any sub-tree whose parent node owner is a Group they belong to.&lt;/p&gt;

&lt;h2&gt;Users, and Articles authors and lockers&lt;/h2&gt;

&lt;p&gt;Users have full read access for their &lt;a href=&quot;http://www.midgard-project.org/documentation/reference-sitegroup/&quot; class=&quot;wikipage &quot; title=&quot;MidgardSitegroup&quot;&gt;Sitegroup&lt;/a&gt; and Sitegroup 0. Their write privileges depend on the Group(s) they belong to.&lt;/p&gt;

&lt;p&gt;In addition to this, being the author of an article grants write access to it.&lt;/p&gt;

&lt;p&gt;An article may also be locked. Anyone with write permission to an Article record may lock it, but once it is locked, only the locker and the Sitegroup administrator can unlock it. This is illustrated in the following diagram:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/attachment/a193abc6c8ffcd8930d470889cd06714/0d51f3ae816750bba429c91fa50c97d5/groups.jpg&quot; alt=&quot;An example of Group, author and locker ownership&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Person has write access to&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;P1 T1, A1, T3, A3&lt;/li&gt;
&lt;li&gt;P2 T2, A2, T4, A5, T5&lt;/li&gt;
&lt;li&gt;P3 T3, A3, A5&lt;/li&gt;
&lt;li&gt;P4 T3, A3, A4&lt;/li&gt;
&lt;li&gt;P5 T4, A5&lt;/li&gt;
&lt;li&gt;P6 T4, A5, T1, A1, T3, A3&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Preferences&lt;/h2&gt;

&lt;p&gt;Preferences enable you to personalize the content of a site. They are name and value pairs attached to a person, and they may be grouped by domain. This feature is deprecated, as you can achieve the same thing thanks to the Parameter table and functions.&lt;/p&gt;
</description>
            <author>Scerbatiuc Ion</author>
            <pubDate>Thu, 20 Aug 2009 13:05:33 +0000</pubDate>
        </item>
        <item>
            <title>MidCOM</title>
            <link>http://www.midgard-project.org/documentation/midcom/</link>
            <description>&lt;p&gt;&lt;strong&gt;MidCOM&lt;/strong&gt; is component framework for &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;PHP&lt;/span&gt; running on top of the Midgard framework. MidCOM provides a full content management system based on a series of components. MidCOM users can build their websites by &quot;clicking together&quot; a directory hierarchy, each folder being managed by the appropriate component.&lt;/p&gt;

&lt;p&gt;MidCOM components are distributed as &lt;a href=&quot;http://www.midgard-project.org/documentation/installing-midcom-with-pear/&quot; class=&quot;wikipage &quot; title=&quot;Installing MidCOM with PEAR&quot;&gt;PEAR packages&lt;/a&gt; that allows easy installation and maintenance of the environment.&lt;/p&gt;

&lt;h2&gt;Tutorials&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/howto-midcom/&quot; class=&quot;wikipage &quot; title=&quot;Site building with MidCOM&quot;&gt;Site building with MidCOM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-component-development/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM component development&quot;&gt;MidCOM component development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Documentation&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-how-it-works/&quot; class=&quot;wikipage &quot; title=&quot;How MidCOM works&quot;&gt;How MidCOM works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/content-production-with-midcom/&quot; class=&quot;wikipage &quot; title=&quot;Content production with MidCOM&quot;&gt;Content production with MidCOM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/installing-midcom-with-pear/&quot; class=&quot;wikipage &quot; title=&quot;Installing MidCOM with PEAR&quot;&gt;Installing MidCOM with PEAR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/api-docs/midcom/stable/&quot;&gt;Stable API documentation&lt;/a&gt; (PhpDoc)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/api-docs/midcom/dev/&quot;&gt;Developer Snapshot API documentation&lt;/a&gt; (PhpDoc)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-development-technical-notes/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM Development Technical Notes&quot;&gt;MidCOM Development Technical Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/running-latest-midcom-from-subversion/&quot; class=&quot;wikipage &quot; title=&quot;Running latest MidCOM from subversion&quot;&gt;Running latest MidCOM from subversion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Services&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Component base classes&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-dba/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM DBA&quot;&gt;Database Abstraction Layer (DBA)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Authentication and Access Control&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-services-indexer/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.indexer&quot;&gt;Indexing and full-text search&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-services-i18n/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.i18n&quot;&gt;Internationalization and translation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-cache/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.cache&quot;&gt;Output caching system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-services-toolbars/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.toolbars&quot;&gt;On-Site toolbars service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-nap/&quot; class=&quot;wikipage &quot; title=&quot;Navigation Access Point&quot;&gt;Site navigation and structure management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-helper-metadata/&quot; class=&quot;wikipage &quot; title=&quot;midcom.helper.metadata&quot;&gt;Site-wide content metadata&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-helper-metadata-approvals/&quot; class=&quot;wikipage &quot; title=&quot;midcom.helper.metadata approvals&quot;&gt;approval&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-services-rcs/&quot; class=&quot;wikipage &quot; title=&quot;midcom.services.rcs&quot;&gt;Revision Control System&lt;/a&gt; (RCS)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-template/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM template&quot;&gt;Site template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;Dynamic loading of content&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-admin-sitewizard/&quot; class=&quot;wikipage &quot; title=&quot;midgard.admin.sitewizard&quot;&gt;Site creation wizard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-ais/&quot; class=&quot;wikipage &quot; title=&quot;midcom.admin.content&quot;&gt;Automatic administration interface&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom_debug/&quot; class=&quot;wikipage &quot; title=&quot;midcom_debug&quot;&gt;Debug logging system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-style-engine/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM style engine&quot;&gt;Style templating system&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many of the services in MidCOM are controlled by the global &lt;a href=&quot;http://www.midgard-project.org/api-docs/midcom/stable/midcom/_midcom_config_midcom_config_php.html&quot;&gt;MidCOM configuration settings&lt;/a&gt; and are available through the &lt;a href=&quot;http://www.midgard-project.org/documentation/midgard-php-superglobals/&quot; class=&quot;wikipage &quot; title=&quot;Midgard PHP superglobals&quot;&gt;$_MIDCOM superglobal&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-components/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM components&quot;&gt;Components&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;MidCOM ships with a collection of premade components. In addition, it is easy to build new specific components using the &lt;span class=&quot;wiki_missing_nouser&quot; title=&quot;Login to create this missing page&quot;&gt;component base classes&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-components/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM components&quot;&gt;See the list of components&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-purecode-components/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM purecode components&quot;&gt;Libraries&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Besides regular &lt;a href=&quot;http://pear.php.net/packages.php&quot;&gt;PEAR libraries&lt;/a&gt; used by several MidCOM components, MidCOM also provides a system for creating &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-purecode-components/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM purecode components&quot;&gt;pure code components&lt;/a&gt; to provide libraries and widgets integrated into the MidCOM services.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-purecode-components/&quot; class=&quot;wikipage &quot; title=&quot;MidCOM purecode components&quot;&gt;See the list of libraries&lt;/a&gt;&lt;/p&gt;
</description>
            <author>Michel Gaudry</author>
            <pubDate>Mon, 22 Jun 2009 21:46:32 +0000</pubDate>
        </item>
    </channel>
</rss>
