Pages Menu
TwitterRss
Categories Menu

Posted on 5 Déc, 2014 in Astuces, Commandes, Debian, libre et opensource, Linux, Ordi, WebTech |

Installer Siwapp sur Nginx

C’est une petite histoire à chaque fois que je le réinstalle alors je note ça une bonne fois pour toute.

Siwapp c’est quoi?

Une application web open source pour créer et administrer des factures de la manière la plus simple et directe.

Mais encore?

Simple & directe Elle fait seulement une chose, mais la fait très bien.

Confortable Tout est placé où vous vous attendez à le trouver.

Utile Administrez des factures avec des numéros de série différents (comme factures de rectification, par exemple)

Jolie Obtenez des versions pdf imprimables de vos factures avec un look professionnel.

Flexible Sauvez les ébauches de vos factures et continuez de les éditer plus tard.

Orientée productivité Produisez automatiquement des factures de manière périodique.

N’importe où Facturez où que vous soyez grâce à une connexion internet utilisant un accès sécurisé et restreint.

Sécurisée Il remplit toutes les conditions en terme de sécurité et protection de la vie privée, et vous permet de sauvegarder vos données sur votre ordinateur à tout moment.

Soutenue Il a une communauté grandissante des programmeurs travaillant continuellement afin d’ajouter de nouvelles améliorations.

Et pour couronner le tout, un des arguments principaux: c’est Libre!

L’installation de siwapp bug sur nginx uniquement à cause de quelques lignes de code, on va s’en séparer…

Perso je pars sur une installation de nginx/mysql/fpm via easyengine mais ma configuration est adaptable à toute installation similaire (la seule partie appartenant à easyengine est la ligne )

D’abord au niveau de l’archive téléchargée
Pour installer siwapp rendez vous dans un dossier avec les droits d’écriture

[code lang= »shell » title= » »]cd /home/moi
[/code]

Télécharger la dernière archive du facturier libre:

On l’extrait dans la foulée et on le déplace si besoin là où pointera notre serveur nginx (suivant votre directive « root » dans le fichier édité juste avant, l’important ici étant de bien faire pointer le serveur sur le dossier « web » extrait de l’archive):

