<?xml version="1.0"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Transition Technology: Ticket #470: Penguin install and configuration</title>
    <link>http://localhost:8080/trac/ticket/470</link>
    <description>&lt;p&gt;
penguin.webarch.net is a new 2GB RAM virtual server which will replace &lt;a class="wiki" href="http://localhost:8080/trac/wiki/NewLiveServer"&gt;NewLiveServer&lt;/a&gt; and &lt;a class="wiki" href="http://localhost:8080/trac/wiki/DevelopmentServer"&gt;DevelopmentServer&lt;/a&gt; for running all non-Drupal sites and is due to go live in early 2013. Drupal sites from the old servers will be migrated to &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PuffinServer"&gt;PuffinServer&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
This ticket has been created for tracking time and tasks done during the install.
&lt;/p&gt;
&lt;p&gt;
See &lt;a class="ext-link" href="https://tech.transitionnetwork.org/trac/wiki/PenguinServer"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://tech.transitionnetwork.org/trac/wiki/PenguinServer&lt;/a&gt; and also the corresponding &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PuffinServer"&gt;PuffinServer&lt;/a&gt;.
&lt;/p&gt;
</description>
    <language>en-us</language>
    <image>
      <title>Transition Technology</title>
      <url>/trac/chrome/site/TransitionNetwork-Logo-Web-Small.jpg</url>
      <link>http://localhost:8080/trac/ticket/470</link>
    </image>
    <generator>Trac 0.12.5</generator>
    <item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Sat, 15 Dec 2012 21:41:02 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:1</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:1</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Steps done on the first configuration of puffin &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/466#comment:2" title="task: Puffin install and configuration (closed: fixed)"&gt;ticket:466#comment:2&lt;/a&gt; were followed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;echo "export EDITOR=vim" &amp;gt;&amp;gt; /root/.bashrc
echo "syntax on" &amp;gt;&amp;gt; /root/.vimrc
echo "penguin.webarch.net" &amp;gt; /etc/hostname
aptitude install vim screen sudo wget lynx pwgen rsync postfix metche mutt apticron denyhosts
&lt;/pre&gt;&lt;p&gt;
Generated a passphrase less root ssh key pair for rsyncing data off the quince and kiwi:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ssh-keygen -t rsa -b 2048
&lt;/pre&gt;&lt;p&gt;
Added this public key to /root/.ssh/authorized_keys on kiwi and quince with this at the start of it to limit it's use to the penguin IP address:
&lt;/p&gt;
&lt;pre class="wiki"&gt;from="81.95.52.111" ssh-rsa AAAA...
&lt;/pre&gt;&lt;p&gt;
Created /root/.ssh/config with the following in it:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Host quince
  Hostname quince.transitionnetwork.org
  User root
Host kiwi
  Hostname kiwi.transitionnetwork.org
  User root
&lt;/pre&gt;&lt;p&gt;
Created user accounts for all the existing people who need it, matching the user and group ID's to the ones on quince, and copied across their ssh public keys and sent them email with their passwords, using the following:
&lt;/p&gt;
&lt;pre class="wiki"&gt;export NEWUSER=username
ssh quince grep $NEWUSER /etc/passwd # get the ID
export NEWUSERID=123
addgroup --gid $NEWUSERID $NEWUSER
adduser --gid $NEWUSERID --uid $NEWUSERID $NEWUSER
adduser $NEWUSER sudo
mkdir /home/$NEWUSER/.ssh
chmod 700 /home/$NEWUSER/.ssh
rsync -av quince:/home/$NEWUSER/.ssh/authorized_keys /home/$NEWUSER/.ssh/
chmod 600 /home/$NEWUSER/.ssh/authorized_keys
chown -R $NEWUSER:$NEWUSER /home/$NEWUSER/.ssh
&lt;/pre&gt;&lt;p&gt;
Edited /etc/sudoers:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#%sudo ALL=(ALL) ALL
%sudo ALL=(ALL) NOPASSWD: ALL
&lt;/pre&gt;&lt;p&gt;
Edited /etc/ssh/sshd_config and restarted ssh:
&lt;/p&gt;
&lt;pre class="wiki"&gt;PermitRootLogin no
AllowGroups sudo sshaccess
&lt;/pre&gt;&lt;p&gt;
Copied across the wild card ssl cert for *.transitionnetwork.org:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /etc/ssl/transitionnetwork.org/
chmod 700 /etc/ssl/transitionnetwork.org/
rsync -av quince:/etc/ssl/transitionnetwork.org/ /etc/ssl/transitionnetwork.org/
&lt;/pre&gt;&lt;p&gt;
Set up root email:
&lt;/p&gt;
&lt;pre class="wiki"&gt;echo "root: chris@webarchitects.co.uk" &amp;gt;&amp;gt; /etc/aliases
newaliases
/etc/init.d/postfix reload
&lt;/pre&gt;&lt;p&gt;
Edited the TLS settings in /etc/postfix/main.cf and restarted postfix:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# TLS parameters
smtpd_tls_cert_file = /etc/ssl/transitionnetwork.org/transitionnetwork.org.crt
smtpd_tls_key_file = /etc/ssl/transitionnetwork.org/transitionnetwork.org.key
smtpd_tls_CAfile = /etc/ssl/transitionnetwork.org/gandi.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_cipherlist = EDH:!EXP:!LOW
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtp_enforce_tls = no
smtp_tls_cert_file = /etc/ssl/transitionnetwork.org/transitionnetwork.org.crt
smtp_tls_key_file = /etc/ssl/transitionnetwork.org/transitionnetwork.org.key
smtp_tls_CAfile = /etc/ssl/transitionnetwork.org/gandi.pem
smtp_tls_loglevel = 1
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_session_cache_timeout = 3600s
&lt;/pre&gt;&lt;p&gt;
Sent a test email to root using mutt and then checked that TLS was used by looking at the mail headers.
&lt;/p&gt;
&lt;p&gt;
Installed mysql and added the root password to /root/.my.cnf:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install mysql-server-5.1
&lt;/pre&gt;&lt;p&gt;
Installed backupninja and created a user on the remote backup server and set up ssh:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install backupninja hwinfo libhal1 libhd16 debconf-utils
adduser penguin
mkdir /home/penguin/.ssh
vi /home/penguin/.ssh/authorized_keys
chmod 600 /home/penguin/.ssh/authorized_keys
chmod 700 /home/penguin/.ssh
chown -R penguin:penguin /home/penguin/.ssh
&lt;/pre&gt;&lt;p&gt;
Ran ninjahelper and set up system, mysql and rdiff backups and tested that it was all working.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Sat, 15 Dec 2012 23:32:03 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:2</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:2</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.54&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;1.0&lt;/em&gt; to &lt;em&gt;2.54&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Installing nginx, trac and munin, attempting to use the debian versions from backports, following &lt;a class="ext-link" href="http://backports-master.debian.org/Instructions/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://backports-master.debian.org/Instructions/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;echo "deb http://backports.debian.org/debian-backports squeeze-backports main" &amp;gt; /etc/apt/sources.list.d/backports.list
aptitude -t squeeze-backports install "nginx"
aptitude -t squeeze-backports install "trac"
aptitude -t squeeze-backports install "munin"
&lt;/pre&gt;&lt;p&gt;
And following &lt;a class="ext-link" href="http://forums.debian.net/viewtopic.php?f=17&amp;amp;t=80679#p438915"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://forums.debian.net/viewtopic.php?f=17&amp;amp;t=80679#p438915&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;echo 'APT::Default-Release "stable";' &amp;gt;&amp;gt; /etc/apt/apt.conf
&lt;/pre&gt;&lt;p&gt;
Mediwiki is in testing but not backports, so I'm not sure if we should use the debian package or not.
&lt;/p&gt;
&lt;p&gt;
For nginx &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/357" title="maintenance: nginx research (closed: fixed)"&gt;ticket:357&lt;/a&gt; was read, and rather than using the dotdeb repos the wheezy &lt;a class="ext-link" href="http://packages.debian.org/wheezy/php5-fpm"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://packages.debian.org/wheezy/php5-fpm&lt;/a&gt; was considered as dotdeb did cause some problems on kiwi with mysql upgrades. Using dotdeb would also result in their nginx rather than the backports one, so the suggested way of doing it from here seems like the best bet: &lt;a class="ext-link" href="http://serverfault.com/questions/448246/php-fpm-for-nginx-on-debian"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://serverfault.com/questions/448246/php-fpm-for-nginx-on-debian&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Sun, 16 Dec 2012 01:55:37 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:3</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:3</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.7&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;2.54&lt;/em&gt; to &lt;em&gt;4.24&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
These are the packages installed from backports:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -l  | awk '/^ii/ &amp;amp;&amp;amp; $3 ~ /bpo[456]0/ {print $2}'
gawk
geoip-database
libcairo2
libfreetype6
libgeoip1
liblog-dispatch-perl
libnet-server-perl
libpixman-1-0
liburi-perl
libxfont1
munin
munin-common
munin-doc
munin-node
munin-plugins-core
munin-plugins-extra
nginx
nginx-common
nginx-full
python-babel
trac
x11-common
&lt;/pre&gt;&lt;p&gt;
Tidying up the apt changes so that everything is in a .d directory:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/apt
mv apt.conf apt.conf.d/02stable
&lt;/pre&gt;&lt;p&gt;
Created /etc/apt/preferences.d/security.pref with the following:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Pin: release l=Debian-Security
Pin-Priority: 1000
Package: *
&lt;/pre&gt;&lt;p&gt;
Created /etc/apt/preferences.d/stable.pref with the following:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Pin: release a=stable
Pin-Priority: 990
Package: *
&lt;/pre&gt;&lt;p&gt;
Created /etc/apt/preferences.d/dotdeb.pref:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: *
Pin: release o=packages.dotdeb.org
Pin-Priority: 100
Package: php-pear php5-cli php5-common php5-fpm php5-mysql
Pin: release o=packages.dotdeb.org
Pin-Priority: 991
&lt;/pre&gt;&lt;p&gt;
Created /etc/apt/preferences.d/backports.pref:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: gawk geoip-database libcairo2 libfreetype6 libgeoip1 liblog-dispatch-perl libnet-server-perl libpixman-1-0 liburi-perl libxfont1 munin munin-common munin-doc munin-node munin-plugins-core munin-plugins-extra nginx nginx-common nginx-full python-babel trac x11-common
Pin: release o=backports
Pin-Priority: 992
&lt;/pre&gt;&lt;p&gt;
Then create /etc/apt/sources.list.d/dotdeb.list with the following in it:
&lt;/p&gt;
&lt;pre class="wiki"&gt;deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
&lt;/pre&gt;&lt;p&gt;
Install the gpg key:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -
&lt;/pre&gt;&lt;p&gt;
Update:
&lt;/p&gt;
&lt;pre class="wiki"&gt;apt-get update
apt-get install -t stable php-pear php5-cli php5-common php5-fpm php5-mysql
&lt;/pre&gt;&lt;p&gt;
However this isn't working right as an upgrade would now result in mysql coming from dotdeb:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude upgrade
  The following packages will be upgraded:
    mysql-common
apt-show-versions -u
  mysql-common/squeeze upgradeable from 5.1.66-0+squeeze1 to 5.5.28-1~dotdeb.0
&lt;/pre&gt;&lt;p&gt;
This was fixed by editing /etc/apt/preferences.d/stable.pref and changing "stable" to "squeeze":
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: *
Pin: release a=squeeze
Pin-Priority: 990
Package: mysql-common
Pin: release a=squeeze
Pin-Priority: 995
&lt;/pre&gt;&lt;p&gt;
Mysql packages are installed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;apt-show-versions | grep mysql
libdbd-mysql-perl/squeeze uptodate 4.016-1
libmysqlclient16/squeeze uptodate 5.1.66-0+squeeze1
mysql-client-5.1/squeeze uptodate 5.1.66-0+squeeze1
mysql-common/squeeze uptodate 5.1.66-0+squeeze1
mysql-server-5.1/squeeze uptodate 5.1.66-0+squeeze1
mysql-server-core-5.1/squeeze uptodate 5.1.66-0+squeeze1
php5-mysql/squeeze uptodate 5.3.19-1~dotdeb.0
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Sun, 16 Dec 2012 02:31:18 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:4</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:4</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.27&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;4.24&lt;/em&gt; to &lt;em&gt;4.51&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
A test install of media wiki from wheezy was done by enabling wheezy repos by creating /etc/apt/sources.list.d/wheezy.list with the following in it:
&lt;/p&gt;
&lt;pre class="wiki"&gt;deb http://ftp.uk.debian.org/debian/ wheezy main
deb-src http://ftp.uk.debian.org/debian/ wheezy main
&lt;/pre&gt;&lt;p&gt;
And /etc/apt/preferences.d/wheezy.pref with this in it:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: *
Pin: release a=wheezy
Pin-Priority: 99
Package: mediawiki
Pin: release a=wheezy
Pin-Priority: 993
&lt;/pre&gt;&lt;p&gt;
Then:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install -t wheezy mediawiki
&lt;/pre&gt;&lt;p&gt;
But this pulls in mediawiki from squeeze and not wheezy, so I think the apt settings have a problem, this is one for another night!
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 17 Dec 2012 20:26:57 GMT</pubDate>
      <title></title>
      <link>http://localhost:8080/trac/ticket/470#comment:5</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:5</guid>
      <description>
        &lt;p&gt;
