PhpLDAPAdmin Update Version 1.0.2 vers 1.2.2

De EjnTricks

L'installation initiale de phpLDAPAdmin a été faite à l'aide de la commande apt-get. Or les mises à jour de l'application ne sont pas forcément mis en paquet dès leur sortie et la version 1.2.2 a été installée manuellement, tout en s'inspirant de l'organisation mise en place dans le paquet initial.

Hand-icon.png Votre avis

Current user rating: 100/100 (1 votes)

 You need to enable JavaScript to vote


Icon Folder analyze.png Analyse installation précédente version

Afin de s'inspirer du paquet Ubuntu, il est nécessaire d'étudier la mise en place de l'application. Celle-ci est déployée dans le répertoire /usr/share/phpldapadmin:

drwxr-xr-x  10 www-data www-data  4096 2011-12-01 21:50 ./
drwxr-xr-x 330 root     root     12288 2011-11-29 13:07 ../
drwxr-xr-x   2 www-data www-data  4096 2011-12-01 21:50 config/
lrwxrwxrwx   1 www-data www-data    19 2011-07-24 21:42 doc -> ../doc/phpldapadmin/
drwxr-xr-x   4 www-data www-data  4096 2011-07-24 21:42 hooks/
drwxr-xr-x   5 www-data www-data 12288 2011-12-01 21:50 htdocs/
-rw-r--r--   1 root     root       166 2011-11-30 16:10 index.php
drwxr-xr-x   2 www-data www-data  4096 2010-10-21 08:34 lang/
drwxr-xr-x   2 www-data www-data 12288 2011-12-01 21:50 lib/
drwxr-xr-x  20 www-data www-data  4096 2011-07-24 21:42 locale/
drwxr-xr-x   2 www-data www-data  4096 2011-12-01 21:50 queries/
lrwxrwxrwx   1 www-data www-data    27 2011-07-24 21:42 templates -> /etc/phpldapadmin/templates/
drwxr-xr-x   2 www-data www-data  4096 2011-12-01 21:50 tools/
-rw-r--r--   1 root     root        16 2011-11-30 16:10 VERSION

A noter les deux liens mis en place doc et templates. Le répertoire config, doit contenir la configuration applicative de phpLDAPAdmin, détaillée dans le paragraphe d'installation. Or sur l'installation, des liens sont utilisées. Le contenu du répertoire /usr/share/phpldapadmin/config est le suivant:

drwxr-xr-x  2 www-data www-data  4096 2011-12-01 21:50 ./
drwxr-xr-x 10 www-data www-data  4096 2011-12-01 21:50 ../
lrwxrwxrwx  1 www-data www-data    28 2011-07-24 21:42 config.php -> /etc/phpldapadmin/config.php
-rw-r--r--  1 root     root     23682 2011-11-30 16:10 config.php.example

Process-Icon.png Installation nouvelle version

L'installation faite à partir des paquets Ubuntu n'est pas à jour par rapport aux sources, version 1.2.0.5 lors de l'écriture de cet article. La mise à jour s'effectue donc manuellement en essayant de reproduire l'installation faite.

L'objectif de cette installation est également de maîtriser tous les fichiers et de faciliter les prochaines mises à jour. Les répertoires mis en place dans cette organisation sont:

  • /var/opt/phpldapadmin-1.2.2: Installation de la version.
  • /etc/phpldapadmin-1.2.2: Contient les configurations.

Command-icon.png Mise en place instance

Les sources sont déployées dans le répertoire /var/opt. Le paquet téléchargé phpldapadmin-1.2.2.zip contient les sources sous un répertoire phpldapadmin-1.2.2. Il suffit alors de le décompresser dans le répertoire /var/opt.

#sudo unzip phpldapadmin-1.2.2.zip -d /var/opt/

Les droits et le propriétaire des répertoires est mis à jour:

#sudo find /var/opt/phpldapadmin-1.2.2 -type d -exec chmod 0755 {} \;
#sudo find /var/opt/phpldapadmin-1.2.2 -type d -exec chown www-data:www-data {} \;

Le même type d'opération est réalisée sur les fichiers:

#sudo find /var/opt/phpldapadmin-1.2.2 -type f -exec chmod 0644 {} \;
#sudo find /var/opt/phpldapadmin-1.2.2 -type f -exec chown root:root {} \;

A noter, le propriétaire des fichiers est le compte root.

Le répertoire templates est déplacé dans /etc/phpldapadmin-1.2.2, pour la création des liens:

#sudo mkdir /etc/phpldapadmin-1.2.2
#sudo chown www-data:www-data /etc/phpldapadmin-1.2.2
#sudo chmod 755 /etc/phpldapadmin-1.2.2
#sudo mv /var/opt/phpldapadmin-1.2.2/templates /etc/phpldapadmin-1.2.2/templates
#sudo chown root:www-data /etc/phpldapadmin-1.2.2/templates

Dans ce répertoire templates, les permissions sont légèrement différentes:

#sudo find /etc/phpldapadmin-1.2.2/templates -type d -exec chmod 0750 {} \;
#sudo find /etc/phpldapadmin-1.2.2/templates -type d -exec chown root:www-data {} \;
#sudo find /etc/phpldapadmin-1.2.2/templates -type f -exec chmod 0640 {} \;
#sudo find /etc/phpldapadmin-1.2.2/templates -type f -exec chown root:www-data {} \;

Le fichier config.php.example est copié à l'emplacement /etc/phpldapadmin-1.2.2/config.php.

#sudo cp /var/opt/phpldapadmin-1.2.2/config/config.php.example /etc/phpldapadmin-1.2.2/config.php

Les permissions sont également modifiées:

#sudo chmod 640 /etc/phpldapadmin-1.2.2/config.php
#sudo chown www-data:www-data /etc/phpldapadmin-1.2.2/config.php

Une fois ces fichiers mis en place, il faut mettre en place les liens.

#sudo ln -s /etc/phpldapadmin-1.2.2/templates /var/opt/phpldapadmin-1.2.2/templates
#sudo ln -s /etc/phpldapadmin-1.2.2/config.php /var/opt/phpldapadmin-1.2.2/config/config.php
#sudo chown -h www-data:www-data /var/opt/phpldapadmin-1.2.2/templates
#sudo chown -h www-data:www-data /var/opt/phpldapadmin-1.2.2/config/config.php


Command-icon.png Manipulation post installation

Dans le paquet téléchargé, le fichier .gitignore est présent. Mais il n'est pas nécessaire au fonctionnement de l'application:

#sudo rm /var/opt/phpldapadmin-1.2.2/.gitignore

Enfin, il faut copier le fichier de configuration apache d'origine ou le recopier, cf Publication sous Apache.

#sudo cp /etc/phpldapadmin/apache.conf /etc/phpldapadmin-1.2.2/apache.conf
#sudo chown www-data:www-data /etc/phpldapadmin-1.2.2/apache.conf

Attention, il faut modifier les chemins dans ce fichier concernant:

  • L'alias
  • La directive directory


Icon-Configuration-Settings.png Configuration

Comme dans le cas de l'installation du paquet Ubuntu, il faut configurer l'instance. La dernière étape consiste à modifier le lien dans le répertoire de configuration de Apache:

#sudo rm /etc/apache2/conf.d/phpldapadmin
#sudo ln -s /etc/phpldapadmin-1.2.2/apache.conf /etc/apache2/conf.d/phpldapadmin


Delete-file-icon.png Suppression paquet Ubuntu

Une fois la mise à jour réalisée, il est possible de purger l'installation du paquet phpldapadmin. Afin d'éviter la suppression du paquet php5-ldap, si elle a été installée par dépendance, il faut effectuer la commande suivante:

# apt-get install php5-ldap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
php5-ldap est déjà la plus récente version disponible.
php5-ldap passé en « installé manuellement ».
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Ainsi, il est possible de purger le paquet Ubuntu:

# apt-get purge phpldapadmin
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  phpldapadmin*
0 mis à jour, 0 nouvellement installés, 1 à enlever et 0 non mis à jour.
Après cette opération, 6 238 ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 171057 fichiers et répertoires déjà installés.)
Suppression de phpldapadmin ...
 * Restarting web server apache2 ... waiting   [ OK ]