[code lang= »shell » title= » »]
wget -nc http://www.siwapp.org/downloads/siwapp_0_4_1.beta.tar.gz
tar -xvzf siwapp_0_4_1.beta.tar.gz
mv siwapp/* /var/www/gestion/htdocs/
rm siwapp_0_4_1.beta.tar.gz
rmdir siwapp/
[/code]

Installer Siwapp:

Ensuite on va éditer les quelques lignes qui posent problème dans le fichier web/preinstaller_code.php en supprimant/mettant en commentaire les lignes 59 à 62 qui ne font que vérifier le bon fonctionnement de la ré-écriture du serveur:

[code lang= »php » toolbar= »false » title= » »]
// cache write permissions
$wrong[‘cache’] = !is_writable($options[‘sf_root_dir’].DIRECTORY_SEPARATOR.
‘cache’);
// check for mod_rewrite. test_rewrite1.txt should be rewrited to
// test_rewrite2.txt
// $installer_url = ‘http://’.$_SERVER[‘SERVER_NAME’].$_SERVER[‘REQUEST_URI’];
// $rewrite_url = substr($installer_url,0,strrpos($installer_url,’/’)+1).
// ‘test_rewrite1.txt’;
// $wrong[‘rewrite’] = strpos(file_get_contents($rewrite_url), ‘test_rewrite2’)
// === false;

return $wrong;
}
[/code]

Pour s’assurer du bon fonctionnement de l’installeur on va attribuer les droits d’écriture au serveur web sur les dossiers auxquels il est censé avoir accès:
[code lang= »shell » title= » »]

sudo chown -R /var/www/gestion.mondomaine.org/htdocs/web

sudo chmod -R 775 /var/www/gestion.mondomaine.org/htdocs/web

sudo chown -R /var/www/gestion.mondomaine.org/htdocs/cache

sudo chmod -R 775 /var/www/gestion.mondomaine.org/htdocs/cache
[/code]

Maintenant au niveau du serveur web lui-même, on édite/crée le fichier du site en question (généralement dans /etc/nginx/sites-available/)

C’est essentiellement les directives « set » qui se différencient des directives habituellement employées…
Voici mon fichier[code lang= »shell » collapse= »true » title= »/etc/nginx/sites-available/gestion.mondomaine.org »]
server {

server_name gestion.mondomaine.org;

access_log /var/log/nginx/gestion.access.log rt_cache;
error_log /var/log/nginx/gestion.error.log;

root /var/www/gestion.mondomaine.org/htdocs/web;
index index.php index.htm index.html;

location ~ \.php($|/) {
set $script $uri;
set $path_info "";

if ($uri ~ "^(.+\.php)(/.*)") {
set $script $1;
set $path_info $2;

}

include /etc/nginx/fastcgi_params;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME $document_root$script;
fastcgi_param SCRIPT_NAME $script;

}

include common/locations.conf;

}
[/code]

Si vous n’avez pas installé le serveur via easyengine, vous devez modifier la ligne ci-dessus:
[code lang= »shell » title= » »]fastcgi_pass php;[/code]
en:
[code lang= »shell » title= » »]fastcgi_pass 127.0.0.1:9001;
[/code]
Et supprimer la ligne contenant include common/locations.conf;

Si vous avez créé ce fichier il faut vous assuré qu’il sera pris en compte en créant un lien symbolique vers celui-ci:
[code lang= »shell » title= » »]
sudo ln -s /etc/nginx/sites-available/gestion.mondomaine.org /etc/nginx/sites-enable/gestion.mondomaine.org
[/code]

Dans tous les cas il faut redémarrer le serveur web pour que les modifications soient prisent en compte, avec nginx:
[code lang= »shell » title= » »]
sudo service nginx configtest && sudo service nginx restart
[/code]

Normalement vous atterrissez sur votre installation siwapp à l’adresse utilisée plus haut http://gestion.mondomaine.org, après avoir renseigné votre langue préférée, vous obtiendrez une belle page de vérifications: et presque tout est parfait!

installation siwapp sur nginxEnsuite coup classique des applications web le fameux trio utilisateur, mot de passe et nom de base de donnée à créer. Un compte administrateur et voilou!

Comme l’installeur nous le préconise si bien, on sécurise un minimum en supprimant les droits d’écriture sur les fichiers config/databases.yml et web/config.php:
[code lang= »shell » title= » »]sudo chmod 644 /var/www/gestion.mondomaine.org/htdocs/config/databases.yml
sudo chmod 644 /var/www/gestion.mondomaine.org/htdocs/web/config.php[/code]

Après l’installation de Siwapp

Maintenant que notre facturier est installé, il nous revenir à une configuration plus classique pour notre fichier /etc/nginx/sites-available/gestion.mondomaine.org
Voilà ce que le mien donne après re-modification:
[code lang= »shell » collapse= »true » title= »/etc/nginx/sites-available/gestion.mondomaine.org »]
server {

server_name gestion.mondomaine.org;

access_log /var/log/nginx/gestion.access.log rt_cache;
error_log /var/log/nginx/gestion.error.log;

root /var/www/gestion.mondomaine.org/htdocs/web;
index index.php index.htm index.html;

location ~ ^/(index|frontend|frontend_dev|backend|backend_dev)\.php$ {

include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param HTTPS off;
fastcgi_pass php;

}
location / {

index index.php;
try_files $uri /index.php?$args;

}

include /etc/nginx/fastcgi_params;
include common/locations.conf;

}
[/code]
Évidemment un dernier redémarrage du serveur et nous voilà fin prêts à utiliser Siwapp…
[code lang= »shell » title= » »]sudo service nginx configtest && sudo service nginx restart[/code]