At the meeting on 17th Dec, &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/471" title="defect: Ttech Skype Meeting 17th December 2012 (closed: fixed)"&gt;ticket:471&lt;/a&gt;, Jim suggested we use &lt;a class="ext-link" href="http://collectd.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://collectd.org/&lt;/a&gt; rather than munin
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 11 Jan 2013 13:47:29 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:6</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:6</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;4.51&lt;/em&gt; to &lt;em&gt;5.51&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have installed a couple scripts that I wrote for other servers to update packages and update the /root/Changelog file, see &lt;a class="wiki" href="http://localhost:8080/trac/wiki/AptitudeUpdateScript"&gt;AptitudeUpdateScript&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This has shown up a potential issue, &lt;tt&gt;apt-show-versions -b -u&lt;/tt&gt; lists some available updates:
&lt;/p&gt;
&lt;pre class="wiki"&gt;geoip-database/wheezy
libfreetype6/squeeze-backports
nginx/squeeze-backports
nginx-common/squeeze-backports
nginx-full/squeeze-backports
&lt;/pre&gt;&lt;p&gt;
But these don't get updated with &lt;tt&gt;apt-get upgrade&lt;/tt&gt; or &lt;tt&gt;aptitude upgrade&lt;/tt&gt; or &lt;tt&gt;aptitude full-upgrade&lt;/tt&gt; as they are only manually upgradeable:
&lt;/p&gt;
&lt;pre class="wiki"&gt;apt-show-versions -u
geoip-database/wheezy *manually* upgradeable from 20121207-1~bpo60+1 to 20130108-1~bpo60+1
libfreetype6/squeeze-backports *manually* upgradeable from 2.4.9-1~bpo60+1 to 2.4.9-1.1
nginx/squeeze-backports *manually* upgradeable from 1.2.1-2~bpo60+1 to 1.2.6-1~dotdeb.0
nginx-common/squeeze-backports *manually* upgradeable from 1.2.1-2~bpo60+1 to 1.2.6-1~dotdeb.0
nginx-full/squeeze-backports *manually* upgradeable from 1.2.1-2~bpo60+1 to 1.2.6-1~dotdeb.0
&lt;/pre&gt;&lt;p&gt;
I don't think we don't want to switch from the squeeze-backports version of nginx to the dotdeb version so those updates can be ignored, for the geoip update:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -r geoip-database
apt-get install geoip-database=20130108-1~bpo60+1
&lt;/pre&gt;&lt;p&gt;
For libfreetype6 there doesn't seem to be a problem changing back to the squeeze version, so this was done:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -r --force-depends libfreetype6
aptitude install multiarch-support libfreetype6
&lt;/pre&gt;&lt;p&gt;
The &lt;a class="ext-link" href="http://mcarpenter.org/blog/2012/08/12/ubuntu-automatic-package-updates"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;notes here&lt;/a&gt; were helpful.
&lt;/p&gt;
&lt;p&gt;
Notes on this have been added to &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#Updates"&gt;PenguinServer#Updates&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 14 Jan 2013 18:49:56 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:7</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:7</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;5.51&lt;/em&gt; to &lt;em&gt;6.01&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have made a start on migrating the static archives:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Copy the files:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir -p /web/2011.archive.transitionnetwork.org/www
rsync -av kiwi:/web/2011.archive.transitionnetwork.org/www/ /web/2011.archive.transitionnetwork.org/www/
mkdir -p /web/2010.archive.transitionnetwork.org/www
rsync -av kiwi:/web/transitiontowns.org.webarch.net/www/ /web/2010.archive.transitionnetwork.org/www/
&lt;/pre&gt;&lt;p&gt;
Copy nginx config across:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/sites-available
rsync -av kiwi:/etc/nginx/sites-available/archive .
cd /etc/nginx
rsync -av kiwi:/etc/nginx/archive-shared .
&lt;/pre&gt;&lt;p&gt;
These files contain, archive:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# virtual server
# http://nginx.org/en/docs/http/ngx_http_core_module.html#server
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name  2011.archive.transitionnetwork.org;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/archive.access.log;
        error_log   /var/log/nginx/archive.error.log debug;
        # document root
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#root
        root   "/web/2011.archive.transitionnetwork.org/www";
        # include the config that both archive sites share
        include  archive-shared;
}
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name  2010.archive.transitionnetwork.org;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/archive.access.log;
        error_log   /var/log/nginx/archive.error.log crit;
        # document root
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#root
        root   "/web/2010.archive.transitionnetwork.org/www";
        # include the config that both archive sites share
        include  archive-shared;
}
&lt;/pre&gt;&lt;p&gt;
archive-shared:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        # Shared archive config
        # http://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex
        autoindex  on;
        # document index
        # http://nginx.org/en/docs/http/ngx_http_index_module.html#index
        index  archive.html index.php pmwiki.php;
        # location match
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#location
        # Prevent access to any files starting with a dot, like .htaccess
        # or text editor temp files
        location ~ /\. {
                access_log off;
                log_not_found off;
                deny all;
        }
        # Prevent access to tmp files created by vim
        location ~ .\~$ {
                return 403;
        }
        # /uploads is the upload directory where users can upload files witrh extensions
        # listed in LocalSettings.php so we want to make sure that html / php documents
        # are served as plain text
        location ^~ /uploads/ {
                default_type application/octet-stream;
                types {
                        text/plain              htm html shtml php php5;
                        # whitelist here of all file types allowed to be uploaded,
                        image/gif                                                                       gif;
                        image/jpeg                                                                      jpeg jpg jpe;
                        image/png                                                                       png;
                        text/plain                                                                      txt;
                        application/msword                                                              doc dot;
                        application/rtf                                                                 rtf;
                        application/pdf                                                                 pdf;
                        application/vnd.oasis.opendocument.text                                         odt;
                        application/vnd.ms-excel                                                        xls xlb xlt;
                        application/vnd.ms-powerpoint                                                   ppt pps;
                }
        }
        # deny access to these directories and files
        location ^~ /webprojectblog/            { return 403; }
        location ^~ /scripts/                   { return 403; }
        location ^~ /cookbook/                  { return 403; }
        location ^~ /local/                     { return 403; }
        location ^~ /forum/bb-admin/            { return 403; }
        #location ^~ /forum/bb-templates/       { return 403; }
        location ^~ /forum/my-plugins/          { return 403; }
        location = /forum/bb-config.php         { return 403; }
        location = /forum/bb-config-sample.php  { return 403; }
        location = /forum/bb-cron.php           { return 403; }
        location = /forum/bb-edit.php           { return 403; }
        location = /forum/bb-login.php          { return 403; }
        location = /forum/bb-post.php           { return 403; }
        location = /forum/bb-reset-password.php { return 403; }
        location = /forum/bb-settings.php       { return 403; }
        location = /forum/edit.php              { return 403; }
        location = /forum/register.php          { return 403; }
        # no external access needed
        #location ^~ /forum/bb-includes/        { internal; }
        # Converted apache rules
        # via http://www.anilcetin.com/convert-apache-htaccess-to-nginx/
        location ~ /forum {
                rewrite ^/forum/page/([0-9]+)/?$ /forum/index.php?page=$1 last;
                rewrite ^/forum/forum/([^/]+)/page/([0-9]+)/?$ /forum/forum.php?id=$1&amp;amp;page=$2 last;
                rewrite ^/forum/forum/([^/]+)/?$ /forum/forum.php?id=$1 last;
                rewrite ^/forum/forum/?$ /forum/ redirect;
                rewrite ^/forum/topic/([^/]+)/page/([0-9]+)/?$ /forum/topic.php?id=$1&amp;amp;page=$2 last;
                rewrite ^/forum/topic/([^/]+)/?$ /forum/topic.php?id=$1 last;
                rewrite ^/forum/topic/?$ /forum/ redirect;
                rewrite ^/forum/tags/([^/]+)/page/([0-9]+)/?$ /forum/tags.php?tag=$1&amp;amp;page=$2 last;
                rewrite ^/forum/tags/([^/]+)?$ /forum/tags.php?tag=$1 last;
                rewrite ^/forum/profile/([^/]+)/page/([0-9]+)/?$ /forum/profile.php?id=$1&amp;amp;page=$2 last;
                rewrite ^/forum/profile/([^/]+)/([^/]+)/?$ /forum/profile.php?id=$1&amp;amp;tab=$2 last;
                rewrite ^/forum/profile/([^/]+)/([^/]+)/page/([0-9]+)/?$ /forum/profile.php?id=$1&amp;amp;tab=$2&amp;amp;page=$3 last;
                rewrite ^/forum/profile/([^/]+)/?$ /forum/profile.php?id=$1 last;
                rewrite ^/forum/profile/?$ /forum/profile.php last;
                rewrite ^/forum/view/([^/]+)/page/([0-9]+)/?$ /forum/view.php?view=$1&amp;amp;page=$2 last;
                rewrite ^/forum/view/([^/]+)/?$ /forum/view.php?view=$1 last;
                rewrite ^/forum/rss/topic/([^/]+)?$ /forum/rss.php?topics=$1 last;
                rewrite ^/forum/rss/tags/([^/]+)/?$ /forum/rss.php?tag=$1 last;
                rewrite ^/forum/rss/tags/([^/]+)/topics/?$ /forum/rss.php?tag=$1&amp;amp;topics=1 last;
                rewrite ^/forum/rss/profile/([^/]+)/?$ /forum/rss.php?profile=$1 last;
                rewrite ^/forum/rss/view/([^/]+)/?$ /forum/rss.php?view=$1 last;
                rewrite ^/forum/rss/?$ /forum/rss.php last;
                #rewrite ^/forum/.*$ /forum/index.php last;
                # Pass php requests to php5-fpm
                location ~ \.php?$ {
                        try_files $uri =404;
                        include fastcgi_params;
                        fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_intercept_errors on;
                }
        }
        # Prevent editing and uploading
        # http://wiki.nginx.org/IfIsEvil - but not sure how else to do this
        if ($args ~ "^(.*)action=edit"){
               return 403;
        }
        if ($args ~ "^(.*)action=upload"){
               return 403;
        }
        location /Totnes {
                rewrite ^/Totnes/([^/a-z].*) /Totnes/index.php?n=$1;
        }
        location /Kinsale {
                rewrite ^/Kinsale/([^/a-z].*) /Kinsale/index.php?n=$1;
        }
        location /Skibb {
                rewrite ^/Skibb/([^/a-z].*) /Skibb/index.php?n=$1;
        }
        location / {
                try_files $uri $uri/ @rewrite;
        }
        location @rewrite {
                rewrite ^/([A-Z0-9xa0-xff].*)$ /pmwiki.php?n=$1;
        }
        # Pass php requests to php5-fpm
        location ~ \.php?$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
        }
&lt;/pre&gt;&lt;p&gt;
Copy the database across:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /tmp/
rsync -av kiwi:/var/backups/mysql/sqldump/bbforum.sql .
&lt;/pre&gt;&lt;p&gt;
Create the database and user:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mysql
mysql&amp;gt; create database bbforum;
mysql&amp;gt; grant all on bbforum.* to 'bbforum'@'bbforum' identified by 'XXX';
mysql&amp;gt; flush privileges;
&lt;/pre&gt;&lt;p&gt;
Insert the database:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cat /tmp/bbforum.sql | mysql bbforum
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 11:08:27 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:8</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:8</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;6.01&lt;/em&gt; to &lt;em&gt;7.51&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The work last week resulted in static HTML working:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.penguin.webarch.net/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.penguin.webarch.net/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
But not PHP:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.penguin.webarch.net/index.php"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.penguin.webarch.net/index.php&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.penguin.webarch.net/forum/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.penguin.webarch.net/forum/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
This is because the socket specified in &lt;tt&gt;/etc/nginx/archive-shared&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
&lt;/pre&gt;&lt;p&gt;
Doesn't exist, so following &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/357#comment:16" title="maintenance: nginx research (closed: fixed)"&gt;ticket:357#comment:16&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /var/run/php5-fpm
chown www-data:www-data /var/run/php5-fpm
&lt;/pre&gt;&lt;p&gt;
Change these things in &lt;tt&gt;/etc/php5/fpm/pool.d/www.conf&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;listen = /var/run/php5-fpm/phpfpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
listen.allowed_clients = 127.0.0.1,81.95.52.111,penguin.transitionnetwork.org,penguin.webarch.net
&lt;/pre&gt;&lt;p&gt;
And restart apps:
&lt;/p&gt;
&lt;pre class="wiki"&gt;/etc/init.d/php5-fpm restart
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
Now PHP is working:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.penguin.webarch.net/Main/HomePage"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.penguin.webarch.net/Main/HomePage&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
But MySQL is needed for the old forum:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.penguin.webarch.net/forum/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.penguin.webarch.net/forum/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And that wasn't working because, although the database had been imported a user hadn't been created correctly see &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/470#comment:7" title="maintenance: Penguin install and configuration (closed: fixed)"&gt;ticket:470#comment:7&lt;/a&gt; so this was done to fix it:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mysql mysql
mysql&amp;gt; DROP USER 'bbforum'@'bbforum';
mysql&amp;gt; CREATE USER 'bbforum'@'localhost' IDENTIFIED BY 'xxx';
mysql&amp;gt; GRANT ALL ON bbforum.* TO 'bbforum'@'localhost';
mysql&amp;gt; FLUSH PRIVILEGES;
&lt;/pre&gt;&lt;p&gt;
The Gandi DNS has been updated, we did have a *.archive entry but there isn't really a need for a wild card entry so it's been removed and replaced with:
&lt;/p&gt;
&lt;pre class="wiki"&gt;2010.archive 3600 IN A 81.95.52.111
2011.archive 3600 IN A 81.95.52.111
&lt;/pre&gt;&lt;p&gt;
And these site should soon be running on penguin:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 12:23:50 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:9</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:9</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;7.51&lt;/em&gt; to &lt;em&gt;8.51&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
So, there are some issues with the archive, specifically images are not working on the 2010 site:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://2010.archive.transitionnetwork.org/index.php"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.transitionnetwork.org/index.php&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
But they are working here:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/index.php"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/index.php&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I'm at a loss for the reason for this and having spent an hour on it I think I should move on, so I have created a seperate ticket for this, &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/474" title="defect: Images don't display on the 2010 archive (closed: fixed)"&gt;ticket:474&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 14:27:12 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:10</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:10</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.3&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;8.51&lt;/em&gt; to &lt;em&gt;9.81&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Setting up Mediawiki, copy the nginx config from kiwi:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/
scp kiwi:/etc/nginx/wiki-shared .
cd /etc/nginx/sites-available/
scp kiwi:/etc/nginx/sites-available/wiki .
&lt;/pre&gt;&lt;p&gt;
The &lt;tt&gt;/etc/nginx/wiki-shared&lt;/tt&gt; file contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        # Everything below is the same for http and https
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name  wiki.transitionnetwork.org wiki.penguin.webarch.net;
        # document root
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#root
        root   "/web/wiki.transitionnetwork.org/www";
        # document index
        # http://nginx.org/en/docs/http/ngx_http_index_module.html#index
        index  index.php;
        # http://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex
        autoindex off;
        # location match
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#location
        # Prevent access to any files starting with a dot, like .htaccess
        # or text editor temp files
        location ~ /\. {
                return 403;
        }
        # Prevent access to tmp files created by vim
        location ~ .\~$ {
                return 403;
        }
        # Block access to these directories and files
        location =  /LocalSettings.php  { return 403; }
        location ^~ /maintenance/       { return 403; }
        location ^~ /bin/               { return 403; }
        location ^~ /mw-config/         { return 403; }
        location ^~ /cache/             { return 403; }
        location ^~ /tests/             { return 403; }
        location ^~ /includes/          { return 403; }
        location ^~ /maths/             { return 403; }
        location ^~ /serialized/        { return 403; }
        location ^~ /languages/         { return 403; }
        # /images is the upload directory where users can upload files witrh extensions
        # listed in LocalSettings.php so we want to make sure that html / php documents
        # are served as plain text
        location ^~ /images/ {
                default_type text/plain;
                types {
                        text/plain              htm html shtml php php5;
                        # whitelist here of all file types allowed to be uploaded,
                        image/gif                                                                       gif;
                        image/jpeg                                                                      jpeg jpg jpe;
                        image/png                                                                       png;
                        text/plain                                                                      txt;
                        video/x-msvideo                                                                 avi;
                        audio/mpeg                                                                      mpga mpega mp2 mp3 m4a;
                        audio/x-pn-realaudio                                                            ra rm ram;
                        video/mp4                                                                       mp4;
                        image/svg+xml                                                                   svg svgz;
                        application/pdf                                                                 pdf;
                        application/rtf                                                                 rtf;
                        application/msword                                                              doc dot;
                        application/vnd.ms-powerpoint                                                   ppt pps;
                        application/vnd.oasis.opendocument.chart                                        odc;
                        application/vnd.oasis.opendocument.database                                     odb;
                        application/vnd.oasis.opendocument.formula                                      odf;
                        application/vnd.oasis.opendocument.graphics                                     odg;
                        application/vnd.oasis.opendocument.graphics-template                            otg;
                        application/vnd.oasis.opendocument.image                                        odi;
                        application/vnd.oasis.opendocument.presentation                                 odp;
                        application/vnd.oasis.opendocument.presentation-template                        otp;
                        application/vnd.oasis.opendocument.spreadsheet                                  ods;
                        application/vnd.oasis.opendocument.spreadsheet-template                         ots;
                        application/vnd.oasis.opendocument.text                                         odt;
                        application/vnd.oasis.opendocument.text-master                                  odm;
                        application/vnd.oasis.opendocument.text-template                                ott;
                        application/vnd.oasis.opendocument.text-web                                     oth;
                        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet               xlsx;
                        application/vnd.openxmlformats-officedocument.spreadsheetml.template            xltx;
                        application/vnd.openxmlformats-officedocument.presentationml.presentation       pptx;
                        application/vnd.openxmlformats-officedocument.presentationml.slideshow          ppsx;
                        application/vnd.openxmlformats-officedocument.presentationml.template           potx;
                        application/vnd.openxmlformats-officedocument.wordprocessingml.document         docx;
                        application/vnd.openxmlformats-officedocument.wordprocessingml.template         dotx;
                        image/x-photoshop                                                               psd;
                        application/postscript                                                          ps ai eps epsi epsf eps2 eps3;
                        image/tiff                                                                      tiff tif;
                        image/x-icon                                                                    ico;
                        application/vnd.ms-excel                                                        xls xlb xlt;
                }
                # If the files can't be found serve up the front page
                try_files $uri /index.php;
        }
        # This is the main rewrite to get nice URL's
        # http://wiki.nginx.org/MediaWiki
        location / {
                try_files $uri @rewrite;
        }
        location @rewrite {
                # http://blog.bigdinosaur.org/mediawiki-on-nginx/
                rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1&amp;amp;$2 last;
        }
