{"id":694,"date":"2011-07-22T09:05:42","date_gmt":"2011-07-22T07:05:42","guid":{"rendered":"http:\/\/www.loligrub.be\/blog\/?p=694"},"modified":"2011-07-24T11:09:34","modified_gmt":"2011-07-24T09:09:34","slug":"piwam-sur-debian-squeeze","status":"publish","type":"post","link":"https:\/\/www.loligrub.be\/blog\/2011\/07\/22\/piwam-sur-debian-squeeze\/","title":{"rendered":"Piwam sur Debian Squeeze"},"content":{"rendered":"<p><a href=\"http:\/\/www.loligrub.be\/blog\/wp-content\/uploads\/2011\/07\/piwam.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-713\" title=\"Logo de Piwam\" src=\"http:\/\/www.loligrub.be\/blog\/wp-content\/uploads\/2011\/07\/piwam.png\" alt=\"Logo de Piwam\" width=\"107\" height=\"116\" \/><\/a>Afin de permettre l&rsquo;utilisation de l&rsquo;outil <a href=\"http:\/\/code.google.com\/p\/piwam\/\" target=\"_blank\">Piwam<\/a> qui est utile pour g\u00e9rer les membres d&rsquo;une association, j&rsquo;ai \u00e9t\u00e9 amen\u00e9 \u00e0 migrer celui-ci de notre ancien h\u00e9bergeur vers le nouveau mais &#8211; petit b\u00e9mol &#8211; Piwam ne fonctionne pas avec PHP5.3 qui est la version install\u00e9e par d\u00e9faut sous Debian Squeeze.<\/p>\n<p><!--more--><\/p>\n<p>Je vais donc suivre l&rsquo;explication donn\u00e9e par le site <a href=\"http:\/\/blog.davejamesmiller.com\/2011\/03\/how-to-install-php-5-2-fastcgi-on-debian-6-0-squeeze\">Dave James Miller<\/a> pour mettre en place PHP5.2 en plus de PHP5.3 .<\/p>\n<h1>Installation<\/h1>\n<p>Toute l&rsquo;explication part du principe que vous ma\u00eetrisez votre syst\u00e8me et que vous vous \u00eates connect\u00e9 en tant que <em>root<\/em>, l&rsquo;utilisateur qui dispose de tous les droits d&rsquo;administration; je n&rsquo;utiliserai donc pas la commande \u00ab\u00a0sudo\u00a0\u00bb durant ce tutoriel.<\/p>\n<h2>Un syst\u00e8me \u00e0 jour<\/h2>\n<p>S&rsquo;assurer que le serveur offrira les derni\u00e8res mises \u00e0 jour :<\/p>\n<p><code>apt-get update<br \/>\napt-get dist-upgrade<br \/>\n<\/code><\/p>\n<h2>Installation de fastcgi<\/h2>\n<p>Pour installer le module fast-cgi tapez la commande suivante :<\/p>\n<p><code>apt-get install libapache2-mod-fastcgi<br \/>\n[...]<br \/>\nEnabling module fastcgi.<br \/>\nRun '\/etc\/init.d\/apache2 restart' to activate new configuration!<br \/>\n:~#<\/code><br \/>\nSi jamais le module ne s&rsquo;active pas durant l&rsquo;installation, tapez la commande suivante :<\/p>\n<p><code>a2enmod actions fastcgi<\/code><\/p>\n<p>Si vous souhaitez profiter imm\u00e9diatement de fastcgi, alors red\u00e9marrez Apache2 sinon attendez la fin de l&rsquo;explication.<\/p>\n<p><code>\/etc\/init.d\/apache2 restart<\/code><\/p>\n<h2>Quelques pr\u00e9requis<\/h2>\n<p>Pour permettre la compilation, plusieurs <em>packages<\/em> sont indispensables :<\/p>\n<p><code>apt-get build-dep php5<br \/>\napt-get install libfcgi-dev<\/code><\/p>\n<blockquote><p>Ces 2 commandes peuvent quelque peu inqui\u00e9ter car elles vont ajouter beaucoup de paquets, dans mon cas 173 nouveaux paquets sont install\u00e9s pour un total de 115Mo, mais cela est n\u00e9cessaire afin de disposer d&rsquo;un environnement de compilation complet, donc rien d&rsquo;exotique et pas de panique&#8230;<\/p><\/blockquote>\n<h1>Compilation<\/h1>\n<h2>Pr\u00e9paration<\/h2>\n<p>Cr\u00e9er un r\u00e9pertoire pouvant au besoin contenir les diff\u00e9rentes versions de PHP5.2 :<\/p>\n<p><code>mkdir -p \/usr\/src\/php5.2\/<br \/>\ncd \/usr\/srv\/php5.2<br \/>\n<\/code><\/p>\n<p>R\u00e9cup\u00e9ration des sources de PHP5.2.17 depuis un miroir Debian situ\u00e9 en Belgique :<\/p>\n<p><code>wget http:\/\/www.php.net\/get\/php-5.2.17.tar.gz\/from\/be.php.net\/mirror -O php-5.2.17.tar.gz<br \/>\n<\/code><\/p>\n<p>D\u00e9compression des sources :<br \/>\n<code><br \/>\ntar -zxf php-5.2.17.tar.gz<br \/>\ncd php-5.2.17<br \/>\n<\/code><\/p>\n<h2>Compilons !<\/h2>\n<p>Commen\u00e7ons par un petit \u00ab\u00a0.\/configure\u00a0\u00bb dans lequel nous indiquons tous les modules que nous souhaitons utiliser dans notre PHP5.2 (si jamais par la suite, il vous manque des modules alors refaites un \u00ab\u00a0.\/configure\u00a0\u00bb qui contient ce que vous d\u00e9sirez.\u00a0 Un conseil : allez-y module par module et pas tout d&rsquo;un coup).<\/p>\n<p>Au final PHP5.2 sera install\u00e9 dans le r\u00e9pertoire \/usr\/local\/php52\/<\/p>\n<p><code>.\/configure \\<br \/>\n--prefix=\/usr\/local\/php52 \\<br \/>\n--enable-force-cgi-redirect \\<br \/>\n--enable-fastcgi \\<br \/>\n--with-regex=php \\<br \/>\n--enable-calendar \\<br \/>\n--enable-sysvsem \\<br \/>\n--enable-sysvshm \\<br \/>\n--enable-sysvmsg \\<br \/>\n--enable-bcmath \\<br \/>\n--with-bz2 \\<br \/>\n--enable-ctype \\<br \/>\n--with-iconv \\<br \/>\n--enable-exif \\<br \/>\n--enable-ftp \\<br \/>\n--with-gettext \\<br \/>\n--enable-mbstring \\<br \/>\n--with-pcre-regex \\<br \/>\n--enable-shmop \\<br \/>\n--enable-sockets \\<br \/>\n--enable-wddx \\<br \/>\n--with-libxml-dir=\/usr \\<br \/>\n--with-zlib \\<br \/>\n--with-openssl=\/usr \\<br \/>\n--enable-soap \\<br \/>\n--enable-zip \\<br \/>\n--with-mhash=yes \\<br \/>\n--with-gd \\<br \/>\n--with-mysql \\<br \/>\n--with-mysqli \\<br \/>\n--with-pdo-mysql \\<br \/>\n--with-pear \\<br \/>\n--with-jpeg-dir=\/usr\/lib<br \/>\n<\/code><\/p>\n<p>Si tout s&rsquo;est pass\u00e9 correctement vous devriez voir ceci :<\/p>\n<blockquote><p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br \/>\n| License: |<br \/>\n| This software is subject to the PHP License, available in this |<br \/>\n| distribution in the file LICENSE. By continuing this installation |<br \/>\n| process, you are bound by the terms of this license agreement. |<br \/>\n| If you do not agree with the terms of this license, you must abort |<br \/>\n| the installation process at this point. |<br \/>\n+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<\/p>\n<p>Thank you for using PHP.<\/p><\/blockquote>\n<p>Maintenant effectuons la compilation \u00e0 proprement parler :<br \/>\n<code><br \/>\nmake<br \/>\n<\/code><\/p>\n<p>Si tout s&rsquo;est pass\u00e9 correctement vous devriez voir ceci :<\/p>\n<blockquote><p>Build complete.<br \/>\nDon&rsquo;t forget to run &lsquo;make test&rsquo;.<\/p><\/blockquote>\n<p>D\u00e9ployons la compilation de PHP5.2 dans les r\u00e9pertoires d\u00e9finitif<br \/>\n<code>make install<\/code><\/p>\n<blockquote><p>Installing PHP SAPI module: cgi<br \/>\nInstalling PHP CGI binary: \/usr\/local\/php52\/bin\/<br \/>\nInstalling PHP CLI binary: \/usr\/local\/php52\/bin\/<br \/>\nInstalling PHP CLI man page: \/usr\/local\/php52\/man\/man1\/<br \/>\nInstalling build environment: \/usr\/local\/php52\/lib\/php\/build\/<br \/>\nInstalling header files: \/usr\/local\/php52\/include\/php\/<br \/>\nInstalling helper programs: \/usr\/local\/php52\/bin\/<br \/>\nprogram: phpize<br \/>\nprogram: php-config<br \/>\nInstalling man pages: \/usr\/local\/php52\/man\/man1\/<br \/>\npage: phpize.1<br \/>\npage: php-config.1<br \/>\nInstalling PEAR environment: \/usr\/local\/php52\/lib\/php\/<br \/>\n[PEAR] Archive_Tar &#8211; installed: 1.3.7<br \/>\n[PEAR] Console_Getopt &#8211; installed: 1.2.3<br \/>\n[PEAR] Structures_Graph- installed: 1.0.3<br \/>\n[PEAR] XML_Util &#8211; installed: 1.2.1<br \/>\n[PEAR] PEAR &#8211; installed: 1.9.1<br \/>\nWrote PEAR system config file at: \/usr\/local\/php52\/etc\/pear.conf<br \/>\nYou may want to add: \/usr\/local\/php52\/lib\/php to your php.ini include_path<br \/>\nInstalling PDO headers: \/usr\/local\/php52\/include\/php\/ext\/pdo\/<\/p><\/blockquote>\n<h1>Configuration<\/h1>\n<p>Maintenant que PHP5.2 est install\u00e9, il faut pouvoir l&rsquo;utiliser avec Apache2.\u00a0 Cette partie est moins simple \u00e0 ma\u00eetriser que la pr\u00e9c\u00e9dente car beaucoup d&rsquo;aspects peuvent \u00eatre configur\u00e9s.\u00a0 Tout d&rsquo;abord il faut diff\u00e9rencier PHP en module et PHP en CGI. L&rsquo;utilisation de PHP en module fait qu&rsquo;une seule version de PHP tourne et que celle-ci utilise un seul fichier de configuration (par d\u00e9faut \/etc\/php5\/apache2\/php.ini) pour tous nos sites, m\u00eame si par la suite, on souhaite personnaliser chaque virtualhost.\u00a0 Avec PHP en mode CGI il faut bien comprendre que chaque <em>VirtualHost<\/em> a son propre PHP qui tourne (il pourrait m\u00eame disposer d&rsquo;un user\/group d\u00e9di\u00e9).\u00a0 Du coup, il peut y avoir un fichier php.ini par instance, donc par <em>VirtualHost<\/em>.<\/p>\n<p>Sur mon serveur, j&rsquo;essaie de s\u00e9parer les fichiers sans int\u00e9r\u00eat (la compilation de PHP) de ceux qui sont personnalis\u00e9s pour mes besoins (la configuration) en les pla\u00e7ant \u00e0 des endroits diff\u00e9rents.\u00a0 Ainsi, je vais stocker les shell-scripts de mes sites dans \/srv\/web\/fcgi\/.\u00a0 Je vais cr\u00e9er\u00a0un r\u00e9pertoire \u00ab\u00a0default\u00a0\u00bb pour le shell-script et la configuration PHP que j&rsquo;utiliserai par d\u00e9faut pour mes sites.\u00a0 Au besoin, je pourrai cr\u00e9er un autre r\u00e9pertoire pour des sites plus sp\u00e9cifiques.<\/p>\n<p><code>mkdir -p \/srv\/web\/fcgi\/default<br \/>\n<\/code><\/p>\n<p>Cr\u00e9er le shell-script \u00ab\u00a0php52.sh\u00a0\u00bb dans \/srv\/web\/fcgi\/default\/ :<br \/>\n<code><br \/>\n#!\/bin\/sh<br \/>\nexport PHP_FCGI_CHILDREN=4<br \/>\nexport PHP_FCGI_MAX_REQUESTS=200<br \/>\nexport PHPRC=\"\/srv\/web\/fcgi\/default\/php.ini\"<br \/>\nexec \/usr\/local\/php52\/bin\/php-cgi<br \/>\n<\/code><\/p>\n<p>Permettre l&rsquo;ex\u00e9cution du shell-script :<br \/>\n<code><br \/>\nchmod +x \/srv\/web\/fcgi\/default\/php52.sh<br \/>\n<\/code><\/p>\n<p>Copions le fichier \u00ab\u00a0php.ini\u00a0\u00bb fourni dans l&rsquo;archive de <a href=\"http:\/\/www.php.net\">php.net<\/a> :<br \/>\n<code><br \/>\ncp \/usr\/src\/php5.2\/php-5.2.17\/php.ini-dist \/srv\/web\/fcgi\/default\/php.ini<br \/>\n<\/code><\/p>\n<p>Touche finale de l&rsquo;installation, configurer de fa\u00e7on ad\u00e9quate Apache2 afin de d\u00e9sactiver le PHP en module (PHP5.3 normalement) et d&rsquo;utiliser PHP en CGI.\u00a0 Il faudra ajouter les lignes suivantes dans votre <em>VirtualHost<\/em> :<\/p>\n<p><code># supprimer PHP en module<br \/>\nphp_admin_flag engine off<br \/>\nScriptAlias \/cgi-bin \/srv\/web\/fcgi\/default\/<br \/>\nAction application\/x-httpd-php \/cgi-bin\/php52.sh<br \/>\n<\/code><\/p>\n<p>Puis relancez votre Apache2 et vous aurez un PHP5.2 !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Afin de permettre l&rsquo;utilisation de l&rsquo;outil Piwam qui est utile pour g\u00e9rer les membres d&rsquo;une association, j&rsquo;ai \u00e9t\u00e9 amen\u00e9 \u00e0 migrer celui-ci de notre ancien h\u00e9bergeur vers le nouveau mais &#8211; petit b\u00e9mol &#8211; Piwam ne fonctionne pas avec PHP5.3 &hellip; <a href=\"https:\/\/www.loligrub.be\/blog\/2011\/07\/22\/piwam-sur-debian-squeeze\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[108,7,109,110,111,112],"class_list":["post-694","post","type-post","status-publish","format-standard","hentry","category-news","tag-apache2","tag-debian","tag-mysql","tag-php5-2","tag-piwam","tag-squeeze"],"_links":{"self":[{"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/posts\/694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/comments?post=694"}],"version-history":[{"count":13,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/posts\/694\/revisions"}],"predecessor-version":[{"id":697,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/posts\/694\/revisions\/697"}],"wp:attachment":[{"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/media?parent=694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/categories?post=694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.loligrub.be\/blog\/wp-json\/wp\/v2\/tags?post=694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}