SPIP is a publishing system for the Internet in which great importance is attached to collaborative working, to multilingual environments, and to simplicity of use for web authors. SPIP's benefit consists in: * managing a magazine type site i.e. made up mainly of articles and news items inserted in an arborescence of sections nested in each others. * completely separating and distributing three kinds of tasks over various players: the graphic design, the site editorial input through the submission of articles and news items and the site editorial management. * spare the webmaster and all the participants to the life of the site, a number of tedious aspects of web publishing as well as the need to learn lengthy technical skills. SPIP allows you to start creating your sections and articles straight away.
This charm provides an SPIP service. SPIP is a publication blog plateform.
juju deploy mysql juju deploy spip juju add-relation mysql spip juju expose spip
One box deployment
juju deploy mysql juju deploy --to <mysql machine number> spip juju add-relation mysql spip juju expose spip
Associate a floating ip to the spip service.
With a web browser, go to http://your.spip.service.ip/spip/ecrire. Select your site's language and click on Next. The "Connection to your database" Step 1 has already been performed by the charm, click on Next. Do not change the "prefix" setting on the "Choosing your database" Step 2, just click on Next. Fill in the form related to your personal information on Step 3, then click on Next. Step 4 may take some time to run. If it fails, go back to http://your.spip.service.ip/spip/ecrire and perform the same steps. If everything worked all right, you should end up on a page with the following message:
SPIP is now ready for use
You still have to click on the "private area" button. Even if you experience an error message, the spip site should be installed.
Load balancing deployement
There are still several problems to cope with when using Spip behind a load balancer:
Some directories will be shared on an nfs mount point (IMG, plugins and squelettes). As each spip server is unaware of the others, things may not work as expected if two spip machines try to write concurrently on the same data (for example, trying to upload two images at the same time).
Authentication. Each spip server is using some cookies to authenticate users. As each server generate its own set of cookies, any access requiring an authentication may result in generating a new login prompt each time a new Spip server is involved.
If spip was using sessions to manage authentication, a solution could be to use memcached. However, this does not seems to be the case (even with a php.ini configured to use a shared memcached server for the session, several authentication prompts happens).
To work around this problem, cookie authentication is disabled by default in the db-relation-changed hook by setting ignore_remote_user to true in /var/www/spip/config/mes_options.php.
This way, authentication is based on a simple http auth protocol.
Even then, you will have to authenticate at least once on each real SPIP server added as a unit to the spip service.
juju deploy nfs juju deploy mysql juju deploy spip juju deploy haproxy juju set haproxy default_timeouts="queue 7000, connect 7000, client 7000, server 7000" juju add-relation spip mysql juju add-relation nfs spip:nfs juju add-relation spip haproxy juju expose haproxy
Associate a floating ip to the haproxy service
With a web browser, go to http://your.haproxy.service.ip/spip/ecrire. Select your site's language and click on Next. The "Connection to your database" Step 1 has already be performed by the charm, click on Next. Do not change the "prefix" setting on the "Choosing your database" Step 2, just click on Next. Fill the form related to your personal information on Step 3, then click on Next. Step 4 may take some time to run. If it fail, go back to http://your.haproxy.service.ip/spip/ecrire and perform the same steps. If everything worked all right, you should end up on a page with the following message:
SPIP is now ready for use
You still have to click on the "private area" area button. Even if you experience an error message, the spip site should be installed.
Now, you can add some spip units:
juju add-unit spip
By default, the charm deploys the packaged version of spip. If you want to deploy another version, use spip-origin. Currently the only available value is 3.0.5
For example, create a spip.cfg file with the following content:
spip: spip-origin: 3.0.5
And deploy the charm with:
juju deploy --config=spip.cfg spip
- (string) Where to get the sources of spip from. distro (default): from apt-get 3.0.5 : upstream http://files.spip.org/spip/stable/spip-3.0.zip?1352900441