&lt;/pre&gt;&lt;p&gt;
And the &lt;tt&gt;/etc/nginx/sites-available/wiki&lt;/tt&gt; contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt; virtual server
# http://nginx.org/en/docs/http/ngx_http_core_module.html#server
# HTTP Server
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/wiki.access.log;
        error_log   /var/log/nginx/wiki.error.log   crit;
        # Redirect logins to https
        location ~ .*Special:UserLogin.* {
                #rewrite ^/Special:UserLogin(.*) https://$server_name:4430/Special:UserLogin$1? redirect;
                rewrite ^/Special:UserLogin(.*) https://$server_name/Special:UserLogin$1? redirect;
        }
        if ($args ~ "^(.*)title=Special:UserLogin"){
                #rewrite ^/(.*) https://$server_name:4430/index.php?$args? redirect;
                rewrite ^/(.*) https://$server_name/index.php?$args? redirect;
        }
        include  wiki-shared;
        # Pass php requests to php5-fpm
        location ~ /(api|index|opensearch_desc|redirect|trackback|img_auth|load|thumb)\.php?$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
        }
}
# HTTPS Server
server {
        #listen   4430;
        listen   443;
        access_log  /var/log/nginx/wiki.ssl_access.log;
        error_log   /var/log/nginx/wiki.ssl_error.log crit;
        ssl  on;
        ssl_certificate  /etc/ssl/transitionnetwork.org/transitionnetwork.org.chained.pem;
        ssl_certificate_key  /etc/ssl/transitionnetwork.org/transitionnetwork.org.key;
        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4-SHA:HIGH:!ADH:!SSLv2:!aNULL;
        ssl_prefer_server_ciphers   on;
        include  wiki-shared;
        # Pass php requests to php5-fpm
        location ~ /(api|index|opensearch_desc|redirect|trackback|img_auth|load|thumb)\.php?$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
        }
}
&lt;/pre&gt;&lt;p&gt;
Edited these files and changed &lt;tt&gt;wiki.dev&lt;/tt&gt; to &lt;tt&gt;wiki&lt;/tt&gt;.
&lt;/p&gt;
&lt;p&gt;
Copy the live wiki off quince, and delete the things we don't need like old versions of mediawiki:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /web/wiki.transitionnetwork.org/
rsync -av quince:/web/wiki.transitionnetwork.org/ /web/wiki.transitionnetwork.org/
cd /web/wiki.transitionnetwork.org/
rm -rf mediawiki-1*
rm -rf www/extensions/FCKeditor/
&lt;/pre&gt;&lt;p&gt;
The last change on the wiki, &lt;a class="ext-link" href="https://wiki.transitionnetwork.org/Special:RecentChanges"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://wiki.transitionnetwork.org/Special:RecentChanges&lt;/a&gt; was Jim yesterday, so it's safe to use last nights backup:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /tmp/
rsync -av quince:/var/backups/mysql/sqldump/transwiki.sql .
mysql mysql
 mysql&amp;gt; CREATE DATABASE transwiki;
 mysql&amp;gt; GRANT ALL ON transwiki.* TO 'mediawiki'@'localhost' IDENTIFIED BY 'xxxx';
 mysql&amp;gt; FLUSH PRIVILEGES;
 mysql&amp;gt; QUIT;
cat transwiki.sql | mysql transwiki
cd /etc/nginx/sites-enabled
ln -s ../sites-available/wiki 10-wiki
cd /etc/ssl/transitionnetwork.org
scp kiwi:/etc/ssl/transitionnetwork.org/transitionnetwork.org.chained.pem .
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
The nginx transitionnetwork.org.chained.pem was created like this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cat transitionnetwork.org.crt &amp;gt; transitionnetwork.org.chained.pem
cat GandiStandardSSLCA.pem &amp;gt;&amp;gt; transitionnetwork.org.chained.pem
cat UTNAddTrustServer_CA.pem &amp;gt;&amp;gt; transitionnetwork.org.chained.pem
cat AddTrustExternalCARoot.pem &amp;gt;&amp;gt; transitionnetwork.org.chained.pem
&lt;/pre&gt;&lt;p&gt;
Following a nginx restart the following error is displayed at &lt;a class="ext-link" href="http://wiki.penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.penguin.webarch.net/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;CACHE_ACCEL requested but no suitable object cache is present. You may want to install APC.
&lt;/pre&gt;&lt;p&gt;
So:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install php5-apc
&lt;/pre&gt;&lt;p&gt;
That didn't fix it, and it turns out that an old DB dump had been imported, so importing a new one:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /tmp/
scp quince:/var/backups/mysql/bak.mysql.2013-01-21_02.00.16_.tar.gz .
tar -zxvf bak.mysql.2013-01-21_02.00.16_.tar.gz
cd bak.mysql.2013-01-21_02.00.16/
cat *transwiki* | mysql transwiki
&lt;/pre&gt;&lt;p&gt;
Also as APC isn't working these settings were commented out in &lt;tt&gt;/web/wiki.transitionnetwork.org/www/LocalSettings.php&lt;/tt&gt; to get the site working:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#$wgMainCacheType = CACHE_ACCEL;
#$wgMemCachedServers = array();
&lt;/pre&gt;&lt;p&gt;
The wiki is now running on the new server but there appears to be a problem with cookies and authentication:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://wiki.penguin.webarch.net/Main_Page"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://wiki.penguin.webarch.net/Main_Page&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
So I haven't updated the DNS.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 15:01:51 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:11</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:11</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.3&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;9.81&lt;/em&gt; to &lt;em&gt;10.11&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Upgrading mediawiki:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/wiki.transitionnetwork.org/
wget http://download.wikimedia.org/mediawiki/1.19/mediawiki-1.19.3.tar.gz
wget http://download.wikimedia.org/mediawiki/1.19/mediawiki-1.19.3.tar.gz.sig
wget https://www.mediawiki.org/keys/keys.txt
gpg --import keys.txt
gpg --verify mediawiki-1.19.3.tar.gz.sig
tar -zxvf mediawiki-1.19.3.tar.gz
rsync -av mediawiki-1.19.3/ www/
cd www/maintenance/
php update.php
cd ..
chown root:root -R www/
cd www
chown -R www-data:www-data cache
chown -R www-data:www-data images
&lt;/pre&gt;&lt;p&gt;
The cookie problem was fixed by editing &lt;tt&gt;LocalSettings.php&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#$wgCookieDomain     =  "wiki.transitionnetwork.org";
$wgCookieDomain     =  "wiki.penguin.webarch.net";
&lt;/pre&gt;&lt;p&gt;
So now it's OK to switch the DNS -- please don't edit &lt;a class="ext-link" href="https://wiki.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://wiki.transitionnetwork.org/&lt;/a&gt; for the next 30 mins or so!
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 15:07:41 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:12</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:12</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.1&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;10.11&lt;/em&gt; to &lt;em&gt;10.21&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
OK, DNS for wiki.transitionnetwork.org has been updated, you will know you have the site off penguin when this page:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://wiki.transitionnetwork.org/User:Chris"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://wiki.transitionnetwork.org/User:Chris&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Matches this page:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://wiki.penguin.webarch.net/User:Chris"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://wiki.penguin.webarch.net/User:Chris&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The documentation still needs updating, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#Websites"&gt;wiki:PenguinServer#Websites&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 21 Jan 2013 21:04:41 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:13</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:13</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.7&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;10.21&lt;/em&gt; to &lt;em&gt;11.91&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I've added some notes about Mediawiki, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#wiki.transitionnetwork.org"&gt;wiki:PenguinServer#wiki.transitionnetwork.org&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Installing Piwik, copy the niginx config across and the files and delete some things we don't need:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/niginx/sites-available
scp kiwi:/etc/nginx/sites-available/stats .
mkdir /web/stats.transitionnetwork.org
cd /web/
rsync -av quince:/web/stats.transitionnetwork.org/ stats.transitionnetwork.org/
cd stats.transitionnetwork.org
rm -rf piwik.1*
rm -rf piwik.bak
&lt;/pre&gt;&lt;p&gt;
Copy the database and install it, on quince, backup the databases, then copy across:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ssh quince /usr/local/bin/mysql_backup
cd /tmp/
scp quince:/var/backups/mysql/bak.mysql.2013-01-21_19.41.42_.tar.gz .
tar -zxvf bak.mysql.2013-01-21_19.41.42_.tar.gz
cd bak.mysql.2013-01-21_19.41.42/
cat *_stats* | mysql stats
&lt;/pre&gt;&lt;p&gt;
Create a Mysql user and database:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mysql mysql
  mysql&amp;gt; CREATE DATABASE stats;
  mysql&amp;gt; GRANT ALL ON stats.* TO 'stats'@'localhost' IDENTIFIED BY 'xxxx';
  mysql&amp;gt; FLUSH PRIVILEGES;
  mysql&amp;gt; QUIT;
&lt;/pre&gt;&lt;p&gt;
Nginx:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx
scp kiwi:/etc/nginx/fastcgi_cache_zone.conf .
mkdir -p /var/cache/nginx/fcgicache
chown -R www-data:www-data /var/cache/nginx/fcgicache
mv nginx.conf nginx.conf.2013-01021.bak
scp kiwi:/etc/nginx/nginx.conf .
scp kiwi:/etc/nginx/map_cache_piwik.conf .
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
Upgrade Piwik, see &lt;a class="ext-link" href="http://piwik.org/docs/update/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://piwik.org/docs/update/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/stats.transitionnetwork.org
cp piwik/config/config.ini.php .
wget http://builds.piwik.org/latest.zip
unzip latest.zip
cp config.ini.php piwik/config/
cd piwik/
php index.php -- "module=CoreUpdater"
&lt;/pre&gt;&lt;p&gt;
All seems to be working OK at &lt;a class="ext-link" href="https://stats.penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://stats.penguin.webarch.net/&lt;/a&gt; so the DNS has been updated and penguin should soon be serving &lt;a class="ext-link" href="https://stats.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://stats.transitionnetwork.org/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(This comment includes the time spent in a ttech skype meeting -- I was doing the migration during the meeting.)
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 10:56:42 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:14</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:14</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.3&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;11.91&lt;/em&gt; to &lt;em&gt;12.21&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Pwiki is now running on penguin, and it's tracking activity today, but there was no recorded traffic for yesterday, I think because the cron tab wasn't set up, so the crontab was created for www-data:
&lt;/p&gt;
&lt;pre class="wiki"&gt;crontab -e -u www-data
&lt;/pre&gt;&lt;p&gt;
Containing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# m h  dom mon dow   command
5 0 * * * /web/stats.transitionnetwork.org/piwik/misc/cron/archive.sh &amp;gt; /dev/null
&lt;/pre&gt;&lt;p&gt;
And the script was run on the command line.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 12:28:51 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:15</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:15</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.65&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;12.21&lt;/em&gt; to &lt;em&gt;12.86&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
We now have stats for yesterday in Piwik and I have added stats.transitionnetwork.org to the wiki page, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#stats.transitionnetwork.org"&gt;wiki:PenguinServer#stats.transitionnetwork.org&lt;/a&gt; and updated the Piwik page, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PiwikServer"&gt;wiki:PiwikServer&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I have writtten a penguin TODO list, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#Penguin"&gt;wiki:PenguinServer#Penguin&lt;/a&gt; which has these tasks listed:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Sort out backups
&lt;/li&gt;&lt;li&gt;Migrate trac
&lt;/li&gt;&lt;li&gt;Migrate the static archive
&lt;/li&gt;&lt;li&gt;Check the mysql and php settings
&lt;/li&gt;&lt;li&gt;Sort out munin (or collect)
&lt;/li&gt;&lt;li&gt;Sort out the apt pinning - there are still some problems with this
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 13:08:12 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:16</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:16</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.4&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;12.86&lt;/em&gt; to &lt;em&gt;13.26&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Backups have been setup using backupninja, the config is in &lt;tt&gt;/etc/backupninja.conf&lt;/tt&gt; and it has the default settings and task config files are in &lt;tt&gt;/etc/backup.d/&lt;/tt&gt;, &lt;tt&gt;/etc/backup.d/20.mysql&lt;/tt&gt; contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;hotcopy = no
sqldump = yes
compress = no
backupdir = /var/backups/mysql
databases = all
configfile = /etc/mysql/debian.cnf
&lt;/pre&gt;&lt;p&gt;
And &lt;tt&gt;/etc/backup.d/90.rdiff&lt;/tt&gt; contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[source]
type = local
keep = 60D
include = /var/spool/cron/crontabs
include = /var/backups
include = /etc
include = /root
include = /home
include = /usr/local/*bin
include = /var/lib/dpkg/status*
include = /web
exclude = /home/*/.gnupg
exclude = /home/*/.local/share/Trash
exclude = /home/*/.Trash
exclude = /home/*/.thumbnails
exclude = /home/*/.beagle
exclude = /home/*/.aMule
exclude = /home/*/gtk-gnutella-downloads
exclude = /var/cache/backupninja/duplicity
[dest]
type = remote
directory = /var/lib/backup/penguin/penguin
host = backup
user = penguin
&lt;/pre&gt;&lt;p&gt;
The ssh host details are set in &lt;tt&gt;/root/.ssh/config&lt;/tt&gt;.
&lt;/p&gt;
&lt;p&gt;
The biggest things that is currently backed up is the Pwiki database, it's 1.6G when dumped as plain text.
&lt;/p&gt;
&lt;p&gt;
A test backup run has been run.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 14:42:52 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:17</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:17</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.8&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;13.26&lt;/em&gt; to &lt;em&gt;14.06&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Migrating &lt;a class="ext-link" href="http://static.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://static.transitionnetwork.org/&lt;/a&gt; first copy the archive across:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /web/static.transitionnetwork.org
rsync -av quince:/web/static.transitionnetwork.org/ /web/static.transitionnetwork.org/
&lt;/pre&gt;&lt;p&gt;
It is 1.9G    in total:
&lt;/p&gt;
&lt;pre class="wiki"&gt;816M    ./ttcon2011
201M    ./ttcon2010
876M    ./tnconf2012
&lt;/pre&gt;&lt;p&gt;
Copy the static nginx config from kiwi:
&lt;/p&gt;
&lt;pre class="wiki"&gt;/etc/nginx/sites-available
scp kiwi:/etc/nginx/sites-available/static .
&lt;/pre&gt;&lt;p&gt;
After editing this is what we have:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# static.transitionnetwork.org http virtual server
# http://nginx.org/en/docs/http/ngx_http_core_module.html#server
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name  static.transitionnetwork.org static.penguin.webarch.net;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/static.access.log;
        error_log   /var/log/nginx/static.error.log crit;
        # document root
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#root
        root   "/web/static.transitionnetwork.org/www";
        # http://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex
        autoindex  on;
        # document index
        # http://nginx.org/en/docs/http/ngx_http_index_module.html#index
        index  index.html;
        # location match
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#location
        # If the most specific prefix location has the "^~" prefix then regular expressions are not checked.
        # redirect all these to the https version
        # http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite
        # Some private data
        location ^~ /ttcon2010/private {
                #rewrite  ^/(.*)$  https://static.transitionnetwork.org:4430/$1? permanent;
                rewrite  ^/(.*)$  https://static.transitionnetwork.org/$1? permanent;
        }
        location ^~ /tnconf2012/emails/ {
                #rewrite  ^/(.*)$  https://static.transitionnetwork.org:4430/$1? permanent;
                rewrite  ^/(.*)$  https://static.transitionnetwork.org/$1? permanent;
        }
        # Prevent access to any files starting with a dot, like .htaccess
        # or text editor temp files
        location ~ /\. {
                access_log off;
                log_not_found off;
                deny all;
        }
}
# static.transitionnetwork.org https virtual server
server {
        #listen   4430;
        listen   443;
        server_name  static.transitionnetwork.org static.penguin.webarch.net;
        access_log  /var/log/nginx/static.ssl_access.log;
        error_log   /var/log/nginx/static.ssl_error.log debug;
        ssl  on;
        ssl_certificate  /etc/ssl/transitionnetwork.org/transitionnetwork.org.chained.pem;
        ssl_certificate_key  /etc/ssl/transitionnetwork.org/transitionnetwork.org.key;
        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4-SHA:HIGH:!ADH:!SSLv2:!aNULL;
        ssl_prefer_server_ciphers   on;
        root   "/web/static.transitionnetwork.org/www";
        autoindex  on;
        index  index.html;
        # if a "/" request happens frequently, defining "location = /" will speed up the processing of these
        # requests, as search terminates right after the first comparison
        location /ttcon2010/private {
                satisfy any;
                deny all;
                # http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
                auth_basic "Private Area";
                auth_basic_user_file /web/static.transitionnetwork.org/.htpasswd;
        }
        location /tnconf2012/emails {
                satisfy any;
                deny all;
                # http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
                auth_basic "Private Area";
                auth_basic_user_file /web/static.transitionnetwork.org/.htpasswd;
        }
        # Prevent access to any files starting with a dot, like .htaccess
        # or text editor temp files
        location ~ /\. {
                access_log off;
                log_not_found off;
                deny all;
        }
}
&lt;/pre&gt;&lt;p&gt;
Enable it for testing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/sites-enabled/
ln -s ../sites-available/static 25-static
/etc/init.d/nginx configtest
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
After testing the DNS was updated and soon &lt;a class="ext-link" href="https://static.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://static.transitionnetwork.org/&lt;/a&gt; will be running via Nginx.
&lt;/p&gt;
&lt;p&gt;
The Penguin wiki page has been updated &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#static.transitionnetwork.org"&gt;wiki:PenguinServer#static.transitionnetwork.org&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 15:20:22 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:18</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:18</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.6&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;14.06&lt;/em&gt; to &lt;em&gt;14.66&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Static splash page for &lt;a class="ext-link" href="http://penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.webarch.net/&lt;/a&gt; and &lt;a class="ext-link" href="http://penguin.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org/&lt;/a&gt; and &lt;a class="ext-link" href="http://81.95.52.111/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://81.95.52.111/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Copying what we have on kiwi and editing files to suit.
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir -p /web/penguin.transitionnetwork.org/www
rsync -av kiwi:/web/kiwi.webarch.net/www/ /web/penguin.transitionnetwork.org/www/
cd /etc/nginx/sites-available
scp kiwi:/etc/nginx/sites-available/kiwi penguin
cd /etc/nginx/sites-enabled
ln -s ../sites-available/penguin 05-penguin
/etc/init.d/nginx configtest
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
Now we have a static splash page for the server: &lt;a class="ext-link" href="https://penguin.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://penguin.transitionnetwork.org/&lt;/a&gt; but one thing to look at, is how to make the IP address serve the first virtual host rather than the last:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="http://81.95.52.111/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://81.95.52.111/&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 17:10:09 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:19</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:19</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.2&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;14.66&lt;/em&gt; to &lt;em&gt;14.86&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
To make the &lt;a class="ext-link" href="http://penguin.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org/&lt;/a&gt; site the default we need to add the IP address to the &lt;tt&gt;server_name&lt;/tt&gt; and &lt;tt&gt;default_server&lt;/tt&gt; to the &lt;tt&gt;listen&lt;/tt&gt; directive:
&lt;/p&gt;
&lt;pre class="wiki"&gt;listen   80 default_server;
server_name  penguin.transitionnetwork.org penguin.webarch.net 81.95.52.111;
&lt;/pre&gt;&lt;p&gt;
Now we get the right page at these locations:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://81.95.52.111/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://81.95.52.111/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://foo.penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://foo.penguin.webarch.net/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
But default_server should probably be used for the redirects, see &lt;a class="wiki" href="http://localhost:8080/trac/wiki/NewLiveServer#Redirects"&gt;wiki:NewLiveServer#Redirects&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 17:18:09 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:20</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:20</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.12&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;14.86&lt;/em&gt; to &lt;em&gt;14.98&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Install NTP:
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install ntp
logchange "libopts25{a} ntp : installed"
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 18:33:33 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:21</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:21</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;14.98&lt;/em&gt; to &lt;em&gt;16.23&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Domains which are currently redirected by apache, see &lt;a class="wiki" href="http://localhost:8080/trac/wiki/NewLiveServer#Redirects"&gt;wiki:NewLiveServer#Redirects&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Rewriting for nginx.
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/sites-available
vim redirects
&lt;/pre&gt;&lt;p&gt;
all the domains listed on quince were checked, some have not been renewed and these were omitted (the &lt;a class="wiki" href="http://localhost:8080/trac/wiki/DomainNames"&gt;wiki:DomainNames&lt;/a&gt; page needs updating), the redirects file contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# redirects
server {
        listen 80;
        server_name transition-japan.org www.transition-japan.org;
        rewrite ^ http://www.transition-japan.net/ permanent;
}
server {
        listen 80;
        server_name transitiontowns.org www.transitiontowns.org;
        rewrite ^/Bellingen(.*)$ http://www.transitionnetwork.org/cms/bellingen permanent;
        rewrite ^/Lewes(.*)$ http://www.transitiontownlewes.org/ permanent;
        rewrite ^/Totnes(.*) http://www.transitiontowntotnes.org/ permanent;
        rewrite ^/Brixton(.*) http://www.transitiontownbrixton.org/ permanent;
        rewrite ^ http://www.transitionnetwork.org$request_uri? permanent;
}
server {
        listen 80;
        server_name     canbritainfeeditself.org      www.canbritainfeeditself.org
                        energydescentactionplan.org   www.energydescentactionplan.org
                        relocalisationmovement.org    www.relocalisationmovement.org
                        relocalisationparty.org       www.relocalisationparty.org
                        relocalizationmovement.org    www.relocalizationmovement.org
                        relocalizationnetwork.com     www.relocalizationnetwork.com
                        relocalizationnetwork.org     www.relocalizationnetwork.org
                        relocalizationparty.org       www.relocalizationparty.org
                        resiliencebuilders.com        www.resiliencebuilders.com
                        resiliencebuilders.org        www.resiliencebuilders.org
                        transitionamerica.org         www.transitionamerica.org
                        transitionaustralia.org       www.transitionaustralia.org
                        transitionbooks.org           www.transitionbooks.org
                        transitionbusiness.org        www.transitionbusiness.org
                        transitioncommunities.org     www.transitioncommunities.org
                        transitionfood.org            www.transitionfood.org
                        transitionireland.org         www.transitionireland.org
                        transitionjournal.org         www.transitionjournal.org
                        transitionmedia.org           www.transitionmedia.org
                        transitionmentoring.org.uk    www.transitionmentoring.org.uk
                        transitionnetwork.org.uk      www.transitionnetwork.org.uk
                        transitionnetwork.co.uk       www.transitionnetwork.co.uk
                        transitionnetworknews.com     www.transitionnetworknews.com
                        transitionnetworknews.org     www.transitionnetworknews.org
                        transitionparty.org           www.transitionparty.org
                        transitionradio.org           www.transitionradio.org
                        transitiontimesonline.org     www.transitiontimesonline.org
                        transitiontoday.org           www.transitiontoday.org
                        transitiontours.com           www.transitiontours.com
                        transitiontours.org           www.transitiontours.org
                        transitiontown.com            www.transitiontown.com
                        transitiontown.net            www.transitiontown.net
                        transitiontown.org            www.transitiontown.org
                        transitionvideo.org           www.transitionvideo.org
                        transitionwales.org           www.transitionwales.org;
        rewrite ^ http://www.transitionnetwork.org$request_uri? permanent;
}
&lt;/pre&gt;&lt;p&gt;
The redirects were enabled:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/sites-enabled
ln -s ../sites-available/redirects 05-redirects
/etc/init.d/nginx configtest
  Testing nginx configuration: nginx: [emerg] could not build the server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64
  nginx: configuration file /etc/nginx/nginx.conf test failed
