Apache n'interprète pas PHP

Fermé
Kerhael Messages postés 2 Date d'inscription mercredi 1 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014 - 1 oct. 2014 à 15:53
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 6 oct. 2014 à 13:08
Bonjour,

Je suis en train d'installer une plate-forme LAMP sur un machine virtuelle qui tourne avec Centos 6.5.

J'ai installé sans problème le rpm pour Apache 2.4.4 récupéré sur https://www.softwarecollections.org/en/scls/rhscl/httpd24/ (c'est une contrainte client d'utiliser ces software collections).
Apache s'installe dans /opt/rh/httpd24.
Quand je navigue sur ma machine, j'ai bien la page de test d'apache qui s'affiche.

Mes problèmes arrivent après l'installation de PHP 5.4.16 (idem rpm récupéré sur https://www.softwarecollections.org/en/scls/rhscl/php54/
L'installation se passe correctement ainsi que celles des modules suivants :
- php54-php-gd
- php54-php-mbstring
- php54-php-mysqlnd
- php54-php-pdo
- php54-php-pear
- php54-php-pecl-apc
- php54-php-xml
- php54-php
PHP s'installe dans /opt/rh/php54.

Sous /opt/rh/httpd24/root/var/www/html/, je crée le fichier info.php avec le fameux
<?php
  phpinfo();
?>
.

Je navigue sur mon_ip/info.php et là c'est le drame, le code n'est pas interprété, c'est le code source qui est affiché.

Mon fichier httpd.conf a l'air correct cependant il n'y a aucune référence à "php" à l'intérieur, est-ce normal ?
Le fichier php54-php.conf a l'air correct également et comporte les lignes
<IfModule prefork.c>
    LoadModule php5_module modules/libphp54-php5.so
</IfModule>


Je ne sais pas où est fait (ou où est censé être fait) la liaison entre httpd et php. J'ai tenté un include de mon php.conf dans le httpd.conf mais ça me donne une erreur au démarrage d'apache sur la ligne LoadModule donc ça ne doit pas être la solution.

Peut-être qu'il me manque un module, mais lequel ?

Bref, ça fait presque trois jours que je suis dessus et je commence à désespérer.

Si l'un d'entre vous avait une solution miracle, ça serait fantastique :)



Merci par avance du temps que vous voudrez bien consacrer à mon problème
A voir également:

3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
2 oct. 2014 à 15:14
Les symptômes montrent clairement qu'apache n'interprète pas le code php :
1) soit parce que le module apache2 pour php n'est pas installé
2) soit parce que php est mal configuré dans apache
3) soit parce que tu n'as pas relancé apache2 depuis que tu as corrigé sa configuration

Détaillons chacun de ces points :

1)

Par exemple sous debian il faudrait, en plus de php5, installer le paquet
libapache2-mod-php5
. Vérifie que tu n'as rien oublié. Je t'invite à vérifier que tu as tout bien installé :
https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-6

2)

Je ne sais pas si c'est le cas sous centos, mais normalement le fait de déployer le module php pour apache alimente /etc/apache2, qu'il suffit ensuite d'inclure dans la configuration globale. Si le paquet centos fournit des exemples autant les exploiter (sous debian on ferait simplement
a2enmod php5
)

/etc/apache2/mods-available/php5.conf
/etc/apache2/mods-available/php5.load

3)

Si tu n'as pas relancé apache2 depuis que tu as corrigé sa configuration, fais-le avec (au choix) une de ces deux commandes :

service apache2 restart
/etc/init.d/apache2 restart

Bonne chance
1
Kerhael Messages postés 2 Date d'inscription mercredi 1 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014
6 oct. 2014 à 10:02
Bonjour,

Merci beaucoup de ta réponse.

Pour le point numéro 1, j'ai une bibliothèque libphp54-php5.so mais pas de module dont le nom pourrait correspondre à libapache2-mod-php5.
Je n'ai rien oublié du tutoriel même si mes commandes ne sont pas exactement les mêmes vu que je ne veux pas forcément les dernières versions pour apache, php etc et que j'utilise les rpm donnés par le client.

De même pour le point numéro 2, il n'y a rien sur la machine de type mods-available.

Pour le point numéro 3, j'avais bien relancé apache.

Après avoir galéré plusieurs jours avec mes collègues, on pense que c'est peut-être le rpm de PHP qui n'a pas été compilé correctement et auquel il manque des choses.

Du coup en attendant, on a tout désinstallé puis réinstallé une plate-forme de façon classique (et tant pis pour la contrainte client) sans utiliser de software collections.
Pour le moment ça marche, on verra après les dèv si on ré-essaye les collections ou pas.

Merci encore pour avoir pris le temps de me répondre.
Bonne journée
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
Modifié par mamiemando le 6/10/2014 à 13:08
1) L'as tu installé via le gestionnaire de paquets ?

2) C'est normal, cette organisation de la configuration d'apache est propre à debian (même si elle pourrait -et devrait, car elle est bien pratique- reproduite sur n'importe quel autre distribution linux).

3) Compiler un rpm ??? Ça me paraît bizarre, normalement justement le but d'un rpm, c'est qu'on déploye directement des librairies et programmes pré-compilés (au contraire des archives contenant le code source).

Ensuite ce que je te conseille c'est de regarder ce qui se passe un peu au niveau des logs. Dans un terminal lance (en supposant que le fichier de log soit le suivant) :

tail -f /var/log/apache2.log 

Passe quelques lignes en appuyant sur entrée

... puis depuis un autre terminal, relance apache et regarde ce qui apparaît. Pour moi, la section que tu as ajoutée dans la configuration apache plante, soit parce qu'elle est fausse, soit parce que php est mal installé (et j'espère que les logs pourront nous expliquer pourquoi).

Bonne chance
0