Purge des fichiers de configuration de phpldapadmin ...
dpkg : avertissement : lors de la suppression de phpldapadmin, le répertoire « /usr/share/phpldapadmin/htdocs/images/default »
n'était pas vide, donc il n'a pas été supprimé.
dpkg : avertissement : lors de la suppression de phpldapadmin, le répertoire « /usr/share/phpldapadmin/htdocs/images »
n'était pas vide, donc il n'a pas été supprimé.
dpkg : avertissement : lors de la suppression de phpldapadmin, le répertoire « /usr/share/phpldapadmin/htdocs »
n'était pas vide, donc il n'a pas été supprimé.
dpkg : avertissement : lors de la suppression de phpldapadmin, le répertoire « /usr/share/phpldapadmin »
n'était pas vide, donc il n'a pas été supprimé.

Les messages d'erreur ne sont pas très important. Cependant le lien phpldapadmin dans le répertoire /etc/apache2/conf.d est supprimé et l'application n'est plus disponible. Il suffit juste de recréer le lien.


Configuration App Web-Icon.png Mise à jour configuration Apache

L'installation de la version 1.2.2 a mis en évidence certaines contraintes concernant les emplacements des fichiers, surtout dans le fichier de configuration Apache. L'utilisation des liens sera une fois de plus utile. Le premier lien créé sera phpldapadmin dans le répertoire /var/opt

#ln -s /var/opt/phpldapadmin-1.2.2 /var/opt/phpldapadmin
#chown -h www-data:www-data /var/opt/phpldadadmin

Seul le fichier apache.conf sera statique. Dans le cadre de la version 1.2.2, le fichier config.php et le répertoire templates sont référencés par lien (ce qui devient optionnel) dans l'installation sous /var/opt/phpldapadmin-1.2.2.

Le fichier apache.conf est donc naturellement placé dans un répertoire /etc/phpldapadmin et un lien est placé dans /etc/apache2/conf.d:

#sudo mkdir /etc/phpldapadmin
#chown www-data:www-data /etc/phpldapadmin
#ln -s /etc/phpldapadmin/apache.conf /etc/apache2/conf.d/phpldapadmin

Enfin, l'emplacement /var/opt/phpldapadmin/htdocs/ est référencé au niveau de:

  • L'alias
  • La directive directory

Ainsi, il est possible d'installer de nouvelle version et de la rendre disponible en modifiant uniquement le lien /var/opt/phpldapadmin. La configuration devient la suivante, sous Apache 2:

# Define /phpldapadmin alias, this is the default
<IfModule mod_alias.c>
    Alias /phpldapadmin /var/opt/phpldapadmin/htdocs
</IfModule>

# You can also use phpLDAPadmin as a VirtualHost
# <VirtualHost *:*>
#     ServerName ldap.example.com
#     ServerAdmin root@example.com
#     DocumentRoot /usr/share/phpldapadmin
#     ErrorLog logs/ldap.example.com-error.log
#     CustomLog logs/ldap.example.com-access.log common
# </VirtualHost>

<Directory /var/opt/phpldapadmin/htdocs/>

    DirectoryIndex index.php
    Options +FollowSymLinks
    AllowOverride None

    Order allow,deny
    Allow from all

    <IfModule mod_mime.c>

      <IfModule mod_php5.c>
        AddType application/x-httpd-php .php

        php_flag magic_quotes_gpc Off
        php_flag track_vars On
        php_flag register_globals Off
        php_value include_path .
        php_value memory_limit 32M
      </IfModule>

      <IfModule !mod_php5.c>
        <IfModule mod_actions.c>
          <IfModule mod_cgi.c>
            AddType application/x-httpd-php .php
            Action application/x-httpd-php /cgi-bin/php5
          </IfModule>
          <IfModule mod_cgid.c>
            AddType application/x-httpd-php .php
            Action application/x-httpd-php /cgi-bin/php5
           </IfModule>
        </IfModule>
      </IfModule>

    </IfModule>

</Directory>