Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[apache]n'execute pas le php (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Wed Jul 15, 2009 1:42 pm    Post subject: [apache]n'execute pas le php (résolu) Reply with quote

Bonjour,

je refais un peu de développement web en ce moment, j'ai donc (ré)installé apache.
J'ai déjà une erreur étrange qui ne m'arrivait pas "avant" (il y a 2 ans) : quand je lance apache j'ai ça
Code:
Warning: DocumentRoot [/var/www/localhost/htdocs] does not exist
or j'ai pas souvenir d'avoir du le créer. C'est pas dramatique en soit puisque j'utilise un virtualHost pour faire mon développement sur une partition dédiée.

Quand je veux exécuter un script php, il me renvoie le code sans exécuter le script. Voilà les flags pour apache :
Code:
www-servers/apache-2.2.11-r2  USE="ssl -debug -doc -ldap (-selinux) -sni -static -suexec -threads" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias -asis -auth_digest -authn_dbd -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -substitute -version" APACHE2_MPMS="-event -itk -peruser -prefork -worker"

et pour php :
Code:
dev-lang/php-5.2.10-r1  USE="apache2 berkdb bzip2 calendar cjk cli crypt gd gdbm hash iconv ipv6 json mysql ncurses nls pcre readline reflection session spl ssl truetype unicode xml xmlreader xmlwriter xpm zip zlib (-adabas) -bcmath (-birdstep) -cdb -cgi -concurrentmodphp -ctype -curl -curlwrappers -db2 -dbase (-dbmaker) -debug -discard-path -doc (-empress) (-empress-bcs) (-esoob) -exif -fastbuild (-fdftk) -filter (-firebird) -flatfile -force-cgi-redirect (-frontbase) -ftp -gd-external -gmp -imap -inifile -interbase -iodbc (-java-external) -kerberos -kolab -ldap -ldap-sasl -libedit -mcve -mhash -msql -mssql -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic -posix -postgres -qdbm -recode -sapdb -sharedext -sharedmem -simplexml -snmp -soap -sockets (-solid) -spell -sqlite -suhosin (-sybase) (-sybase-ct) -sysvipc -threads -tidy -tokenizer -wddx -xmlrpc -xsl -yaz"


je ne vois pas trop ce qui ne va pas...

merci de votre aide ;-)


Last edited by Pixys on Fri Jul 17, 2009 6:54 pm; edited 1 time in total
Back to top
View user's profile Send private message
xaviermiller
Bodhisattva
Bodhisattva


Joined: 23 Jul 2004
Posts: 8708
Location: ~Brussels - Belgique

PostPosted: Wed Jul 15, 2009 3:00 pm    Post subject: Reply with quote

as-tu fait un dispatch-conf pour mettre à jour /etc/conf.d/apache2 ?
il doit contenir quelque chose du genre
Code:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PHP5"

_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Wed Jul 15, 2009 3:22 pm    Post subject: Reply with quote

oui j'ai fait un etc-update mais c'est curieux, mon /etc/conf.d/apache2 contient ça :
Code:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE"
et même en rajoutant "-D PHP5" ça ne change rien...

Ca ne serait pas une histoire de module par hasard ? je ne trouve aucune mention d'un module pour php dans /etc/apache2/httpd.conf. Ne devrait-il pas y avoir un module pour php ?
Back to top
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Wed Jul 15, 2009 3:55 pm    Post subject: Reply with quote

De base, tu ne peux pas avoir le module php pour apache qui fonctionne si tu ne le lui passes pas en paramètre dans le fichier /etc/conf.d/apache2
Code:
APACHE2_OPTS="-D PHP5"


C'est le minimum requis pour tes tests.

Ensuite regarde dans les logs d'apache s'il arrive à charger le module php au démarrage d'apache.
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Wed Jul 15, 2009 4:43 pm    Post subject: Reply with quote

j'ai testé en ne mettant que ça :
Code:
APACHE2_OPTS="-D PHP5"
dans /etc/conf.d/apache2
maintenent il râle quand je le relance :
Code:
root@pegase $ /etc/init.d/apache2 restart
* Stopping apache2...
httpd (no pid file) not running                                                                                                                                                                                                          [ok]
* Starting apache2...
no listening sockets available, shutting down
Unable to open logs
et dans /var/log/apache2/error_log je n'ai rien d'intéressant :
Code:
[Wed Jul 15 18:36:55 2009] [notice] caught SIGTERM, shutting down
Back to top
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Wed Jul 15, 2009 5:13 pm    Post subject: Reply with quote

Pixys wrote:
j'ai testé en ne mettant que ça :
Code:
APACHE2_OPTS="-D PHP5"
dans /etc/conf.d/apache2