&lt;/pre&gt;&lt;p&gt;
Due to the large number of server names this needed adding to &lt;tt&gt;/etc/nginx/nginx.conf&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;server_names_hash_max_size 1024;
&lt;/pre&gt;&lt;p&gt;
See &lt;a class="ext-link" href="http://nginx.org/en/docs/http/server_names.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://nginx.org/en/docs/http/server_names.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The Gandi "Transition Redirects" redirects zone file was going to be updated, bt it's owned by Ed and I don't have permission to update it, Gandi also has a list of all domains using this file, some of them have just expired and some are due to expire soon:
&lt;/p&gt;
&lt;pre class="wiki"&gt;transitionplaces.org            2013-01-17
localtransition.org             2013-01-17
transitionmentoring.org.uk      2013-01-18
transitionmentoring.org         2013-01-18
relocalizationnetwork.org       2013-02-25
relocalizationmovement.org      2013-02-25
relocalizationnetwork.com       2013-02-25
relocalisationmovement.org      2013-02-25
transitioncommunities.org       2013-03-25
transitiontown.org              2013-04-07
transitiontown.net              2013-04-07
transitiontown.com              2013-04-07
resiliencebuilders.org          2013-06-09
transitionbooks.org             2013-06-09
resiliencebuilders.com          2013-06-09
transitiontimesonline.org       2013-08-06
transitionjournal.org           2013-08-07
transitiontoday.org             2013-08-07
transitionparty.org             2013-08-17
relocalisationparty.org         2013-08-17
relocalizationparty.org         2013-08-17
transitiontours.org             2013-08-18
transitiontours.com             2013-08-18
transition-japan.org            2013-09-01
canbritainfeeditself.org        2013-09-04
energydescentactionplan.org     2013-10-02
transitionnetworknews.com       2013-10-17
transitionnetworknews.org       2013-10-17
transitionmedia.org             2013-10-20
transitionbusiness.org          2013-11-14
transitionfood.org              2013-11-14
transitionvideo.org             2013-11-17
transitionradio.org             2013-11-17
transitionireland.org           2013-11-17
transitionaustralia.org         2013-11-17
transitionwales.org             2013-11-17
transitionamerica.org           2014-01-17
transitionnetwork.org.uk        2014-01-25
&lt;/pre&gt;&lt;p&gt;
This is a list of them in alphabetical order:
&lt;/p&gt;
&lt;pre class="wiki"&gt;canbritainfeeditself.org
energydescentactionplan.org
localtransition.org
relocalisationmovement.org
relocalisationparty.org
relocalizationmovement.org
relocalizationnetwork.com
relocalizationnetwork.org
relocalizationparty.org
resiliencebuilders.com
resiliencebuilders.org
transitionamerica.org
transitionaustralia.org
transitionbooks.org
transitionbusiness.org
transitioncommunities.org
transitionfood.org
transitionireland.org
transition-japan.org
transitionjournal.org
transitionmedia.org
transitionmentoring.org
transitionmentoring.org.uk
transitionnetworknews.com
transitionnetworknews.org
transitionnetwork.org.uk
transitionparty.org
transitionplaces.org
transitionradio.org
transitiontimesonline.org
transitiontoday.org
transitiontours.com
transitiontours.org
transitiontown.com
transitiontown.net
transitiontown.org
transitionvideo.org
transitionwales.org
&lt;/pre&gt;&lt;p&gt;
I need to check these are all in the ngnix config and also give Ed the details he need to update the zone file, but first I need to eat.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 19:20:57 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:22</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:22</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;16.23&lt;/em&gt; to &lt;em&gt;16.48&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The domains added to the redirect Nginx config:
&lt;/p&gt;
&lt;pre class="wiki"&gt;localtransition.org
transitionmentoring.org
transitionplaces.org
&lt;/pre&gt;&lt;p&gt;
The only domain in the Ngnix config but not using the Gandi "Transition Redirects" zone file is:
&lt;/p&gt;
&lt;pre class="wiki"&gt;transitionnetwork.co.uk
&lt;/pre&gt;&lt;p&gt;
I'm not a tech contact for this domain and it's pointing to the quince IP address -- Ed it needs to be changed to use the "Transition Redirects" zone file if you have permission to do that (make me tech contact if you want then I should be able to do it).
&lt;/p&gt;
&lt;p&gt;
Ed, can you also copy the "Transition Redirects" zone file, edit it to this:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@ 10800 IN A 81.95.52.111
www 10800 IN A 81.95.52.111
&lt;/pre&gt;&lt;p&gt;
Thanks.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 19:53:48 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:23</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:23</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;16.48&lt;/em&gt; to &lt;em&gt;16.98&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Ed, the "Transition Towns" zone file also need editing, from:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@ 10800 IN A 81.95.52.88
totnes 10800 IN CNAME redirects.transitionnetwork.org.
www 10800 IN CNAME redirects.transitionnetwork.org.
&lt;/pre&gt;&lt;p&gt;
To:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@ 10800 IN A 81.95.52.111
totnes 10800 IN A 81.95.52.111
www 10800 IN A 81.95.52.111
&lt;/pre&gt;&lt;p&gt;
You should be able to do this here: &lt;a class="ext-link" href="https://www.gandi.net/admin/domain/zone/470186/2/edit"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://www.gandi.net/admin/domain/zone/470186/2/edit&lt;/a&gt; first create a new version, then activate it.
&lt;/p&gt;
&lt;p&gt;
(These seems little point in using a CNAME if we also have a IP address in the file in any case.)
&lt;/p&gt;
&lt;p&gt;
I have created an additional virtual host for totnes.transitiontowns.org:
&lt;/p&gt;
&lt;pre class="wiki"&gt;server {
        listen 80;
        server_name totnes.transitiontowns.org;
        rewrite ^ http://www.transitiontowntotnes.org$request_uri? permanent;
}
&lt;/pre&gt;&lt;p&gt;
Though I wonder if it shouldn't point to the archive of the site rather than the latest version:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://archive.transitiontowntotnes.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://archive.transitiontowntotnes.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 21:24:00 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:24</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:24</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;16.98&lt;/em&gt; to &lt;em&gt;17.48&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Looking at how to run trac with nginx have read these pages and searched for other useful resources:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracFastCgi"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracFastCgi&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracNginxRecipe"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracNginxRecipe&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 22 Jan 2013 21:56:00 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:25</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:25</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;17.48&lt;/em&gt; to &lt;em&gt;17.98&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
More here:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracOnDebian"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracOnDebian&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
I think it makes sense to first try to setup Trac with Fast CGI:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracFastCgi"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracFastCgi&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And if that doesn't work (for example I can't get it to serve trac with the existing URLs) then use tracd, and nginx as a reverse proxy:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracNginxRecipe"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracNginxRecipe&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
See also the notes here:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://www.guyrutenberg.com/2008/06/04/start-trac-on-startup-initd-script-for-tracd/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.guyrutenberg.com/2008/06/04/start-trac-on-startup-initd-script-for-tracd/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://www.guyrutenberg.com/2009/02/17/starting-tracd-without-root-privileges-at-startup/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.guyrutenberg.com/2009/02/17/starting-tracd-without-root-privileges-at-startup/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 23 Jan 2013 12:06:30 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:26</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:26</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.45&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;17.98&lt;/em&gt; to &lt;em&gt;18.43&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have copied the "Transition Redirects" zone to "Transition Redirects (2013-01-23)" and made it active, it contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@ 10800 IN A 81.95.52.111
www 10800 IN A 81.95.52.111
&lt;/pre&gt;&lt;p&gt;
The "Transition Towns" domain has been copied to "Transition Towns (2013-01-23)" and made active, this contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@ 10800 IN A 81.95.52.111
totnes 10800 IN A 81.95.52.111
www 10800 IN A 81.95.52.111
&lt;/pre&gt;&lt;p&gt;
Once the gandi DNS servers have updated all the redirects will be running off penguin.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 23 Jan 2013 13:14:37 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:27</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:27</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;18.43&lt;/em&gt; to &lt;em&gt;19.43&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Looking at installing Trac on penguin, &lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracOnDebian#AdditionalTracfiles"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracOnDebian#AdditionalTracfiles&lt;/a&gt; reading the documentation available via &lt;tt&gt;zless /usr/share/doc/trac/README.Debian.gz&lt;/tt&gt; and the documentation of the existing install, &lt;a class="wiki" href="http://localhost:8080/trac/wiki/DevelopmentServer#Trac"&gt;wiki:DevelopmentServer#Trac&lt;/a&gt; the initial install was done on &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/1" title="task: Trac install (closed: fixed)"&gt;ticket:1&lt;/a&gt; and the upgrade to 0.12 on &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/364" title="maintenance: Migrate from SVN to Git (closed: fixed)"&gt;ticket:364&lt;/a&gt;, there are migration notes here, &lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracMigrate#TracMigration"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracMigrate#TracMigration&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
On kiwi, dump the database:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org/trac/db
sqlite3 trac.db ".dump" &amp;gt;&amp;gt; ~/sqlite_trac.sql
&lt;/pre&gt;&lt;p&gt;
On penguin, copy the database across (this will need to be done again after testing):
&lt;/p&gt;
&lt;pre class="wiki"&gt;aptitude install sqlite3
logchange "sqlite3 : installed"
mkdir -p /web/tech.transitionnetwork.org/trac/db
cd /web/tech.transitionnetwork.org/
scp kiwi:sqlite_trac.sql .
cat sqlite_trac.sql | sqlite3  trac.db
mv trac.db /web/tech.transitionnetwork.org/trac/db/
chown -R www-data:www-data /web/tech.transitionnetwork.org/trac/db/
&lt;/pre&gt;&lt;p&gt;
Copy attachments across, on penguin (this will need to be done again after testing):
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir -p /web/tech.transitionnetwork.org/trac/attachments/
rsync -av kiwi:/web/tech.transitionnetwork.org/trac/attachments/ /web/tech.transitionnetwork.org/trac/attachments/
chown -R www-data:www-data /web/tech.transitionnetwork.org/trac/attachments/
&lt;/pre&gt;&lt;p&gt;
Install a Trac environment:
&lt;/p&gt;
&lt;pre class="wiki"&gt;trac-admin /web/tech.transitionnetwork.org/trac initenv
  Initenv for '/web/tech.transitionnetwork.org/trac' failed.
  Directory exists and is not empty.
