1 votes

Erreur lors de la configuration de PHP avec apache existant

Je reçois ce message :

configure: error: Répertoire Apache invalide - impossible de trouver httpd.h sous /usr/lib64/httpd/

après avoir exécuté la commande suivante :

./configure --with-apache=/usr/lib64/httpd/

Je ne sais pas où se trouve le répertoire de niveau supérieur sur mon apache déjà installé. Le service apache est déjà installé sur mon serveur CentOS 6.5 à partir du référentiel en utilisant yum install httpd.

  • Version Apache 2.2.15-31
  • Version PHP 5.4.25

3voto

T-Gergely Points 128

Ceci est la solution finale à ma question :

Installation du package httpd-devel à partir du dépôt yum install httpd-devel, où les en-têtes d'Apache sont inclus.

Configuration de PHP avec apxs2 : ./configure --with-apxs.

Et la dernière étape consiste à ajouter les lignes suivantes dans le VirtualHost dans le fichier httpd.conf (ou dans les fichiers .conf inclus) :

    SetHandler application/x-httpd-php

0 votes

Pas sûr que vous ayez besoin du paquet httpd-devel mais si cela fonctionne, c'est cool :) (définissez votre propre réponse comme acceptée pour que les futurs spectateurs aient la réponse)

0 votes

@Pierre-YvesGillier yum install httpd ne installe pas apxs. Il est seulement installé par yum install httpd-devel. Donc httpd-devel est nécessaire.

2voto

Si votre apache est déjà construit et configuré, vous devriez compiler PHP en tant que module partagé plutôt qu'un module statique.

La surcharge est légèrement supérieure mais vous pourrez mettre à niveau chaque composant séparément.

Exemple de configuration :

$ ./configure --with-apxs=

J'ai oublié une chose : votre apache doit être compilé avec mod_so activé pour utiliser des modules dynamiques construits avec apxs

0 votes

Il n'a pas apxs, il n'a même pas les en-têtes d'apache...

1 votes

@PeterHorvath apxs est déjà installé sur mon serveur et le paquet httpd-devel est installé...

0 votes

Si Apache est installé et en cours d'exécution, apxs doit également être présent, sinon il y a un problème majeur. C'est un binaire construit en même temps que httpd.

2voto

peterh Points 4884

Si vous souhaitez compiler des choses pour apache - cette fois, php -, vous devez avoir les en-têtes d'apache pour le faire. Ils sont du type "apache-dev" ou "apache2-devel" ou "libapache2-devel", ou un package similaire. Ce package doit être installé.

Ce package de développement contiendra le binaire apxs, qui sera probablement automatiquement trouvé par les scripts de configuration php.

EXTENSION: Deuxièmement, lisez attentivement la sortie ./configure --help du code source php. De ce que je me souviens, il y a peut-être une différence entre les indicateurs --with-apache, --with-apache2 ou --with-apxs. Êtes-vous sûr de ne pas compiler pour apache1 par accident ?

EXTENSION #2: Peut-être pourriez-vous obtenir également le package php source de votre distribution, au moins pour savoir comment effectuer la (re)compilation.

0 votes

@PeterSmith Je suppose que --with-apache et --with-apache2 signifie la version d'Apache (1.x.x ou 2.x.x). Correct ?

0 votes

@bedel7 Oui. Lisez attentivement la sortie du script de configuration.

0 votes

@PeterSmith bizarre, configure: ATTENTION : options non reconnues : --with-apache2. Il n'y a aucune entrée pour --with-apache2...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X