Tu peux ajouter ceux que tu avais précédemment, ça ne devrait pas changer grand chose.

Pixys wrote:
maintenent il râle quand je le relance :
Code:
root@pegase $ /etc/init.d/apache2 restart
* Stopping apache2...
httpd (no pid file) not running                                                                                                                                                                                                          [ok]
* Starting apache2...
no listening sockets available, shutting down
Unable to open logs
et dans /var/log/apache2/error_log je n'ai rien d'intéressant :
Code:
[Wed Jul 15 18:36:55 2009] [notice] caught SIGTERM, shutting down


Quand je vois ça, je me dis il y a 3 problèmes :
1. - Il ne trouve pas le fichier pid qui lui permet de connaitre le pid du process apache2 en cours et de déterminer si le serveur tourne ou pas.
2. - Le port sur lequel souhaite démarré apache2 (par défaut le 80, mais peut être as-tu une configuration spécifique) n'est pas disponible car déjà utilisé.
3. - Il n'est pas en mesure d'ouvrir ses logs, sans doute pour la même raison que le 1.

Déjà, vérifier les répertoires/fichiers de destinations des logs et s'assurer que les droits sont corrects et que l'utilisateur (apache ou http suivant ta conf) a les droits d'accès sur ces répertoires.

Ensuite pour le 2. il te dit qu'il n'a pas pu démarrer apache car le socket est déjà utilisé, tapes la commande suivante :
Code:
netstat -an | grep LISTEN

Et regarde si dans les ports tu as le tiens. Si tu ne l'a pas, remplaces "LISTEN" par le numéro de port que tu utilises.

Une fois que c'est fait, arrêtes le process qui utilises ce port et essaie de redémarrer proprement ton apache2. Pour déterminer quel process utilises le port 80 par exemple, utilises la commande suivante :
Code:
fuser -u -n tcp 80

Cela te donnera un résultat du genre :
Code:
80/tcp:            11144(apache2)

Où la valeur 11144 représente dans l'exemple le PID du process et ce qui est entre parenthèse le nom de l'utilisateur qui détient ce process.

Cdt,
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Wed Jul 15, 2009 6:46 pm    Post subject: Reply with quote

@DuF : merci pour l'aide.

j'ai viré mon virtualHost et réinstallé apache. J'ai créée le répertoire /var/www/localhost/htdocs car il n'existait pas, j'y ai mis un fichier index.php.
dans /etc/conf.d/apache2 j'ai bien
Code:
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D PHP5"

Ma configuration est donc des plus banales (écoute sur le port 80, etc.)
Je démarre apache, je n'ai plus les précédentes erreurs mais il n'execute toujours pas le php.
Maintenant dans /var/log/apache2/access_log j'ai ceci :
Code:
127.0.0.1 - - [15/Jul/2009:20:32:26 +0200] "GET / HTTP/1.1" 200 535
127.0.0.1 - - [15/Jul/2009:20:32:26 +0200] "GET /icons/blank.gif HTTP/1.1" 403 276
127.0.0.1 - - [15/Jul/2009:20:32:26 +0200] "GET /icons/unknown.gif HTTP/1.1" 403 278
127.0.0.1 - - [15/Jul/2009:20:32:26 +0200] "GET /favicon.ico HTTP/1.1" 404 268
127.0.0.1 - - [15/Jul/2009:20:32:28 +0200] "GET /index.php HTTP/1.1" 200 81
127.0.0.1 - - [15/Jul/2009:20:32:29 +0200] "GET /favicon.ico HTTP/1.1" 404 268
127.0.0.1 - - [15/Jul/2009:20:32:29 +0200] "GET /favicon.ico HTTP/1.1" 404 268
127.0.0.1 - - [15/Jul/2009:20:32:37 +0200] "GET /index.php HTTP/1.1" 304 -
127.0.0.1 - - [15/Jul/2009:20:35:41 +0200] "GET / HTTP/1.1" 200 535
127.0.0.1 - - [15/Jul/2009:20:35:41 +0200] "GET /icons/blank.gif HTTP/1.1" 403 276
127.0.0.1 - - [15/Jul/2009:20:35:41 +0200] "GET /icons/unknown.gif HTTP/1.1" 403 278

