Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Venez tester la Fedora 33 Beta

#1 29/10/2006 19:59:49

Th3_AddiKTiV
Membre
Inscription : 29/10/2006
Messages : 14

Debogage PHP (xdebug)

Bonjour a tous.

Tout d'abord merci pour votre implication et la qualité de vos réponses. Jusqu'ici je n'avais jamais eu a venir poser de question étant donné que je trouvais les réponses dans vos forums.

Le but de ma visite est simple. Je viens d'installer la toute nouvelle et toute belle version de Fedora. En clair j'arrêtes le pinard et j'passe au zodzod big_smile

Bon j'ai donc réinstaller un système LAMP avec : Apache 2.2.3, PHP 5.1.6, MySQL 5.0.22 ................
Donc le plus simple j'ai poser un petit phpinfo() ca ira plus vite que d'écrire tout.
http://www.add.....

Donc j'ai voulu (et je veux toujours) installer xdebug. J'ai suivi cette procédure :

yum install php-pecl-xdebug

puis j'ai éditer php.ini (/etc/php.ini) :

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/lib/php/modules/"

[........]

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example:
;
;   extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here.  Specify the location of the extension with the
; extension_dir directive above.

 extension=xdebug.so  
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;

et je n'ai aucun renvoi d'erreur sur les pages .php que je crée, et ce n'est pourtant pas faute d'appeler des fonction inconnues, ou bien de faire des divisions par zéro .... bref ca ne fonctionne visiblement pas.
J'ai donc zapper quelque chose et je ne vois pas du tout ce que ca peut être.

J'ai aussi une autre question, celle la concerne l'utilisation d'un repertoire public_html pour les users de la machine. Je l'ai bien activer dans httpd.conf (la preuve ca fonctionne avec le lien ci-dessus. Je me demande si je dois également le déclarer dans php.ini, puisque j'ai vu qu'il y avait la ligne prévue a cet effet.
Par défaut c'est :

; The directory under which PHP opens the script using /~username used only
; if nonempty.
user_dir =

perso j'ai rectifier et j'ai mis :

; The directory under which PHP opens the script using /~username used only
; if nonempty.
user_dir = public_html

mais je ne suis pas sur, je me demandais si je ne devrais pas plutôt utiliser user_dir = /home/*/public_html ou bien user_dir = "/home/*/public_html" ................
Bref si quelqun peut également me donner quelques précisions a ce sujet ce serais cool.

Merci d'avance d'avoir pris le temps de me lire.

Dernière modification par Th3_AddiKTiV (29/10/2006 21:11:16)


ffps_ub_staff.gif

Hors ligne

#2 29/10/2006 20:22:20

remi
Crazy PHP packages monkey... !
Rédacteur Wiki
Lieu : Champagne...
Inscription : 16/10/2004
Messages : 5 579
Site Web

Re : Debogage PHP (xdebug)

1/ il n'y a pas besoin d'éditer le php.ini pour activer une extension.
C'est fait automatiquement par le rpm (ajout d'un fichier dans /etc/php.d
D'ailleurs tu dois avoir un message d'erreur comme quoi tu essaies de charger 2 fois la même extension.

2/ les messages d'erreurs ne s'affichent pas dans les pages, c'est normal (option de sécurité : ne pas donner trop d'informations aux utilisateurs de tes sites).
Il faut regarder dans le journal d'apache, le plus simple et d'avoir une fenêtre d'ouverte avec un

tail -f /var/log/httpd/error_log

qui tourne en permanence.

3/ pour le public_html, il n'y a rien a déclarer dans le php.ini (de mémoire, c'est juste pour le mode cgi).

Tant que j'y suis, il faut essayer de ne pas modifier le httpd.conf, mais d'ajouter ce dont tu as besoin dans un fichier spécifique sous /etc/http/conf.d.

A+

Hors ligne

#3 29/10/2006 20:41:20

Th3_AddiKTiV
Membre
Inscription : 29/10/2006
Messages : 14

Re : Debogage PHP (xdebug)