&lt;/pre&gt;&lt;p&gt;
Clearly this should have been done at the start, so, move it out of the way and try again:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mv /web/tech.transitionnetwork.org/trac/ /web/tech.transitionnetwork.org/trac.bak/
trac-admin /web/tech.transitionnetwork.org/trac initenv
  Trac will first ask a few questions about your environment
  in order to initialize and prepare the project database.
   Please enter the name of your project.
   This name will be used in page titles and descriptions.
  Project Name [My Project]&amp;gt; Transition Technology
   Please specify the connection string for the database to use.
   By default, a local SQLite database is created in the environment
   directory. It is also possible to use an already existing
   PostgreSQL database (check the Trac documentation for the exact
   connection string syntax).
  Database connection string [sqlite:db/trac.db]&amp;gt;
  Creating and Initializing Project
   Installing default wiki pages
    WikiStart imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiStart
    InterWiki imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterWiki
    TracRevisionLog imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRevisionLog
    WikiFormatting imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiFormatting
    SandBox imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/SandBox
    TracQuery imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracQuery
    TracNotification imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracNotification
    TracAccessibility imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracAccessibility
    TracUnicode imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracUnicode
    InterMapTxt imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterMapTxt
    TracBackup imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracBackup
    PageTemplates imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/PageTemplates
    TracModWSGI imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracModWSGI
    TracBrowser imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracBrowser
    TracSupport imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSupport
    WikiDeletePage imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiDeletePage
    TracNavigation imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracNavigation
    TracPermissions imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracPermissions
    WikiNewPage imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiNewPage
    WikiRestructuredText imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiRestructuredText
    TracTimeline imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTimeline
    WikiHtml imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiHtml
    TracInstall imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracInstall
    WikiProcessors imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiProcessors
    TracReports imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracReports
    TracTicketsCustomFields imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTicketsCustomFields
    TracRoadmap imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRoadmap
    TracGuide imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracGuide
    TracWorkflow imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracWorkflow
    TracEnvironment imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracEnvironment
    TracFastCgi imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracFastCgi
    InterTrac imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/InterTrac
    TracSearch imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSearch
    TracTickets imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracTickets
    TracRss imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRss
    TitleIndex imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TitleIndex
    TracWiki imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracWiki
    WikiPageNames imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiPageNames
    RecentChanges imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/RecentChanges
    WikiRestructuredTextLinks imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiRestructuredTextLinks
    TracFineGrainedPermissions imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracFineGrainedPermissions
    TracInterfaceCustomization imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracInterfaceCustomization
    TracLinks imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracLinks
    TracLogging imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracLogging
    CamelCase imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/CamelCase
    TracChangeset imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracChangeset
    TracImport imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracImport
    WikiMacros imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/WikiMacros
    TracCgi imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracCgi
    TracPlugins imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracPlugins
    TracUpgrade imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracUpgrade
    TracModPython imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracModPython
    TracRepositoryAdmin imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracRepositoryAdmin
    TracStandalone imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracStandalone
    TracAdmin imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracAdmin
    TracIni imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracIni
    TracSyntaxColoring imported from /usr/lib/python2.6/dist-packages/trac/wiki/default-pages/TracSyntaxColoring
  ---------------------------------------------------------------------
  Project environment for 'Transition Technology' created.
  You may now configure the environment by editing the file:
    /web/tech.transitionnetwork.org/trac/conf/trac.ini
  If you'd like to take this new project environment for a test drive,
  try running the Trac standalone web server `tracd`:
    tracd --port 8000 /web/tech.transitionnetwork.org/trac
  Then point your browser to http://localhost:8000/trac.
  There you can also browse the documentation for your installed
  version of Trac, including information on further setup (such as
  deploying Trac to a real web server).
  The latest documentation can also always be found on the project
  website:
    http://trac.edgewall.org/
  Congratulations!
&lt;/pre&gt;&lt;p&gt;
The copy across the database and attachments:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org
cp trac.bak/db/trac.db trac/db/
chown www-data:www-data trac/db/trac.db
rsync -av trac.bak/attachments/ trac/attachments/
chown -R www-data:www-data trac/attachments/
&lt;/pre&gt;&lt;p&gt;
Test using tracd:
&lt;/p&gt;
&lt;pre class="wiki"&gt;tracd --port 8000 /web/tech.transitionnetwork.org/trac
&lt;/pre&gt;&lt;p&gt;
Everything is looked OK at &lt;a class="ext-link" href="http://penguin.transitionnetwork.org:8000/trac"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org:8000/trac&lt;/a&gt; apart from the plugins and config changes, I'll look at importing them next, also the simplest thing might be to use the tracd server and nginx as a reverse proxy.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 23 Jan 2013 14:42:55 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:28</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:28</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;1.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;19.43&lt;/em&gt; to &lt;em&gt;20.43&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Sorting out the &lt;tt&gt;trac.ini&lt;/tt&gt; file, copy the kiwi one to penguin and diff it with the new one:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org
mkdir trac.bak/conf/
scp kiwi:/web/tech.transitionnetwork.org/trac/conf/trac.ini trac.bak/conf/
diff trac.bak/conf/trac.ini trac/conf/trac.ini | vim -
&lt;/pre&gt;&lt;p&gt;
Lots of things will need manually working though, but first the &lt;a class="wiki" href="http://localhost:8080/trac/wiki/TimingAndEstimationPlugin"&gt;wiki:TimingAndEstimationPlugin&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org
svn co http://trac-hacks.org/svn/timingandestimationplugin/branches/trac0.12/
mv trac0.12/ timingandestimationpluin_trac0.12/
cd timingandestimationpluin_trac0.12/
python setup.py bdist_egg
cp dist/timingandestimationplugin-1.2.8-py2.6.egg ../trac/plugins/
&lt;/pre&gt;&lt;p&gt;
Add the following to &lt;tt&gt;/web/tech.transitionnetwork.org/trac/conf/trac.ini&lt;/tt&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;[components]
timingandestimationplugin.* = enabled
&lt;/pre&gt;&lt;p&gt;
Enable the logo, previously this was in a site directory outside the trac directory, see &lt;a class="ext-link" href="http://trac.edgewall.org/wiki/0.12/TracInstall#MappingStaticResources"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/0.12/TracInstall#MappingStaticResources&lt;/a&gt; for the reasons why, however if we use tracd this isn't a concern, so:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org/trac
scp kiwi:/web/tech.transitionnetwork.org/www/site/TransitionNetwork-Logo-Web-Small.jpg .
&lt;/pre&gt;&lt;p&gt;
Edit trac.ini changing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[header_logo]
alt = TransitionNetwork.org Technology
link = /trac/
src = /trac/TransitionNetwork-Logo-Web-Small.jpg
[logging]
log_type = syslog
log_level = ERROR
[notification]
admit_domains = transitionnetwork.org, trac.transitionnetwork.org, tech.transitionnetwork.org
always_notify_owner = true
always_notify_reporter = true
mime_encoding = base64
sendmail_path = /usr/sbin/sendmail
smtp_default_domain = transitionnetwork.org
smtp_enabled = true
smtp_from = trac@transitionnetwork.org
smtp_from_name = Transiton Technology Trac
smtp_replyto = trac@transitionnetwork.org
[project]
descr = Support and issues tracking for the Transition Network Web Project.
[ticket]
default_component = Drupal modules &amp;amp; settings
[ticket-custom]
billable = checkbox
billable.label = Billable?
billable.order = 3
billable.value = 1
estimatedhours = text
estimatedhours.label = Estimated Number of Hours
estimatedhours.order = 1
estimatedhours.value = 0
hours = text
hours.label = Add Hours to Ticket
hours.order = 2
hours.value = 0
totalhours = text
totalhours.label = Total Hours
totalhours.order = 4
totalhours.value = 0
[trac]
base_url = https://tech.transitionnetwork.org/trac
&lt;/pre&gt;&lt;p&gt;
The test the changes:
&lt;/p&gt;
&lt;pre class="wiki"&gt;tracd --port 8000 /web/tech.transitionnetwork.org/trac
&lt;/pre&gt;&lt;p&gt;
The results in the following at &lt;a class="ext-link" href="http://penguin.transitionnetwork.org:8000/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org:8000/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;trac: Error
(The Trac Environment needs to be upgraded. Run "trac-admin /web/tech.transitionnetwork.org/trac upgrade")
&lt;/pre&gt;&lt;p&gt;
So:
&lt;/p&gt;
&lt;pre class="wiki"&gt;trac-admin /web/tech.transitionnetwork.org/trac upgrade
Timing and Estimation needs an upgrade
Upgrading Database
Upgrading reports
Upgrading usermanual
Done Upgrading
Upgrade done.
You may want to upgrade the Trac documentation now by running:
  trac-admin /web/tech.transitionnetwork.org/trac wiki upgrade
&lt;/pre&gt;&lt;p&gt;
Things that need sorting out with trac:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Authentication, see &lt;a class="ext-link" href="http://penguin.transitionnetwork.org:8000/trac/login"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org:8000/trac/login&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;The logo is a 404
&lt;/li&gt;&lt;li&gt;The Administration section, &lt;a class="ext-link" href="https://trac.transitionnetwork.org/trac/admin"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://trac.transitionnetwork.org/trac/admin&lt;/a&gt; is missing
&lt;/li&gt;&lt;li&gt;After authentication is sorted the timing plugin needs checking
&lt;/li&gt;&lt;li&gt;Nginx, reverse proxy to tracd
&lt;/li&gt;&lt;li&gt;Tracd init script, see &lt;a class="ext-link" href="http://www.guyrutenberg.com/2008/06/04/start-trac-on-startup-initd-script-for-tracd/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.guyrutenberg.com/2008/06/04/start-trac-on-startup-initd-script-for-tracd/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;A check needs to be done for charset issues, the site was &lt;tt&gt;default_charset = iso-8859-15&lt;/tt&gt; (which is ISO Latin 1 with a few different characters, see &lt;a class="ext-link" href="https://en.wikipedia.org/wiki/ISO/IEC_8859-15#Changes_from_ISO-8859-1"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://en.wikipedia.org/wiki/ISO/IEC_8859-15#Changes_from_ISO-8859-1&lt;/a&gt; ) and now it's &lt;tt&gt;default_charset = utf-8&lt;/tt&gt;
&lt;/li&gt;&lt;li&gt;General testing and checking
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 23 Jan 2013 15:13:03 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:29</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:29</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.2&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;20.43&lt;/em&gt; to &lt;em&gt;20.63&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
There are some tracd notes here:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://security.osmocom.org/trac/wiki/TracStandalone"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://security.osmocom.org/trac/wiki/TracStandalone&lt;/a&gt; including notes on &lt;a class="ext-link" href="http://security.osmocom.org/trac/wiki/TracStandalone#UsingAuthentication"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://security.osmocom.org/trac/wiki/TracStandalone#UsingAuthentication&lt;/a&gt; and &lt;a class="ext-link" href="http://security.osmocom.org/trac/wiki/TracStandalone#Servingstaticcontent"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://security.osmocom.org/trac/wiki/TracStandalone#Servingstaticcontent&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Following the notes there to fix the logo issue:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org/trac
mv TransitionNetwork-Logo-Web-Small.jpg htdocs/
&lt;/pre&gt;&lt;p&gt;
Edit &lt;tt&gt;conf/trac.ini&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;src = /trac/chrome/site/TransitionNetwork-Logo-Web-Small.jpg
&lt;/pre&gt;&lt;p&gt;
And now the image works.
&lt;/p&gt;
&lt;p&gt;
More authentication notes here:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracStandalone"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracStandalone&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 25 Jan 2013 13:48:54 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:30</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:30</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;3.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;20.63&lt;/em&gt; to &lt;em&gt;24.13&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I'M ABOUT TO MIGRATE TRAC, PLEASE DON'T POST ANY TICKETS, COMMENTS TO TICKETS OR EDIT ANY WIKI PAGES FOR AN HOUR OR SO!
&lt;/p&gt;
&lt;p&gt;
Ta!
&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;
Copy nginx reverse proxy config off kiwi and onto penguin:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx/sites-available
scp kiwi:/etc/nginx/sites-available/tech .
&lt;/pre&gt;&lt;p&gt;
Adding a system user for tracd:
&lt;/p&gt;
&lt;pre class="wiki"&gt;addgroup --system tracd
adduser --system --ingroup=tracd --no-create-home --disabled-password tracd
&lt;/pre&gt;&lt;p&gt;
The HOME directory was then set in &lt;tt&gt;/etc/passwd&lt;/tt&gt; to &lt;tt&gt;/web/tech.transitionnetwork.org&lt;/tt&gt; and a directory for the PID was created:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /var/run/tracd
chown tracd:tracd /var/run/tracd
chown tracd:tracd /web/tech.transitionnetwork.org/trac -R
&lt;/pre&gt;&lt;p&gt;
A directory for a script to start and a script to stop the server was created, following the suggestions here &lt;a class="ext-link" href="http://www.guyrutenberg.com/2009/02/17/starting-tracd-without-root-privileges-at-startup/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.guyrutenberg.com/2009/02/17/starting-tracd-without-root-privileges-at-startup/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /web/tech.transitionnetwork.org/bin
&lt;/pre&gt;&lt;p&gt;
And these scripts were created, &lt;tt&gt;tracd-start&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#!/bin/bash
/usr/bin/tracd  --daemonize \
                --pidfile=/var/run/tracd/tracd.pid \
                --port=8080 \
                --hostname=127.0.0.1 \
                --basic-auth="trac,/web/tech.transitionnetwork.org/.htpasswd,Restricted" \
                /web/tech.transitionnetwork.org/trac
&lt;/pre&gt;&lt;p&gt;
And &lt;tt&gt;tracd-stop&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#!/bin/bash
kill `cat /var/run/tracd/tracd.pid`
&lt;/pre&gt;&lt;p&gt;
And this was added to the tracd crontab:
&lt;/p&gt;
&lt;pre class="wiki"&gt;@reboot /web/tech.transitionnetwork.org/bin/tracd-start
&lt;/pre&gt;&lt;p&gt;
Fixing the favicon.ico, aliased in nginx:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mkdir /web/tech.transitionnetwork.org/www/
scp kiwi:/web/tech.transitionnetwork.org/www/favicon.ico /web/tech.transitionnetwork.org/www/
&lt;/pre&gt;&lt;p&gt;
And in trac.ini:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[project]
icon = /favicon.ico
&lt;/pre&gt;&lt;p&gt;
There we a lot of python egg cache errors that were solved (after a lot of faffing) by:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/tech.transitionnetwork.org
ln -s trac/.python-eggs
echo "export PYTHON_EGG_CACHE=~/trac/.python-eggs" &amp;gt;&amp;gt; /web/tech.transitionnetwork.org/.bashrc
&lt;/pre&gt;&lt;p&gt;
The nginx config for the proxy:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# tech.transitionnetwork.org
# virtual server
# http://nginx.org/en/docs/http/ngx_http_core_module.html#server
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name  trac.transitionnetwork.org tech.transitionnetwork.org tech.penguin.webarch.net;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/tech.access.log;
        error_log   /var/log/nginx/tech.error.log   crit;
        # Redirect to HTTPS
        location / {
                #rewrite ^/(.*)$ https://tech.transitionnetwork.org:4430/$1 permanent;
                rewrite ^/(.*)$ https://$server_name/$1 permanent;
        }
}
# HTTPS server
#
server {
        #listen   4430;
        listen   443;
        server_name  trac.transitionnetwork.org tech.transitionnetwork.org tech.penguin.webarch.net;
        access_log  /var/log/nginx/tech.ssl_access.log;
        error_log   /var/log/nginx/tech.ssl_error.log crit;
        ssl  on;
        ssl_certificate  /etc/ssl/transitionnetwork.org/transitionnetwork.org.chained.pem;
        ssl_certificate_key  /etc/ssl/transitionnetwork.org/transitionnetwork.org.key;
        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4-SHA:HIGH:!ADH:!SSLv2:!aNULL;
        ssl_prefer_server_ciphers   on;
        # Redirect requests for / to /trac
        location = / {
                        rewrite ^/$ https://$server_name/trac;
        }
        # favicon
        location = /favicon.ico {
             alias /web/tech.transitionnetwork.org/www/favicon.ico;
        }
        # http://trac.edgewall.org/wiki/TracNginxRecipe
        add_header           Front-End-Https    on;
        # http://wiki.nginx.org/LikeApache
        #location ~ /trac(?&amp;lt;path_info&amp;gt;/.*|$) {
        location /trac {
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:8080/trac;
        }
}
&lt;/pre&gt;&lt;p&gt;
Getting the authentication working took some time but it's now all working here:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://tech.penguin.webarch.net/trac"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://tech.penguin.webarch.net/trac&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
So after posting this ticket I'm going to do a final sync of the attachments and database and then update the dns and then check for any things that haven't been migrated off kiwi -- I think this is the last thing to move.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 25 Jan 2013 14:49:08 GMT</pubDate>
      <title>hours, totalhours, description changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:31</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:31</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.2&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;24.13&lt;/em&gt; to &lt;em&gt;24.33&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/trac/ticket/470?action=diff&amp;amp;version=31"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