et dans /var/log/apache2/error_log
Code:
[Wed Jul 15 20:32:15 2009] [notice] Apache/2.2.11 (Unix) configured -- resuming normal operations
[Wed Jul 15 20:32:26 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/
[Wed Jul 15 20:32:26 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/
[Wed Jul 15 20:32:26 2009] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico
[Wed Jul 15 20:32:29 2009] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico
[Wed Jul 15 20:32:29 2009] [error] [client 127.0.0.1] File does not exist: /var/www/localhost/htdocs/favicon.ico
[Wed Jul 15 20:35:28 2009] [notice] caught SIGTERM, shutting down
[Wed Jul 15 20:35:31 2009] [notice] Apache/2.2.11 (Unix) configured -- resuming normal operations
[Wed Jul 15 20:35:41 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/
[Wed Jul 15 20:35:41 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/


donc j'ai plus de problème de pid ou autre mais toujours pas de php.
C'est curieux, il ne me semble pas que c'est été aussi difficile la dernière fois que j'ai configuré apache.
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1897
Location: 127.0.0.1

PostPosted: Wed Jul 15, 2009 9:47 pm    Post subject: Reply with quote

Hello,

Que donne :
Code:

$ cat /etc/apache2/modules.d/70_mod_php5.conf
Back to top
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Wed Jul 15, 2009 10:08 pm    Post subject: Reply with quote

En complément de ce qu'indique netfab, que donne les commandes suivantes :
Code:
locate libphp5.so

A titre d'information, chez moi j'obtiens la réponse suivante :
Code:

/usr/lib64/apache2/modules/libphp5.so
L'idée étant que tu aies quelque chose d'équivalent.

Ensuite que donne la commande suivante sur l'emplacement de libphp5.so chez toi ?
Code:
equery belongs /usr/lib64/apache2/modules/libphp5.so
[ Searching for file(s) /usr/lib64/apache2/modules/libphp5.so in *... ]
dev-lang/php-5.2.10 (/usr/lib64/apache2/modules/libphp5.so)
J'ai mis à titre d'exemple ce que cela donne comme résultat chez moi.

Si avec ça, toujours pas d'élément, alors je n'aurai pas beaucoup d'autre proposition que de passer le niveau de log à debug du LogLevel dans le fichier /etc/apache2/modules.d/00_default_settings.conf.
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Wed Jul 15, 2009 11:33 pm    Post subject: Reply with quote

Code:
pegase pixys # locate libphp5.so
/usr/lib64/apache2/modules/libphp5.so

pegase pixys # equery belongs /usr/lib64/apache2/modules/libphp5.so
 * Searching for /usr/lib64/apache2/modules/libphp5.so ...
dev-lang/php-5.2.10-r1 (/usr/lib64/apache2/modules/libphp5.so)


en passant les logs en debug j'ai ceci dans error_log :
Code:
[Thu Jul 16 01:31:23 2009] [info] mod_unique_id: using ip addr 127.0.0.1
[Thu Jul 16 01:31:24 2009] [info] mod_unique_id: using ip addr 127.0.0.1
[Thu Jul 16 01:31:25 2009] [notice] Apache/2.2.11 (Unix) configured -- resuming normal operations
[Thu Jul 16 01:31:25 2009] [info] Server built: Jul 15 2009 20:02:43
[Thu Jul 16 01:31:25 2009] [debug] prefork.c(1009): AcceptMutex: sysvsem (default: sysvsem)
[Thu Jul 16 01:31:33 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/
[Thu Jul 16 01:31:33 2009] [error] [client 127.0.0.1] client denied by server configuration: /var/www/localhost/icons, referer: http://localhost/
Back to top
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Thu Jul 16, 2009 3:59 pm    Post subject: Reply with quote

A tout hasard, que donne la commande suivante :
Code:
grep -i php /emplacement/des/logs/apache2/*

Suivant où sont placés tes logs, adaptes la commande, ce qu'il serait intéressant c'est de trouver lors du démarrage du serveur apache, s'il charge correctement le mod_php.
Back to top
View user's profile Send private message
yohann
n00b
n00b


Joined: 21 Dec 2007
Posts: 40
Location: Lyon

PostPosted: Thu Jul 16, 2009 4:21 pm    Post subject: Reply with quote

salut,

comme l'a demandé netfab, peut tu donner le contenu du fichier /etc/apache2/modules.d/70_mod_php5.conf

c'est lui qui defini le handler à utiliser par apache pour les fichier .php.
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Thu Jul 16, 2009 6:23 pm    Post subject: Reply with quote

DuF wrote:
A tout hasard, que donne la commande suivante :
Code:
grep -i php /emplacement/des/logs/apache2/*

Suivant où sont placés tes logs, adaptes la commande, ce qu'il serait intéressant c'est de trouver lors du démarrage du serveur apache, s'il charge correctement le mod_php.


les seuls logs que j'ai sont ceux donnés dans mon pot précédent.

yohann wrote:

peut tu donner le contenu du fichier /etc/apache2/modules.d/70_mod_php5.conf

Je n'ai pas ce fichier, à mon avis il est là le problème... Pourtant, j'ai bien "php" et "apache2" dans mes useflags.
Back to top
View user's profile Send private message
yohann
n00b
n00b


Joined: 21 Dec 2007
Posts: 40
Location: Lyon

PostPosted: Thu Jul 16, 2009 6:40 pm    Post subject: Reply with quote

ça pourrait résoudre le pb si le fichier existe

Code:
cp /usr/portage/dev-lang/php/files/70_mod_php5.conf-apache2-r1 /etc/apache2/modules.d/70_mod_php5.conf && /etc/init.d/apache2 restart
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Thu Jul 16, 2009 7:07 pm    Post subject: Reply with quote

Ça m'a bien créé le fichier70_mod_php5.conf mais rien, c'est incroyable, ça ne fonctionne toujours pas, je comprends pas...
Back to top
View user's profile Send private message
yohann
n00b
n00b


Joined: 21 Dec 2007
Posts: 40
Location: Lyon

PostPosted: Thu Jul 16, 2009 8:12 pm    Post subject: Reply with quote

a la limite tu peux essayer de virer les ifdefine et ifModule dans ce fichier, redemarer apache, et regarder à nouveau les log d'erreur, qui ne devrait pas manquer d'apparaitre.

sinon j'ai regarder, j'utiliser la meme version d'apache, mais la version 5.2.10 de php au lieu de la r1 pour toi.


Bonne chance
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Fri Jul 17, 2009 9:00 am    Post subject: Reply with quote

aucune erreur, c'est comme si apache n'était pas au courant qu'il était sensé exécuter du php...
je vais devoir me rabattre sur Nginx mais ça m'embête un peu car il ne supporte pas les .htaccess or j'en ai besoin pour le Zend framework.
Back to top
View user's profile Send private message
Kazuya
Apprentice
Apprentice


Joined: 09 Jul 2006
Posts: 256

PostPosted: Fri Jul 17, 2009 4:44 pm    Post subject: Reply with quote

Hello,
est ce que le php fonctionne bien ? (c'est une question un peu bête mais bon...)
Par exemple, en exécutant un fichier php en ligne de commande avec php-cli ? (en ayant le use flag "cli" d'activé dans php...)
_________________
Hacker vaillant, rien d'impossible !!!
"Quand une vache boit de l'eau, cette eau devient du lait. Quand un serpent boit de l'eau, cette eau devient du poison."
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Fri Jul 17, 2009 5:01 pm    Post subject: Reply with quote

oui, aucun soucis, php fonctionne parfaitement en console.
Back to top
View user's profile Send private message
netfab
Veteran
Veteran


Joined: 03 Mar 2005
Posts: 1897
Location: 127.0.0.1

PostPosted: Fri Jul 17, 2009 6:03 pm    Post subject: Reply with quote

Hello,

Fais voir ton emerge --info, et réinstalle apache et php, puis fais un etc-update. Il y a forcément quelque chose qui ne vas pas. D'après l'ebuild, si php a été compilé avec les use apache2 et -concurrentmodphp, alors le fichier 70_mod_php5.conf devait être installé, or il ne l'etait pas.

Tu as vérifié le log de compilation/d'installation de php s'il n'y a pas eu un problème ? Je remarque ceci dans la phase postinst :

Code:

   # Update Apache2 to use mod_php
   if use apache2 ; then
      "${ROOT}/usr/sbin/php-select" -t apache2 php5 > /dev/null 2>&1
      exitStatus=$?
      if [[ ${exitStatus} == 2 ]] ; then
         php-select apache2 php5
      elif [[ ${exitStatus} == 4 ]] ; then
         ewarn
         ewarn "Apache2 is configured to load a different version of PHP."
         ewarn "To make Apache2 use PHP v5, use php-select:"
         ewarn
         ewarn "    php-select apache2 php5"
         ewarn
      fi
   fi

Essaye peut-être d'exécuter : php-select apache2 php5
Back to top
View user's profile Send private message
Pixys
l33t
l33t


Joined: 23 May 2005
Posts: 669

PostPosted: Fri Jul 17, 2009 6:54 pm    Post subject: Reply with quote

Ça y est ça fonctionne malheureusement, je ne peux pas expliquer pourquoi : je n'ai pas changé mes useflags.
Lors du etc-update la seule modification effectuée concerne le fichier /etc/apache2/modules.d/00_default_settings.conf, la mise à jour a repassé le LogLevel à warn à la place de debug...
J'y comprends rien et mon problème n'aidera malheureusement personne.

Merci à tous pour l'aide et les suggestions apportées, ça fait vraiment plaisir.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum