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
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)
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.sockEnsuite 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
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
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/