OK, the DNS has been updated, tech.transitionnetwork.org and trac.transitionnetwork.org point here, I have also removed the dev.transitionnetwork.org and test.transitionnetwork.org domains so the only domain pointing to kiwi still is kiwi.transitionnetwork.org and I think that can probably be removed.
&lt;/p&gt;
&lt;p&gt;
The documentation has been updated here &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer#tech.transitionnetwork.org"&gt;wiki:PenguinServer#tech.transitionnetwork.org&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The gandi DNS server are updating but are not quite there yet:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dig @A.DNS.GANDI.NET tech.transitionnetwork.org
  ;; ANSWER SECTION:
  tech.transitionnetwork.org. 3600 IN     A       81.95.52.111
dig @B.DNS.GANDI.NET tech.transitionnetwork.org
  ;; ANSWER SECTION:
  tech.transitionnetwork.org. 3600 IN     A       81.95.52.78
&lt;/pre&gt;&lt;p&gt;
In the meantime you can use this domain: &lt;a class="ext-link" href="https://tech.penguin.webarch.net/trac"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://tech.penguin.webarch.net/trac&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 25 Jan 2013 18:43:37 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:32</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:32</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.22&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;24.33&lt;/em&gt; to &lt;em&gt;24.55&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have quickly added Piwik stats to Mediawiki:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /web/wiki.transitionnetwork.org/www/extensions
git clone git://github.com/DaSchTour/piwik-mediawiki-extension.git
mv piwik-mediawiki-extension Piwik
&lt;/pre&gt;&lt;p&gt;
Thje site was added to Piwik and then this was then added to &lt;tt&gt;/web/wiki.transitionnetwork.org/www/LocalSettings.php&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;require_once( "$IP/extensions/Piwik/Piwik.php" );
$wgGroupPermissions['bureaucrat']['viewpiwik'] = true;
$wgPiwikURL = "stats.transitionnetwork.org/";
$wgPiwikIDSite = "3";
&lt;/pre&gt;&lt;p&gt;
It might be also worth adding the stats code to the various archives (and removing the google tracking) and also to this Trac site, but all these things would take longer than this quick fix for Mediawiki.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 25 Jan 2013 19:03:07 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:33</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:33</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;24.55&lt;/em&gt; to &lt;em&gt;24.8&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
In Piwik there is this warning:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Warning: We've detected the old GeoIP plugin. GeoIP integration is now in Piwik core and this plugin is considered deprecated. New region and city reports will not be shown while this plugin is loaded. Please disable the plugin and configure GeoIP. If you want location data for your old visits, use the script described here then reprocess your reports.
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
So, following &lt;a class="ext-link" href="http://piwik.org/faq/how-to/#faq_166"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://piwik.org/faq/how-to/#faq_166&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /etc/nginx
mkdir geoip
wget "http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"
wget "http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz"
gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz
v GeoLiteCity.dat GeoIPCity.dat
&lt;/pre&gt;&lt;p&gt;
Edit &lt;tt&gt;/etc/nginx/nginx.conf&lt;/tt&gt; and add:
&lt;/p&gt;
&lt;pre class="wiki"&gt;geoip_country  /etc/nginx/geoip/GeoIP.dat;
geoip_city     /etc/nginx/geoip/GeoIPCity.dat;
&lt;/pre&gt;&lt;p&gt;
Edit &lt;tt&gt;/etc/nginx/fastcgi_params&lt;/tt&gt; and add:
&lt;/p&gt;
&lt;pre class="wiki"&gt;fastcgi_param GEOIP_ADDR $remote_addr;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_REGION_NAME $geoip_region_name;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_AREA_CODE $geoip_area_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
&lt;/pre&gt;&lt;p&gt;
Restart Nginx:
&lt;/p&gt;
&lt;pre class="wiki"&gt;/etc/init.d/nginx configtest
/etc/init.d/nginx restart
&lt;/pre&gt;&lt;p&gt;
Note the warning here, &lt;a class="ext-link" href="http://dev.maxmind.com/geoip/geolite"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://dev.maxmind.com/geoip/geolite&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;Keep in mind that geolocation data will eventually become out of date. It is recommended you update your databases at least once a month.* The free databases are updated once a month on the first Tuesday.
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 25 Jan 2013 19:55:08 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:34</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:34</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;24.8&lt;/em&gt; to &lt;em&gt;25.05&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The Piwik Nginx config hasn't been documented here and I have just updated the &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PiwikServer"&gt;wiki:PiwikServer&lt;/a&gt; page.
&lt;/p&gt;
&lt;p&gt;
The &lt;tt&gt;/etc/nginx/sites-available/stats&lt;/tt&gt; file contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# piwik.transitionnetwork.org
# virtual server
# http://nginx.org/en/docs/http/ngx_http_core_module.html#server
server {
        # listen for ipv4
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#listen
        #listen   8000;
        listen   80;
        # server name and server aliases
        # http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name
        server_name stats.transitionnetwork.org stats.penguin.webarch.net;
        # logs, error log levels: info | notice | warn | error | crit | alert
        # http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
        # http://nginx.org/en/docs/ngx_core_module.html#error_log
        access_log  /var/log/nginx/piwik.access.log;
        error_log   /var/log/nginx/piwik.error.log   crit;
        # Redirect to HTTPS
        rewrite ^ https://stats.transitionnetwork.org$request_uri? permanent;
}
# HTTPS server
#
server {
        #listen   4430;
        listen   443;
        server_name  stats.transitionnetwork.org stats.penguin.webarch.net;
        access_log  /var/log/nginx/piwik.ssl_access.log;
        error_log   /var/log/nginx/piwik.ssl_error.log crit;
        ssl  on;
        ssl_certificate  /etc/ssl/transitionnetwork.org/transitionnetwork.org.chained.pem;
        ssl_certificate_key  /etc/ssl/transitionnetwork.org/transitionnetwork.org.key;
        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4-SHA:HIGH:!ADH:!SSLv2:!aNULL;
        ssl_prefer_server_ciphers   on;
        root   "/web/stats.transitionnetwork.org/piwik";
        index  index.php;
        # http://wiki.nginx.org/Piwik
        # Disable all methods besides HEAD, GET and POST.
        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
            return 444;
        }
        ## Try all locations and relay to index.php as a fallback.
        location / {
                try_files $uri /index.php?$query_string;
        }
        ## Relay all index.php requests to fastcgi.
        location = /index.php {
                include fastcgi_params;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                ### Implementation of the microcache concept as presented here:
                ### http://fennb.com/microcaching-speed-your-app-up-250x-with-no-n
                ## FastCGI cache.
                ## cache ui for 5m (set the same interval of your crontab)
                ## The cache zone referenced.
                fastcgi_cache fcgicache;
                ## The cache key.
                fastcgi_cache_key $host$request_uri;
                ## For 200 and 301 make the cache valid for 5 minutes.
                fastcgi_cache_valid 200 301 5m;
                ## For 302 make it valid for 3 minutes.
                fastcgi_cache_valid 302 3m;
                ## For 404 make it valid 1 minute.
                fastcgi_cache_valid 404 1m;
                ## If there are any upstream errors or the item has expired use
                ## whatever it is available.
                fastcgi_cache_use_stale error timeout invalid_header updating http_500;
                ## The Cache-Control and Expires headers should be delivered untouched
                ## from the upstream to the client.
                fastcgi_ignore_headers Cache-Control Expires;
                ## If we have a cookie we should bypass the cache. The same if we have a
                fastcgi_cache_bypass $no_cache;
                fastcgi_no_cache $no_cache;
                ## Add a cache miss/hit status header.
                add_header X-Piwik-Cache $upstream_cache_status;
                ## To avoid any interaction with the cache control headers we expire
                ## everything on this location immediately.
                expires epoch;
        }
        ## Relay all piwik.php requests to fastcgi.
        location = /piwik.php {
                include fastcgi_params;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                ### Implementation of the microcache concept as presented here:
                ### http://fennb.com/microcaching-speed-your-app-up-250x-with-no-n
                ## The cache zone referenced.
                fastcgi_cache fcgicache;
                ## The cache key.
                fastcgi_cache_key $host$request_uri;
                ## For 200 and 301 make the cache valid for 2 hours.
                fastcgi_cache_valid 200 301 2h;
                ## For 302 make it valid for 30 minutes.
                fastcgi_cache_valid 302 30m;
                ## For 404 make it valid 10 minutes.
                fastcgi_cache_valid 404 10m;
                ## If there are any upstream errors or the item has expired use
                ## whatever it is available.
                fastcgi_cache_use_stale error timeout invalid_header updating http_500;
                ## The Cache-Control and Expires headers should be delivered untouched
                ## from the upstream to the client.
                fastcgi_ignore_headers Cache-Control Expires;
                ## If we have a cookie we should bypass the cache. The same if we have a
                fastcgi_cache_bypass $no_cache;
                fastcgi_no_cache $no_cache;
                ## Add a cache miss/hit status header.
                add_header X-Piwik-Long-Cache $upstream_cache_status;
                ## To avoid any interaction with the cache control headers we expire
                ## everything on this location immediately.
                expires epoch;
        }
        ## Any other attempt to access PHP files redirects to the root.
                location ~* ^.+\.php$ {
                return 302 /;
        }
        ## Redirect to the root if attempting to access a txt file.
                location ~* (?:DESIGN|(?:gpl|README|LICENSE)[^.]*|LEGALNOTICE)(?:\.txt)*$ {
                return 302 /;
        }
        ## Disallow access to several helper files.
                location ~* \.(?:bat|html?|git|ini|sh|svn[^.]*|txt|tpl|xml)$ {
                return 404;
        }
        ## No crawling of this site for bots that obey robots.txt.
                location = /robots.txt {
                return 200 "User-agent: *\nDisallow: /\n";
        }
}
&lt;/pre&gt;&lt;p&gt;
And &lt;tt&gt;/etc/nginx/fastcgi_cache_zone.conf&lt;/tt&gt; contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;fastcgi_cache_path /var/cache/nginx/fcgicache levels=1:2 keys_zone=fcgicache:5M max_size=500M inactive=3h;
&lt;/pre&gt;&lt;p&gt;
The cache currently has 4026 items in it and it's 19M in total, I have added it to the list of things that shouldn't be backed up, in &lt;tt&gt;/etc/backup.d/90.rdiff&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;exclude = /var/cache/nginx/fcgicache
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Sun, 27 Jan 2013 17:18:19 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:35</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:35</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.1&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;25.05&lt;/em&gt; to &lt;em&gt;25.15&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
There are some HTTPS settings that need checking and perhaps redirects from addresses like www.wiki.transitionnetwork.org to wiki.transitionnetwork.org need setting up.
&lt;/p&gt;
&lt;p&gt;
HTTPS issues:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
This server is vulnerable to the CRIME attack.
Chain issues         Contains anchor
Compression         Yes   INSECURE (more info)
Session resumption         No (IDs assigned but not accepted)
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://www.ssllabs.com/ssltest/analyze.html?d=wiki.transitionnetwork.org&amp;amp;s=81.95.52.111"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://www.ssllabs.com/ssltest/analyze.html?d=wiki.transitionnetwork.org&amp;amp;s=81.95.52.111&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 29 Jan 2013 15:17:59 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:36</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:36</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.3&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;25.15&lt;/em&gt; to &lt;em&gt;25.45&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have just checked the logs on kiwi and it's not been doing anything for some days -- all the sites are now on penguin, so I have shut it down and updated some wiki pages.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 29 Jan 2013 16:23:07 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:37</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:37</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.3&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;25.45&lt;/em&gt; to &lt;em&gt;25.75&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Xen console access has been setup and documented for &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PuffinServer"&gt;wiki:PuffinServer&lt;/a&gt; and &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer"&gt;wiki:PenguinServer&lt;/a&gt; on the &lt;a class="wiki" href="http://localhost:8080/trac/wiki/XenShell"&gt;wiki:XenShell&lt;/a&gt; page.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 30 Jan 2013 11:21:20 GMT</pubDate>
      <title></title>
      <link>http://localhost:8080/trac/ticket/470#comment:38</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:38</guid>
      <description>
        &lt;p&gt;
Please note that some of the recent emails from Trac, since in was moved to &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer"&gt;wiki:PenguinServer&lt;/a&gt;, contain bug descriptions.
&lt;/p&gt;
&lt;p&gt;
This is caused when a bug, that hasn't had a new comment to it posted since the migration, has a new comment posted to it.
&lt;/p&gt;
&lt;p&gt;
Sorry about this, the "answer" is to scroll to then end of these emails are read the recent comment at the very end of them.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 30 Jan 2013 21:58:18 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:39</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:39</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.77&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;25.75&lt;/em&gt; to &lt;em&gt;26.52&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Comparing the MySQL settings on &lt;a class="wiki" href="http://localhost:8080/trac/wiki/NewLiveServer"&gt;wiki:NewLiveServer&lt;/a&gt; and &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer"&gt;wiki:PenguinServer&lt;/a&gt;.
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;th&gt; Variable &lt;/th&gt;&lt;th&gt; Puffin &lt;/th&gt;&lt;th&gt; Quince
&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; key_buffer &lt;/td&gt;&lt;td style="text-align: center"&gt;  16M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  256M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; max_allowed_packet &lt;/td&gt;&lt;td style="text-align: center"&gt;  16M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  64M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; max_connections  &lt;/td&gt;&lt;td style="text-align: center"&gt;  100  &lt;/td&gt;&lt;td style="text-align: center"&gt;  20
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; table_cache  &lt;/td&gt;&lt;td style="text-align: center"&gt;  64  &lt;/td&gt;&lt;td style="text-align: center"&gt;  1028
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; query_cache_limit  &lt;/td&gt;&lt;td style="text-align: center"&gt;  1M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  256M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; query_cache_size  &lt;/td&gt;&lt;td style="text-align: center"&gt;  16M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  64M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; sort_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  1M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; read_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  1M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; read_rnd_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  64M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; myisam_sort_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  32M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; table_open_cache  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  4096
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; join_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  24576K
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; tmp_table_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  128M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; max_heap_table_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  128M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_buffer_pool_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  256M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_additional_mem_pool_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  20M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_data_home_dir  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  /var/lib/mysql/ibdata
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_data_file_path  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  ibdata1:1G:autoextend:max:12G
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_log_file_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  64M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_log_buffer_size  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  8M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_log_group_home_dir  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  /var/lib/mysql/ibdata
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_flush_log_at_trx_commit  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  1
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; innodb_lock_wait_timeout  &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  50
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
Check to see what suggestions we can get from &lt;a class="ext-link" href="http://mysqltuner.com/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://mysqltuner.com/&lt;/a&gt;
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /usr/local/bin
wget --no-check-certificate https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
perl mysqltuner.pl
 &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 150)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 65
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 45d 23h 59m 59s (1M q [0.419 qps], 84K conn, TX: 15B, RX: 2B)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 58.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 463.8M (22% of installed RAM)
[OK] Slow queries: 0% (28/1M)
[OK] Highest usage of available connections: 7% (11/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/290.5M
[OK] Key buffer hit rate: 99.8% (110M cached / 256K reads)
[OK] Query cache efficiency: 25.0% (304K cached / 1M selects)
[!!] Query cache prunes per day: 366
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 71K sorts)
[OK] Temporary tables created on disk: 17% (25K on disk / 145K total)
[OK] Thread cache hit rate: 99% (17 created / 84K connections)
[!!] Table cache hit rate: 0% (64 open / 32K opened)
[OK] Open file limit used: 3% (33/1K)
[OK] Table locks acquired immediately: 99% (1M immediate / 1M locks)
[!!] InnoDB data size / buffer pool: 23.7M/8.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    query_cache_size (&amp;gt; 16M)
    table_cache (&amp;gt; 64)
    innodb_buffer_pool_size (&amp;gt;= 23M)