remi a écrit :

1/ il n'y a pas besoin d'éditer le php.ini pour activer une extension.
C'est fait automatiquement par le rpm (ajout d'un fichier dans /etc/php.d
D'ailleurs tu dois avoir un message d'erreur comme quoi tu essaies de charger 2 fois la même extension.

Donc je n'ai a priori pas trace d'un message d'erreur qui indique que je charge deux fois la meme extension. Je vais toutefois essayer en commantant la modif de php.ini

remi a écrit :

2/ les messages d'erreurs ne s'affichent pas dans les pages, c'est normal (option de sécurité : ne pas donner trop d'informations aux utilisateurs de tes sites).
Il faut regarder dans le journal d'apache, le plus simple et d'avoir une fenêtre d'ouverte avec un

tail -f /var/log/httpd/error_log

qui tourne en permanence.

Donc la oui, j'ai bien les erreurs que je veux, mais le truc est que sur ce poste je ne veux pas faire un serveur web consultable par tout le monde, tout le temps, j'active directement l'acces via le routeur. Sur ce poste je ne veux faire que du devellopement, et donc la sécurité d'accord mais bon je prefererais avoir les messages d'erreur ...

remi a écrit :

3/ pour le public_html, il n'y a rien a déclarer dans le php.ini (de mémoire, c'est juste pour le mode cgi).

Tant que j'y suis, il faut essayer de ne pas modifier le httpd.conf, mais d'ajouter ce dont tu as besoin dans un fichier spécifique sous /etc/http/conf.d.

A+

Merci pour ces conseils, toutefois le minimum est quand meme de declarer le php dans DirectoryIndex, et puis par défaut les repertoires user ne sont pas activés.


ffps_ub_staff.gif

Hors ligne

#4 29/10/2006 21:10:22

Th3_AddiKTiV
Membre
Inscription : 29/10/2006
Messages : 14

Re : Debogage PHP (xdebug)

Problème réglé.
J'ai eu un manque de présence d'esprit et j'ai pas vraiment pris le temps de tout faire correctement. Tes commentaires remi, m'ont permis de réaliser que oui il n'y avais rien a declarer et en regarder de plus pres mon phpinfo() suite au fait que tu m'as dit que c'étais désactive par défaut et bien j'ai juste eu a réactiver l'affichage des erreurs.
Et avec xdebug, c'est vraiment pas mal, et puis les logs permettent de faire du profiling par la suite avec KCacheGrind.

xdebug.png

merci a toi pour le coup de main.


ffps_ub_staff.gif

Hors ligne

#5 29/10/2006 21:14:15

remi
Crazy PHP packages monkey... !
Rédacteur Wiki
Lieu : Champagne...
Inscription : 16/10/2004
Messages : 5 579
Site Web

Re : Debogage PHP (xdebug)

Non.

Le DirectoryIndex est déjà activé dans le fichier /etc/http/conf.d/php.conf. Il n'y a donc rien à faire.

Tu peux aussi réactiver l'affichage des erreurs dans le navigateur en modifiant display_errors

Pour le UserDir, moi j'ai un fichier /etc/http/conf.d/remi.conf qui contient, entre autre :

ErrorDocument 404 /~remi/404.jpg

NameVirtualHost *:80

<VirtualHost *:80>
    UserDir public_html
    php_admin_flag display_errors On
</VirtualHost>
...

Et je tourne avec le httpd.conf standard, sans aucune modification.

Au passage, tu remarqueras que je ne modifie pas non plus le php.ini, mais que j'utilise les php_admin_flag d'apache dans mon fichier personnel.

A+

P.S. cette habitude simplifie les mises à jour et les changements de machine.

Hors ligne

#6 04/11/2006 13:17:39

Th3_AddiKTiV
Membre
Inscription : 29/10/2006
Messages : 14

Re : Debogage PHP (xdebug)

J'en ai pris bonnenote, merci remi pour les conseils.


ffps_ub_staff.gif

Hors ligne

Pied de page des forums