4 votes

Le démarrage d'Apache échoue après des modifications de la configuration d'Apache, il affiche une erreur de syntaxe, ne peut pas charger php5apache2_2.dll dans le serveur

Je suis à nouveau coincé avec les gars de la configuration d'Apache. Je travaille sur un système 64 bits sous Windows 7 professionnel avec le Service Pack 1. J'ai copié le répertoire d'installation de php5 depuis les coéquipiers, j'ai copié les fichiers nécessaires à l'installation de php5. .dll de l'intérieur du dossier d'installation de php5 (comme ils l'étaient dans la configuration de travail de mes coéquipiers) à ma windows/system32/ . Le serveur Apache a démarré avec succès avec la configuration apache par défaut ( httpd.conf ). J'ai pu accéder à localhost dans le navigateur. Mais le code php n'est pas analysé. J'ai remarqué qu'il n'y avait pas de ligne comme la suivante dans le fichier de configuration d'apache:-

# PHP5 module
LoadModule php5_module D:/php5/php5apache2_2.dll

Si j'ajoute cette ligne, le démarrage du serveur apache échoue. L'exécution de la configuration de test donne l'erreur suivante -

httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.  

Mais le php5apache2_2.dll est présent à l'emplacement spécifié et j'ai donné toutes les permissions à l'utilisateur actuel du système pour le fichier php5 répertoire d'installation. La même ligne apparaît également dans le journal des erreurs d'Apache. Une autre chose est que je ne sais pas exactement quand les journaux sont écrits dans le fichier journal. Je ne sais pas si les entrées de journal ne sont pas faites si j'ai ouvert le fichier journal pour le lire ? lol ... parce que je n'ai pas pu observer un modèle dans le moment où les entrées sont faites. J'ai vu certaines entrées de journal être faites, d'autres non. Mais c'est un autre problème pour le moment.

J'avais précédemment installé apache, php sur le même système, sur un autre disque dur. J'avais suivi les mêmes étapes que maintenant et l'installation s'était déroulée avec succès, bien qu'après de nombreuses prises de tête, comme la confusion de l'entrée du fichier journal que j'ai écrite ci-dessus. Je ne me souviens pas de la façon dont j'ai résolu le problème plus tôt. Mais, j'ai essayé avec le même fichier de configuration d'apache (celui qui fonctionnait sur l'installation précédente sur l'ancien disque dur - j'avais fait une sauvegarde), mais cela donne toujours la même erreur.

Update
Je lis http://us3.php.net/manual/en/install.Windows.apache2.php et a ajouté AddHandler application/x-httpd-php .php juste après LoadModule php5_module "D:/php5/php5apache2_2.dll" . Toujours pas de succès.

J'ai aussi lu ce blog où certains binaires VC6 et VC9 sont mentionnés. Je ne les connais pas. Dois-je faire quelque chose à ce sujet ?

Nouvelle mise à jour
J'ai téléchargé apache depuis http://httpd.apache.org/download.cgi - l'option "Win32 Binary without crypto (no mod_ssl) (MSI Installer)".

9voto

Leif Points 436

Vous avez probablement construction Apache incompatible . Vous n'avez pas indiqué d'où vous avez téléchargé Apache HTTPD et quelle version de PHP vous avez.

  1. Obtenez la dernière version d'Apache à partir de Site web de l'Apache Lounge -- leurs constructions sont compilées avec VC9 alors que les compilations d'apache.org sont toujours en VC6. Vous avez besoin de la VC9 car c'est la façon dont les compilations officielles de PHP sont compilées maintenant (vous pouvez lire une petite explication sur le site web de PHP pour Windows -- voir le lien dans le #2).

  2. Obtenez Sécurité des fils de PHP à partir de PHP pour Windows (d'après votre question, vous voulez l'exécuter en tant que module Apache). Si vous voulez l'exécuter en tant que FastCGI, alors une construction non threadée est nécessaire.

  3. Désactiver tout non par défaut php (jusqu'à ce que vous réussissiez à démarrer Apache avec PHP fonctionnel).

  4. Configurez votre PHP et Apache si nécessaire (les lignes de configuration d'Apache que vous avez mentionnées jusqu'à présent sont correctes).

P.S. "J'ai copié les fichiers .dll nécessaires depuis le dossier d'installation de php5 (comme ils l'étaient dans l'installation de travail de mes coéquipiers) vers mon Windows/system32/"

  1. Vous êtes sur la version x64 bit de Windows. C:\windows\system32\ est pour les processus/fichiers 64 bits UNIQUEMENT. Dans votre cas, Apache et PHP sont x32, donc l'endroit correct serait C:\Windows\SysWOW64 .

  2. Il n'y a pas vraiment de raison de copier ces fichiers à cet endroit. Vous pouvez ajouter le chemin d'installation de PHP ( D:\php5\ ) à la variable d'environnement PATH (placez-le devant) et Windows trouvera tous les fichiers automatiquement (un redémarrage peut être nécessaire) -- cela fonctionne bien pour moi.

P.P.S. Au lieu de l'installer manuellement, vous pouvez utiliser l'une des piles déjà préconfigurées : XAMP , WAMP ou similaire.

3voto

Mark Hurd Points 8193

J'ai réglé le problème. En fait, l'absence de certains fichiers dll nécessaires, je ne suis pas sûr de quel fichier en particulier, était la raison et j'essayais en l'absence de beaucoup de fichiers dll.

Ce que j'ai fait, c'est que j'avais suivi la partie configuration d'apache du coéquipier 1 et ensuite copié le répertoire php5 du coéquipier 2 (qui était sur un système 32 bits avec Windows px). J'ai supposé que le répertoire php 5 serait le même et j'avais tort. Le problème a été résolu lorsque j'ai pris le dossier php 5 du coéquipier 1.

J'ai vérifié et constaté qu'il y avait de nombreuses différences dans le contenu des deux dossiers php5, principalement des fichiers dll. L'absence des fichiers dll nécessaires a dû être le problème car j'ai dû redémarrer le système après avoir pris le bon dossier php5 du coéquipier 1.

Morale de l'histoire -
En copiant, n'appliquez pas le cerveau et copiez du même endroit :)

3voto

asmmahmud Points 131

Vous n'avez pas besoin de copier l'un ou l'autre de ceux-ci (comme libeay32.dll , ssleay32.dll ) n'importe où, le problème peut être résolu en ajoutant le répertoire d'installation de php à la variable d'environnement du chemin du système.

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