&lt;/pre&gt;&lt;p&gt;
So following these suggestions, the database were backed up using ninjahelper and then a bash script to run "OPTIMIZE TABLE tablename" on every table in every database was written and run.
&lt;/p&gt;
&lt;p&gt;
And the following variables were changed as suggested:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#query_cache_size        = 16M
query_cache_size        = 32M
#table_cache            = 64
table_cache            = 128
innodb_buffer_pool_size = 64M
&lt;/pre&gt;&lt;p&gt;
And mysql was restarted, it would be worth running the perl script again tomorrow to see what it suggests.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Wed, 30 Jan 2013 22:37:09 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:40</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:40</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.45&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;26.52&lt;/em&gt; to &lt;em&gt;26.97&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Comparing php settings on &lt;a class="wiki" href="http://localhost:8080/trac/wiki/NewLiveServer"&gt;wiki:NewLiveServer&lt;/a&gt; and &lt;a class="wiki" href="http://localhost:8080/trac/wiki/PenguinServer"&gt;wiki:PenguinServer&lt;/a&gt; first for the command line options, &lt;tt&gt;/etc/php5/cli/php.ini&lt;/tt&gt;:
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;th&gt; Variable &lt;/th&gt;&lt;th style="text-align: center"&gt;  Puffin  &lt;/th&gt;&lt;th style="text-align: center"&gt;  Quince
&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; serialize_precision &lt;/td&gt;&lt;td style="text-align: center"&gt;  17  &lt;/td&gt;&lt;td style="text-align: center"&gt;  100
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; memory_limit &lt;/td&gt;&lt;td style="text-align: center"&gt;  -1  &lt;/td&gt;&lt;td style="text-align: center"&gt;  512M
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
The following values in &lt;tt&gt;/etc/php5/cli/php.ini&lt;/tt&gt; were changed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;;serialize_precision = 17
serialize_precision = 100
;memory_limit = -1
memory_limit = 512M
&lt;/pre&gt;&lt;p&gt;
Comparing &lt;tt&gt;/etc/php5/fpm/php.ini&lt;/tt&gt; on penguin and &lt;tt&gt;/etc/php5/apache2/php.ini&lt;/tt&gt; on quince:
&lt;/p&gt;
&lt;table class="wiki"&gt;
&lt;tr&gt;&lt;th&gt; Variable &lt;/th&gt;&lt;th style="text-align: center"&gt;  Penguin  &lt;/th&gt;&lt;th style="text-align: center"&gt;  Quince
&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; expose_php &lt;/td&gt;&lt;td style="text-align: center"&gt;  on  &lt;/td&gt;&lt;td style="text-align: center"&gt;  off
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; max_execution_time &lt;/td&gt;&lt;td style="text-align: center"&gt;  30  &lt;/td&gt;&lt;td style="text-align: center"&gt;  60
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; max_input_time &lt;/td&gt;&lt;td style="text-align: center"&gt;  60  &lt;/td&gt;&lt;td style="text-align: center"&gt;  120
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; memory_limit &lt;/td&gt;&lt;td style="text-align: center"&gt;  128M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  256M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; error_reporting &lt;/td&gt;&lt;td style="text-align: center"&gt;  E_ALL &amp;amp; ~E_DEPRECATED  &lt;/td&gt;&lt;td style="text-align: center"&gt;  E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; post_max_size &lt;/td&gt;&lt;td style="text-align: center"&gt;  8M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  40M
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; default_charset &lt;/td&gt;&lt;td&gt;  &lt;/td&gt;&lt;td style="text-align: center"&gt;  "utf-8"
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; upload_max_filesize &lt;/td&gt;&lt;td style="text-align: center"&gt;  2M  &lt;/td&gt;&lt;td style="text-align: center"&gt;  24M
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;
The following variables in &lt;tt&gt;/etc/php5/fpm/php.ini&lt;/tt&gt; were changed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;;max_execution_time = 30
max_execution_time = 60
;max_input_time = 60
max_input_time = 120
;memory_limit = 128M
memory_limit = 256M
;post_max_size = 8M
post_max_size = 125M
;upload_max_filesize = 2M
upload_max_filesize = 100M
&lt;/pre&gt;&lt;p&gt;
And &lt;tt&gt;/etc/init.d/php5-fpm&lt;/tt&gt; was restarted.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 05 Feb 2013 13:21:33 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:41</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:41</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;3.0&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;26.97&lt;/em&gt; to &lt;em&gt;29.97&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Replying to &lt;a href="http://localhost:8080/trac/ticket/470#comment:35" title="Comment 35 for Ticket #470"&gt;chris&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
HTTPS issues:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
This server is vulnerable to the CRIME attack.
Chain issues         Contains anchor
Compression         Yes   INSECURE (more info)
Session resumption         No (IDs assigned but not accepted)
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://www.ssllabs.com/ssltest/analyze.html?d=wiki.transitionnetwork.org&amp;amp;s=81.95.52.111"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://www.ssllabs.com/ssltest/analyze.html?d=wiki.transitionnetwork.org&amp;amp;s=81.95.52.111&lt;/a&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;
Nginx settings from &lt;a class="ext-link" href="http://drupalcode.org/project/barracuda.git/commitdiff/fc1eb4288afca054615627c688d7219310107f76"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;BOA&lt;/a&gt; were copied and the following:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4-SHA:HIGH!ADH:!SSLv2:!aNULL;
&lt;/pre&gt;&lt;p&gt;
Was changed to:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  RC4:HIGH:!aNULL:!MD5;
&lt;/pre&gt;&lt;p&gt;
In all the files in &lt;tt&gt;/etc/nginx/sites-available/&lt;/tt&gt;, however there was still the issue of the &lt;a class="ext-link" href="https://community.qualys.com/blogs/securitylabs/2012/09/14/crime-information-leakage-attack-against-ssltls"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;CRIME vulnerability&lt;/a&gt; -- this is caused by the combination of gzipped data and ssl so this section of config from &lt;tt&gt;/etc/nginx/nginx.conf&lt;/tt&gt;, which did apply to all sites:
&lt;/p&gt;
&lt;pre class="wiki"&gt;       gzip on;
       gzip_disable "msie6";
       gzip_vary on;
       gzip_proxied any;
       gzip_comp_level 6;
       gzip_buffers 16 8k;
       gzip_http_version 1.1;
       # text/html isn't needed in the following list for some reason
       gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
&lt;/pre&gt;&lt;p&gt;
Was put into a separate file and just included for the non-ssl server sections, this was then tested using &lt;tt&gt;ab&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ab -n 1 -v 4 -H "Accept-Encoding: gzip" http://wiki.transitionnetwork.org/Main_Page
&lt;/pre&gt;&lt;p&gt;
But that didn't work as Apache bench uses HTTP 1.0 not 1.1, so it was tested using &lt;tt&gt;wget&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;wget --server-response --header="Accept-Encoding: gzip" -O /dev/null http://wiki.transitionnetwork.org/Main_Page
&lt;/pre&gt;&lt;p&gt;
But that also didn't work, not sure why, so the &lt;a class="ext-link" href="https://addons.mozilla.org/en-us/firefox/addon/live-http-headers/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;Firefox Live HTTP Headers&lt;/a&gt; plugin was used and this shows that content is being sent gzipped, this is the config used:
&lt;/p&gt;
&lt;pre class="wiki"&gt;# only include this in http sites, see
# https://community.qualys.com/blogs/securitylabs/2012/09/14/crime-information-leakage-attack-against-ssltls
# see
# http://www.howtoforge.com/how-to-save-traffic-with-nginxs-httpgzipmodule-debian-squeeze
gzip on;
#gzip_disable "msie6";
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_vary on;
gzip_proxied any;
# 1 to 9, 9 is maximum
gzip_comp_level 9;
gzip_buffers 32 16k;
gzip_http_version 1.1;
# text/html isn't needed in the following list for some reason
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
&lt;/pre&gt;&lt;p&gt;
However this didn't solve the CRIME issue -- it turns out that the issue is &lt;a class="ext-link" href="https://twitter.com/nginxorg/status/247781188457082880"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;the version on Nginx&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote class="citation"&gt;
&lt;p&gt;
Details on the CRIME attack &lt;a class="ext-link" href="http://isecpartners.com/blog/2012/9/14/details-on-the-crime-attack.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://isecpartners.com/blog/2012/9/14/details-on-the-crime-attack.html&lt;/a&gt; … SSL comp is disabled in nginx since 1.3.2 and 1.2.2, SPDY comp can be configured/turned off
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
And we have:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -p nginx | grep Version
Version: 1.2.1-2~bpo60+1
&lt;/pre&gt;&lt;p&gt;
This was solved by fixing the apt pinning problem --  Pin-Priority was set to 1001 in &lt;tt&gt;/etc/apt/preferences.d/backports.pref&lt;/tt&gt; so it now contains:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: gawk geoip-database libcairo2 libfreetype6 libgeoip1 liblog-dispatch-perl libnet-server-perl libpixman-1-0 liburi-perl libxfont1 munin munin-common munin-doc munin-node munin-plugins-core munin-plugins-extra nginx nginx-common nginx-full python-babel trac x11-common
Pin: release o=backports
Pin-Priority: 1001
&lt;/pre&gt;&lt;p&gt;
The following packages were upgraded to newer versions:
&lt;/p&gt;
&lt;pre class="wiki"&gt;munin-common munin-doc munin-plugins-core nginx nginx-common nginx-full
&lt;/pre&gt;&lt;p&gt;
And now we have:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -p nginx | grep Version
Version: 1.2.6-1~dotdeb.0
&lt;/pre&gt;&lt;p&gt;
I don't understand why nginx from dotdeb has been pulled in, we had this for that repo, &lt;tt&gt;/etc/apt/preferences.d/dotdeb.pref&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: php-pear php5-cli php5-common php5-fpm php5-mysql php5
Pin: release o=packages.dotdeb.org
Pin-Priority: 990
&lt;/pre&gt;&lt;p&gt;
And this, &lt;tt&gt;/etc/apt/preferences.d/backports.pref&lt;/tt&gt; for backports:
&lt;/p&gt;
&lt;pre class="wiki"&gt;Package: gawk geoip-database libcairo2 libfreetype6 libgeoip1 liblog-dispatch-perl libnet-server-perl libpixman-1-0 liburi-perl libxfont1 munin munin-common munin-doc munin-node munin-plugins-core munin-plugins-extra nginx nginx-common nginx-full python-babel trac x11-common
Pin: release o=backports
Pin-Priority: 1001
&lt;/pre&gt;&lt;p&gt;
I need to re-read &lt;a class="ext-link" href="http://wiki.debian.org/AptPreferences"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.debian.org/AptPreferences&lt;/a&gt; -- I still don't fully understand pinning, but using the nginx from dotdeb is OK so this isn't urgent.
&lt;/p&gt;
&lt;p&gt;
There is the "Chain issues: Contains anchor" warning, but this &lt;a class="ext-link" href="http://security.stackexchange.com/questions/24561/ssltest-chain-issues-contains-anchor"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;isn't worth worrying about&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
And there was also a "Session resumption         No (IDs assigned but not accepted)" warning, this was solved by following &lt;a class="ext-link" href="http://forum.nginx.org/read.php?2,152294,152294#msg-152294"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;this thread&lt;/a&gt; and &lt;a class="ext-link" href="http://wiki.nginx.org/HttpSslModule#ssl_session_cache"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;these instructions&lt;/a&gt; and adding the following to the main http block:
&lt;/p&gt;
&lt;pre class="wiki"&gt;ssl_session_cache shared:SSL:10m;
&lt;/pre&gt;&lt;p&gt;
So now we have &lt;a class="ext-link" href="https://www.ssllabs.com/ssltest/analyze.html?d=wiki.transitionnetwork.org"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;a "A" overall rating&lt;/a&gt; for the HTTPS configuration \o/
&lt;/p&gt;
&lt;p&gt;
Jim is keen on using Collectd rather than Munin, so it the server was removed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;dpkg -r munin
&lt;/pre&gt;&lt;p&gt;
However using the node doesn't have a big overhead so that has been set to generate stats here:
&lt;/p&gt;
&lt;p&gt;
&lt;a class="ext-link" href="https://ecodissident.net/munin/webarch.net/penguin.webarch.net/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ecodissident.net/munin/webarch.net/penguin.webarch.net/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The exim plugin was deiabled and mysql and nginx ones were enabled, the nginx ones needed libwww-perl installing.
&lt;/p&gt;
&lt;p&gt;
For php-fpm the &lt;a class="ext-link" href="http://tjstein.com/2010/09/php-fpm-plugin-suite-for-munin/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;plugin here&lt;/a&gt; was installed:
&lt;/p&gt;
&lt;pre class="wiki"&gt;cd /usr/share/munin/plugins
git clone git://github.com/tjstein/php5-fpm-munin-plugins.git
chmod +x php5-fpm-munin-plugins/phpfpm_*
&lt;/pre&gt;&lt;p&gt;
The symlinks were created from &lt;tt&gt;/etc/munin/plugins/&lt;/tt&gt; and the following needed adding to the default virtual host, &lt;tt&gt;/etc/nginx/sites-available/penguin&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        location ~ ^/(status|ping)$ {
                fastcgi_pass unix:/var/run/php5-fpm/phpfpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
                include fastcgi_params;
                access_log off;
                allow 127.0.0.1;
                deny all;
        }
&lt;/pre&gt;&lt;p&gt;
The &lt;tt&gt;phpfpm_average&lt;/tt&gt; and &lt;tt&gt;phpfpm_processes&lt;/tt&gt; plugins were fixed by hardcoding the process:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#PHP_BIN=${phpbin-"php5-fpm"}
PHP_BIN="php-fpm"
&lt;/pre&gt;&lt;p&gt;
And in &lt;tt&gt;phpfpm_memory&lt;/tt&gt;:
&lt;/p&gt;
&lt;pre class="wiki"&gt;#my $PHP_BIN = exists $ENV{'phpbin'} ? $ENV{'phpbin'} : "php5-fpm";
my $PHP_BIN = "php-fpm";
&lt;/pre&gt;&lt;p&gt;
The perl package &lt;tt&gt;libcache-cache-perl&lt;/tt&gt; was needed for the &lt;tt&gt;mysql_&lt;/tt&gt; plugins.
&lt;/p&gt;
&lt;p&gt;
The &lt;tt&gt;/usr/local/bin/mysqltuner.pl&lt;/tt&gt; script was run again:
&lt;/p&gt;
&lt;pre class="wiki"&gt; &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 150)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 67
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 5d 15h 15m 53s (1M q [2.114 qps], 50K conn, TX: 9B, RX: 730M)
[--] Reads / Writes: 80% / 20%
[--] Total buffers: 130.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 535.8M (26% of installed RAM)
[OK] Slow queries: 0% (23/1M)
[OK] Highest usage of available connections: 7% (11/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/285.3M
[OK] Key buffer hit rate: 99.8% (63M cached / 151K reads)
[OK] Query cache efficiency: 25.8% (186K cached / 722K selects)
[!!] Query cache prunes per day: 366
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 55K sorts)
[OK] Temporary tables created on disk: 14% (12K on disk / 89K total)
[OK] Thread cache hit rate: 99% (11 created / 50K connections)
[!!] Table cache hit rate: 0% (128 open / 22K opened)
[OK] Open file limit used: 13% (134/1K)
[OK] Table locks acquired immediately: 99% (701K immediate / 701K locks)
[OK] InnoDB data size / buffer pool: 23.6M/64.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    query_cache_size (&amp;gt; 32M)
    table_cache (&amp;gt; 128)
