PhpLDAPAdmin Update Version 1.2.2 vers 1.2.3

De EjnTricks

L'installation initiale de phpLDAPAdmin a été faite à l'aide de la commande apt-get. Depuis la version 1.2.2, les mises à jour sont réalisées manuellement et ce principe est repris pour la version 1.2.3. L'objectif est de mettre en place un lien /var/opt/phpldapadmin pointant vers la version installée. De plus, les plugins et les contenus sont déportés dans un répertoire /var/opt/phpldapadmin-1.2.3

Hand-icon.png Votre avis

Current user rating: 76/100 (1 votes)

 You need to enable JavaScript to vote


Process-Icon.png Installation nouvelle version

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

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

Attention, sur des versions de Ubuntu, des mises à jour de php ont été réalisées. Il faut prendre en compte la bonne version afin de ne pas avoir des erreurs php, suite à des utilisations de fonctions supprimées.


Command-icon.png Mise en place instance

Le fichier phpldapadmin-1.2.3.tgz est téléchargé, depuis http://heanet.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/ et installé:

#sudo wget -P /var/opt http://heanet.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
#sudo tar -C /var/opt -xzvf /var/opt/phpldapadmin-1.2.3.tgz
#sudo rm /var/opt/phpldapadmin-1.2.3.tgz
#sudo chown -R www-data:www-data /var/opt/phpldapadmin-1.2.3

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

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

Le fichier config.php est recopié de la précédente instance, depuis le répertoire /etc/phpldapadmin-1.2.2.

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

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

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

Enfin, il faut changer le lien symbolique /var/opt/phpldapadmin pour activer la nouvelle version.

#sudo rm /var/opt/phpldapadmin
#sudo ln -s /var/opt/phpldapadmin-1.2.3 /var/opt/phpldapadmin
#sudo chown -h www-data:www-data /var/opt/phpldapadmin


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.3/.gitignore


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

Aucune mise à jour de Apache n'est nécessaire, puisque la configuration mise en place pointe à présent sur le lien /var/opt/phpldapadmin


Bug-icon.png Bugs

php 5.5

Suite à une mise à jour de Ubuntu, la version de php disponible est devenue la 5.5.6-1ubuntu1. Or l'application comporte un bug avec une version supérieur ou égale à 5.5. Le message d'erreur suivant était affiché dans les logs Apache:

PHP Fatal error:  Cannot redeclare password_hash() in /var/opt/phpldapadmin-1.2.3/lib/functions.php on line 2236

Ce problème a été identifié et fait l'objet d'un patch au niveau du projet, comme l'indique le ticket à l'adresse http://sourceforge.net/mailarchive/message.php?msg_id=31302386.

Quatre fichiers, dans le répertoire lib, doivent être modifiés:

  • ds_ldap.php
  • ds_ldap_pla.php
  • functions.php
  • PageRender.php

L'archive suivante contient l'ensemble des fichiers modifiés, patch.tar.gz.

Il suffit d'extraire les fichiers dans le répertoire cible à l'aide de la commande suivante:

#sudo tar -C /var/opt/phpldapadmin-1.2.3/lib/ -xzvf phpLdapAdmin-1.2.3_patch.tar.gz
PageRender.php
ds_ldap.php
ds_ldap_pla.php
functions.php


Lors de la création d'entrée avec affichage d'un mot de passe, une erreur se produit.

Error trying to get a non-existant valeur (apperance,password_hash)

L'interface est inexpoitable :


La solution a été trouvée sur le blog suivant. Il faut modifier la fonction drawDefaultHelperPasswordAttribute dans le fichier lib/TemplateRender.php de la façon suivante:

protected function drawDefaultHelperPasswordAttribute($attribute,$i) {
		$id = 'enc';

		if ($val = $attribute->getValue($i))
				$default = get_enc_type($val);
		else
				$default = $this->getServer()->getValue('appearance','password_hash');
				// $default = $this->getServer()->getValue('appearance','password_hash_custom');

		if (! $attribute->getPostValue())
				printf('<input type="hidden" name="post_value[%s][]" value="%s" />',$attribute->getName(),$i);

		printf('<select name="%s[%s][%s]" id="%s_%s_%s">',
				$id,htmlspecialchars($attribute->getName()),$i,
				$id,htmlspecialchars($attribute->getName()),$i);

		foreach (password_types() as $v => $display)
				printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected="selected"' : '',$display);

		echo '</select>';
}

L'archive suivante contient le fichier modifié, patch.tar.gz.


Message sur les modèles

Lors de l'utilisation de la version 1.2.2, il avait été constaté des "warning" sur l'interface, mentionnant la suppression de modèles. Ceci est de nouveau constaté avec cette nouvelle version. La procédure décrite dans l'article PhpLDAPAdmin Modèle Affichage peut être reproduite.

#sudo mkdir -p /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo chown www-data:www-data -R /etc/phpldapadmin-1.2.3/templates.sav
#sudo chmod -R 750 /etc/phpldapadmin-1.2.3/templates.sav
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/mozillaOrgPerson.xml /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/sambaMachine.xml /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/sambaSamAccount.xml /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/courierMailAlias.xml /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/courierMailAccount.xml /etc/phpldapadmin-1.2.3/templates.sav/creation
#sudo mv /etc/phpldapadmin-1.2.3/templates/creation/sambaGroupMapping.xml /etc/phpldapadmin-1.2.3/templates.sav/creation


Mais la modification du fichier config.php est préférée.

/* Hide the warnings for invalid objectClasses/attributes in templates. */
// $config->custom->appearance['hide_template_warning'] = false;
$config->custom->appearance['hide_template_warning'] = true;