piste: accueil » PHP Zend Studio Linux

PHP Zend Studio Linux

ajouté le Jeudi 26 avril 2007 à 18:36:38 par christophe

Zend Studio est un puissant environnement de développement graphique pour PHP.

Installation sous linux

 en lancant l'installation sous linux un problème de librairies peut intervenir :

# ./ZendStudio-5_0_0.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

nawk: error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

Launching installer...

grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/tmp/install.dir.10156/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

Il s'agit d'un mauvais formattage du .bin. Pour y remédier :

# cp ZendStudio-5_0_0.bin ZendStudio-5_0_0.bin.bak
# cat ZendStudio-5_0_0.bin.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > ZendStudio-5_0_0.bin
# rm  ZendStudio-5_0_0.bin.bak
# ./ZendStudio-5_0_0.bin 

 

Débuggage

L'éditeur de Zend dispose d'un puissant débuggeur : breackpoints, changements de variables, erreur, rien ne lui fait peur. Cependant, s'il marche très bien, ce debugger n'est lui-même pas exempt de bugs.. Il y en a un particulièrement énervant lorsque l'on debugge un script PHP qui a besoin d'accéder à une base de données MySQL (en local)

BUG1

photo image/77 de la bibliothèque
Il est dû à une différence entre le chemin vers le socket Mysql du serveur et celui du debuggeur Zend.
Avertissement de débogage: /home/www/public_html/_index.php ligne 4 - mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 
 
Il suffit alors de modifier le php.ini du deboggeur de Zend. Attention il faut adapter le chemin en fonction de la version du deboggeur que vous utilisez dans Zend (voir "préférences" dans Zend). Sinon fait la modif sur les 2 versions de PHP pour ne plus avoir de problème : Ouvrez /usr/local/Zend/ZendStudio-5.2.0/bin/php5/php.ini

Par défaut :  

zend_extension=/usr/local/Zend/ZendStudio-5.2.0/lib/php4/Zen dDebuggerLocal.so
zend_debugger.allow_hosts=127.0.0.1/32
session.save_path=/usr/local/Zend/ZendStudio-5.2.0/tmp

On indique en plus le chemin de l'extension mysql pour php (/usr/lib/php5/20060613+lfs sous ubuntu feisty).

mysql.allow_persistent = on
extension_dir="/usr/lib/php5/20060613+lfs"
extension="mysql"

On met à jour le chemin du socket en reprenant celui du /etc/mysql/my.cf à la section [client].

mysql.default_socket=/var/run/mysqld/mysqld.sock

Ensuite vous pouvez enfin débugger des scripts PHP qui accèdent à une base de données... A moins que votre serveur mysql de test soit en version 5. Un 2ème bug peut alors apparaître, lisez la suite de l'article...

BUG2 

photo image/78 de la bibliothèque
Ce bug est dû à une différence de Hachage de mot de passe lorsque l'extension mysql de php tente d'accéder à un serveur MySQL 5. Voici ce qu'on peut voir :
Avertissement de débogage: /home/www/public_html/_index.php ligne 4 - mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client 

Pour résoudre ce problème, il suffit de modifier le mot de passe de l'utilisateur MySQL pour qu'il prennent l'ancien format de mot de passe :

On se connecte en root mysql 

# mysql -u root -p

On modifie le mot de passe de l'utilisateur christophe pour qu'il prennent l'ancien format. Attention suivant les droits de l'utilisateur le serveur peut-être localhost ou %.

mysql> SET PASSWORD FOR 'christophe'@'localhost' = OLD_PASSWORD('mon_mot_de_passe');

Ensuite tout devrait rentrer dans l'ordre 

photo image/76 de la bibliothèque

BUG3

si vous débugguez des scripts PHP avec la prise en charge des sessions, il peut y avoir une erreur de ce type :

Avertissement de débogage - Unknown: open(/usr/local/Zend/ZendStudioClient-5.0.0/tmp/sess_2f016663f0ece0177adb6f8ed8800643, O_RDWR) failed: Permission denied (13) 

Pour corriger l'erreur, il suffit de mettre tous les droits sur le dossier tmp du ZendStudio

# chmod 777 /usr/local/Zend/ZendStudioClient-5.0.0/tmp/

 


 Ressources