&lt;/pre&gt;&lt;p&gt;
And the following variables in &lt;tt&gt;/etc/mysql/my.cnf&lt;/tt&gt; were changed and mysql restarted:
&lt;/p&gt;
&lt;pre class="wiki"&gt;query_cache_size        = 64M
table_cache            = 256
&lt;/pre&gt;&lt;p&gt;
Regarding collectd it looks like generating stats from things like php-fpm would need some work, but there is a &lt;a class="ext-link" href="https://collectd.org/wiki/index.php/Plugin:cURL-JSON/phpfpm"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;example&lt;/a&gt; of how to do it. Personally I think we should probably stick with Munin for now.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 05 Feb 2013 13:34:43 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:42</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:42</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.16&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;29.97&lt;/em&gt; to &lt;em&gt;30.13&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The &lt;tt&gt;multips_memory&lt;/tt&gt; plugin was enabled to track memory usage on the following processes:
&lt;/p&gt;
&lt;pre class="wiki"&gt;[multips_memory]
env.names php5-fpm munin-node nginx mysql tracd php-cli
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 05 Feb 2013 22:18:12 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:43</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:43</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.5&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;30.13&lt;/em&gt; to &lt;em&gt;30.63&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
Looking at some page load time stats from sites on penguin on &lt;a class="ext-link" href="http://tools.pingdom.com/fpt/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://tools.pingdom.com/fpt/&lt;/a&gt; the fact that the Piwik webbug is only being served up via https really slows things down, so I have changed the nginx settings so that for http sites the bug can be loaded via http, https sites will still get it via https.
&lt;/p&gt;
&lt;p&gt;
Changing this has reduced to total page load time for &lt;a class="ext-link" href="http://wiki.transitionnetwork.org/Main_Page"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://wiki.transitionnetwork.org/Main_Page&lt;/a&gt; from 3.8 seconds to 1.4 seconds.
&lt;/p&gt;
&lt;p&gt;
Looking at the stats for &lt;a class="ext-link" href="http://www.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://www.transitionnetwork.org/&lt;/a&gt; it's the size of the front page has doubled in the last year, it was around 0.5M and it's now 1.1M, but it's being served up in 0.6 of a second when testing from Amsterdam, which isn't bad.
&lt;/p&gt;
&lt;p&gt;
I think the migration of sites to can not be said to be more-or-less done, one outstanding issue is the server resources -- it's got more than it needs, look at the CPU usage:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://ecodissident.net/munin/webarch.net/penguin.webarch.net/cpu.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ecodissident.net/munin/webarch.net/penguin.webarch.net/cpu.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
Load:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://ecodissident.net/munin/webarch.net/penguin.webarch.net/load.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ecodissident.net/munin/webarch.net/penguin.webarch.net/load.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And memory usage:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://ecodissident.net/munin/webarch.net/penguin.webarch.net/memory.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://ecodissident.net/munin/webarch.net/penguin.webarch.net/memory.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
It's currently a 2GB VPS and it could be easilly dropped down to a 1.5GB VPS, server specs are here:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://webarch.net/virtual-servers"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://webarch.net/virtual-servers&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Thu, 07 Feb 2013 18:26:40 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:44</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:44</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;30.63&lt;/em&gt; to &lt;em&gt;30.88&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The changes to the Piwik config in &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/470#comment:43" title="maintenance: Penguin install and configuration (closed: fixed)"&gt;ticket:470#comment:43&lt;/a&gt; overlooked the requirement for the login to use HTTPS, so this line was added to the port 80 server configuration:
&lt;/p&gt;
&lt;pre class="wiki"&gt;        # Redirect front page to HTTPS
        rewrite !^/piwik\.*$ https://stats.transitionnetwork.org$request_uri? permanent;
&lt;/pre&gt;&lt;p&gt;
This means that requests for &lt;a class="ext-link" href="http://stats.transitionnetwork.org/piwik.js"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://stats.transitionnetwork.org/piwik.js&lt;/a&gt; and &lt;a class="ext-link" href="http://stats.transitionnetwork.org/piwik.php"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://stats.transitionnetwork.org/piwik.php&lt;/a&gt; (both used for tracking) won't be redirected but all other requests will be.
&lt;/p&gt;
&lt;p&gt;
The mysqltuning script was run again:
&lt;/p&gt;
&lt;pre class="wiki"&gt; perl /usr/local/bin/mysqltuner.pl
 &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 150)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 66
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 2d 5h 8m 29s (422K q [2.206 qps], 29K conn, TX: 3B, RX: 308M)
[--] Reads / Writes: 76% / 24%
[--] Total buffers: 162.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 567.8M (27% of installed RAM)
[OK] Slow queries: 0% (8/422K)
[OK] Highest usage of available connections: 7% (12/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/290.5M
[OK] Key buffer hit rate: 99.8% (24M cached / 47K reads)
[OK] Query cache efficiency: 29.7% (81K cached / 274K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 25K sorts)
[OK] Temporary tables created on disk: 12% (5K on disk / 41K total)
[OK] Thread cache hit rate: 99% (14 created / 29K connections)
[!!] Table cache hit rate: 9% (256 open / 2K opened)
[OK] Open file limit used: 27% (279/1K)
[OK] Table locks acquired immediately: 99% (267K immediate / 267K locks)
[OK] InnoDB data size / buffer pool: 23.6M/64.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    table_cache (&amp;gt; 256)
&lt;/pre&gt;&lt;p&gt;
The table_cache was increased to 2048.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Fri, 08 Feb 2013 11:27:21 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:45</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:45</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;30.88&lt;/em&gt; to &lt;em&gt;31.13&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
To help keep track of the usage of penguin I have added piwik tracking to the following sites:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://tech.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://tech.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://static.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://static.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2010.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2010.archive.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/&lt;/a&gt; (but not the &lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/forum/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/forum/&lt;/a&gt; part of the site yet)
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="http://penguin.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://penguin.transitionnetwork.org/&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
And gemoved GA from &lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://2011.archive.transitionnetwork.org/&lt;/a&gt; I hope this is OK.
&lt;/p&gt;
&lt;p&gt;
For Trac it was done by creating &lt;tt&gt;/web/tech.transitionnetwork.org/trac/templates/site.html&lt;/tt&gt; containing:
&lt;/p&gt;
&lt;pre class="wiki"&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      xmlns:py="http://genshi.edgewall.org/"
      py:strip=""&amp;gt;
  &amp;lt;body py:match="body" py:attrs="select('@*')"&amp;gt;
    ${select('*|text()')}
    &amp;lt;!--! Add site-specific footer --&amp;gt;
    &amp;lt;div id="sitefooter"&amp;gt;
&amp;lt;!-- Piwik --&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
var pkBaseURL = (("https:" == document.location.protocol) ? "https://stats.transitionnetwork.org/" : "http://stats.transitionnetwork.org/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
&amp;lt;/script&amp;gt;&amp;lt;script type="text/javascript"&amp;gt;
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 7);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
&amp;lt;/script&amp;gt;&amp;lt;noscript&amp;gt;&amp;lt;p&amp;gt;&amp;lt;img src="http://stats.transitionnetwork.org/piwik.php?idsite=7" style="border:0" alt="" /&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/noscript&amp;gt;
&amp;lt;!-- End Piwik Tracking Code --&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;p&gt;
Following the notes here &lt;a class="ext-link" href="http://trac.edgewall.org/wiki/TracInterfaceCustomization#SiteAppearance"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;http://trac.edgewall.org/wiki/TracInterfaceCustomization#SiteAppearance&lt;/a&gt;
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Mon, 11 Feb 2013 10:29:17 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:46</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:46</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.1&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;31.13&lt;/em&gt; to &lt;em&gt;31.23&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I have just added piwik stats to the old &lt;a class="ext-link" href="http://2011.archive.transitionnetwork.org/forum/"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;bbpress forum archive&lt;/a&gt; by adding the tracking code to &lt;tt&gt;/web/2011.archive.transitionnetwork.org/www/forum/bb-templates/kakumei/footer.php&lt;/tt&gt;.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 12 Feb 2013 11:35:39 GMT</pubDate>
      <title>hours, totalhours, description changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:47</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:47</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.25&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;31.23&lt;/em&gt; to &lt;em&gt;31.48&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;
              modified (&lt;a href="/trac/ticket/470?action=diff&amp;amp;version=47"&gt;diff&lt;/a&gt;)
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
The mysqltuning script was run again:
&lt;/p&gt;
&lt;pre class="wiki"&gt;perl /usr/local/bin/mysqltuner.pl
 &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 150)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 67
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 4d 16h 42m 56s (1M q [3.250 qps], 53K conn, TX: 8B, RX: 819M)
[--] Reads / Writes: 80% / 20%
[--] Total buffers: 162.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 567.8M (27% of installed RAM)
[OK] Slow queries: 0% (20/1M)
[OK] Highest usage of available connections: 7% (12/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/294.0M
[OK] Key buffer hit rate: 99.8% (68M cached / 126K reads)
[OK] Query cache efficiency: 26.6% (252K cached / 951K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 70K sorts)
[OK] Temporary tables created on disk: 14% (17K on disk / 121K total)
[OK] Thread cache hit rate: 99% (22 created / 53K connections)
[!!] Table cache hit rate: 13% (483 open / 3K opened)
[OK] Open file limit used: 12% (530/4K)
[OK] Table locks acquired immediately: 99% (918K immediate / 918K locks)
[OK] InnoDB data size / buffer pool: 23.7M/64.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    table_cache (&amp;gt; 2048)
&lt;/pre&gt;&lt;p&gt;
And the &lt;tt&gt;table_cache&lt;/tt&gt; in &lt;tt&gt;/etc/mysql/my.cnf&lt;/tt&gt; was doubled to &lt;tt&gt;4096&lt;/tt&gt; and mysql was restarted.
&lt;/p&gt;
&lt;p&gt;
This probably isn't worth increasing further (and perhaps is now too high) &lt;a class="ext-link" href="http://www.geeksww.com/tutorials/database_management_systems/mysql/installation/mysql_tablecache_informationschema_and_open_files_limit.php"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;setting it too high can make things slower&lt;/a&gt;, currently we have 263 tables in total:
&lt;/p&gt;
&lt;pre class="wiki"&gt;mysql information_schema
mysql&amp;gt; SELECT COUNT(*) FROM tables;
+----------+
| COUNT(*) |
+----------+
|      263 |
+----------+
1 row in set (0.01 sec)
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 19 Mar 2013 12:08:20 GMT</pubDate>
      <title>hours, totalhours changed</title>
      <link>http://localhost:8080/trac/ticket/470#comment:48</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:48</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.1&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;31.48&lt;/em&gt; to &lt;em&gt;31.58&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I ran the mysqltuning script again:
&lt;/p&gt;
&lt;pre class="wiki"&gt; perl /usr/local/bin/mysqltuner.pl
 &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 152)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 68
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 35d 0h 46m 6s (14M q [4.759 qps], 399K conn, TX: 63B, RX: 7B)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 162.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 567.8M (27% of installed RAM)
[OK] Slow queries: 0% (155/14M)
[OK] Highest usage of available connections: 8% (13/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/320.3M
[OK] Key buffer hit rate: 99.8% (649M cached / 1M reads)
[!!] Query cache efficiency: 18.1% (2M cached / 11M selects)
[!!] Query cache prunes per day: 970
[OK] Sorts requiring temporary tables: 0% (5 temp sorts / 677K sorts)
[OK] Temporary tables created on disk: 12% (130K on disk / 1M total)
[OK] Thread cache hit rate: 99% (46 created / 399K connections)
[!!] Table cache hit rate: 2% (488 open / 18K opened)
[OK] Open file limit used: 6% (536/8K)
[OK] Table locks acquired immediately: 99% (11M immediate / 11M locks)
[OK] InnoDB data size / buffer pool: 23.5M/64.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    query_cache_limit (&amp;gt; 1M, or use smaller result sets)
    query_cache_size (&amp;gt; 64M)
    table_cache (&amp;gt; 4096)
&lt;/pre&gt;&lt;p&gt;
And I dramatically increased these settings as there is RAM to spare, see:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a class="ext-link" href="https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/memory.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/memory.html&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a class="ext-link" href="https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/multips_memory.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/multips_memory.html&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;pre class="wiki"&gt;query_cache_limit       = 24M
query_cache_size        = 512M
&lt;/pre&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Tue, 16 Apr 2013 11:51:10 GMT</pubDate>
      <title>hours, status, totalhours changed; resolution set</title>
      <link>http://localhost:8080/trac/ticket/470#comment:49</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:49</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;hours&lt;/strong&gt;
                changed from &lt;em&gt;0.0&lt;/em&gt; to &lt;em&gt;0.22&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;
                changed from &lt;em&gt;new&lt;/em&gt; to &lt;em&gt;closed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;resolution&lt;/strong&gt;
                set to &lt;em&gt;fixed&lt;/em&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;totalhours&lt;/strong&gt;
                changed from &lt;em&gt;31.58&lt;/em&gt; to &lt;em&gt;31.8&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;p&gt;
I ran the mysqltuning script again:
&lt;/p&gt;
&lt;pre class="wiki"&gt; perl /usr/local/bin/mysqltuner.pl
 &amp;gt;&amp;gt;  MySQLTuner 1.2.0 - Major Hayden &amp;lt;major@mhtx.net&amp;gt;
 &amp;gt;&amp;gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &amp;gt;&amp;gt;  Run with '--help' for additional options and output filtering
[OK] Logged in using credentials from debian maintenance account.
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.1.66-0+squeeze1
[OK] Operating on 64-bit architecture
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 154)
[--] Data in InnoDB tables: 23M (Tables: 62)
[!!] Total fragmented tables: 68
-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 27d 22h 58m 35s (12M q [5.375 qps], 262K conn, TX: 52B, RX: 6B)
[--] Reads / Writes: 86% / 14%
[--] Total buffers: 1.1G global + 2.7M per thread (30 max threads)
[OK] Maximum possible memory usage: 1.2G (58% of installed RAM)
[OK] Slow queries: 0% (151/12M)
[OK] Highest usage of available connections: 40% (12/30)
[OK] Key buffer size / total MyISAM indexes: 512.0M/330.4M
[OK] Key buffer hit rate: 99.9% (553M cached / 673K reads)
[OK] Query cache efficiency: 21.4% (2M cached / 10M selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (1 temp sorts / 543K sorts)
[OK] Temporary tables created on disk: 14% (114K on disk / 810K total)
[OK] Thread cache hit rate: 99% (23 created / 262K connections)
[!!] Table cache hit rate: 2% (298 open / 14K opened)
[OK] Open file limit used: 3% (265/8K)
[OK] Table locks acquired immediately: 99% (9M immediate / 9M locks)
[OK] InnoDB data size / buffer pool: 23.2M/64.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    table_cache (&amp;gt; 4096)
&lt;/pre&gt;&lt;p&gt;
Due to the comment on &lt;a class="closed ticket" href="http://localhost:8080/trac/ticket/470#comment:47" title="maintenance: Penguin install and configuration (closed: fixed)"&gt;ticket:470#comment:47&lt;/a&gt; it's probably not worth increasing the size of the table_cache
&lt;/p&gt;
&lt;p&gt;
MySQL memory use appears to be stable at around 350MB, see &lt;a class="ext-link" href="https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/multips_memory.html"&gt;&lt;span class="icon"&gt;​&lt;/span&gt;https://penguin.transitionnetwork.org/munin/transitionnetwork.org/penguin.transitionnetwork.org/multips_memory.html&lt;/a&gt; this seems reasonable with nginx and php-fpm using around 150MB each and server server having 2GB -- there is plenty of slack to cope with load spikes.
&lt;/p&gt;
&lt;p&gt;
I think this ticket can now be closed.
&lt;/p&gt;
      </description>
      <category>Ticket</category>
    </item><item>
      
        <dc:creator>chris</dc:creator>

      <pubDate>Thu, 09 May 2013 11:33:27 GMT</pubDate>
      <title>milestone set</title>
      <link>http://localhost:8080/trac/ticket/470#comment:50</link>
      <guid isPermaLink="false">http://localhost:8080/trac/ticket/470#comment:50</guid>
      <description>
          &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;milestone&lt;/strong&gt;
                set to &lt;em&gt;Maintenance&lt;/em&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
      </description>
      <category>Ticket</category>
    </item>
 </channel>
</rss>