J'utilise Apache2 sous Mac OS X (10.5) . Je viens de compiler PHP 5.2.8 et je me suis enfin mis au pdo-mysql
travail (du moins je pense).
Cette commande de terminal:
php --version
montre 5.2.8 et j'ai les bons modules installés.
Mais, quand je fais un phpinfo()
, Apache désactive PHP 5.2.6 (ma version précédente, sans pdo_mysql
).
Comment dire à Apache quel PHP charger? Le httpd.conf
a la ligne:
LoadModule php5_module libexec/apache2/libphp5.so
Mais, je ne sais pas quoi ou où c'est.
Est-ce ce que je dois changer?
php
apache-2.2
pdo
Sam McAfee
la source
la source
Réponses:
Je pense que toutes ces réponses ne répondent pas vraiment à la question. Le niveau racine peut être déterminé en exécutant la commande
httpd -V
. Cela vous montrera les options avec lesquelles le démon Apache a été construit au moment de la compilation. C’est ce qui contrôle oùhttpd
détermine où chercher sa configuration. fichiers et modules .so par défaut.Par exemple:
La ligne clé dans cette sortie est le
HTTPD_ROOT
. Cela définit leROOT
début du répertoire Apache ,/etc/httpd
dans mon cas, lors de la recherche de config. fichiers et modules.NOTE: Ce
ROOT
n'est pas la même chose queDocumentRoot
. CeciROOT
est spécifique à la façon dont lehttpd
démon a été compilé, ilDocumentRoot
s'agit de spécifier où lehttpd
démon doit commencer à rechercher le contenu Web réel (fichiers .html et autres).Pour mon
httpd.conf
fichier, j'ai les lignes de charge suivantes:Dans ce cas, le chemin complet de vos modules serait, par exemple:
Cela provient d'un système CentOS 5.x mais la technique est toujours appropriée.
BTW, cela peut être un peu déroutant car dans le cas de CentOS, les fichiers sont organisés physiquement ici:
... et ensuite accessible au démon Apache
httpd
, via ce chemin:Le
modules
lien relie/etc/httpd
->/usr/lib/httpd/modules
.la source
Vous pouvez trouver des fichiers sur votre système avec la
locate
commande:Il imprimera les chemins complets de tous les fichiers portant ce nom. J'ai un à
/usr/libexec/apache2/libphp5.so
.la source
Le répertoire parent des modules chargés dans httpd.conf (tel que:)
libexec/apache2/libphp5.so
est défini par laServerRoot
directive qui est généralement définie par défaut/usr
. Je ne recommanderais pas de changer cela, mais il peut être utile que quelqu'un sache exactement où ce chemin est défini.Le site Web d'Apache dit ceci à propos de ServerRoot :
De plus, les commentaires du fichier httpd.conf par défaut étaient les suivants:
ServerRoot: sommet de l'arborescence dans lequel sont conservés les fichiers de configuration, d'erreur et de journalisation du serveur.
la source
Apache devrait rechercher des modules dans "/ usr / libexec / httpd /". Vous y trouverez un fichier ou un lien symbolique appelé "libphp5.so". S'il s'agit d'un lien symbolique, vous devrez créer un lien vers la nouvelle libphp5.so 5.2.8, sinon copiez simplement la libphp5.so 5.2.8 dans "/ usr / libexec / httpd /" et redémarrez apache avec "sudo apachectl restart" .
la source
J'avais un Apache et PHP installés sur l'un des serveurs. Cela a été installé par l'administrateur précédent du système. Apache et PHP ont été respectés à partir de la source. En plus de cela, un PHP par défaut était installé. Donc, pour savoir quel PHP est utilisé par Apache. Je lance la commande ci-dessous
Cela m'a donné le chemin d'apache apxs
Cela m'a donné des informations sur lequel Apache est utilisé par ce php. Le php par défaut donnait une erreur quand je tapais
Donc, de cette façon, j'ai pu comprendre le php utilisé par Apache.
la source