J'ai eu un serveur exécuté sur une machine Windows XP à l'aide d'Apache2 avec PHP et MySQL. J'ai récemment mis à niveau vers Windows 7 et j'ai eu du mal à le faire fonctionner. Apache fonctionne bien et PHP fonctionne, mais je n'arrive pas à le faire fonctionner avec un fichier Lorsque je défini Quand je défini Lorsque je laisse de côté Quelqu'un a-t-il trouvé une solution pour ce problème? Merci! P>
Je l'active au plus un à tout moment. P> php.ini code>. P>
phpinidir code> sur un répertoire avec un fichier
php.ini code>, le service Apache ne démarre pas. P>
phpinidir code> sur un répertoire sans
PHP.INI code>, le service Apache commence. P>
phpinidir code>, le service Apache ne démarre pas. P>
phpinidir "c: \ windows" code> #works (no
php.ini code> fichier) p>
phpinidir "c: \ fichiers de programme (x86) \ php \" code> #does ne fonctionne pas (contient
php.ini code> fichier) p>
7 Réponses :
Il y a plusieurs raisons: p>
J'ai essayé de permettre des erreurs, mais continuez à obtenir la même erreur - "L'opération demandée a échoué!"
Il y a une section à la fin de PHP.ini avec ce qui semble être des extensions. Ils ressemblent à ceci: [php_bz2] extension = php_bz2.dll [php_curl] extension = php_curl.dll lorsqu'ils sont tous commentés, Apache commence bien. Une idée de cette idée?
Après quelques autres tests, il semble que je puisse activer les extensions, mais il existe une sorte de limite, je pense par la taille totale de la vulgarisation?
Ok, donc c'est causé par une extension PHP. Avez-vous compris lequel exactement? Il n'est pas nécessaire de permettre toutes les extensions à la fois. Essayez simplement d'activer ceux dont vous avez besoin, un par un, afin que vous sachiez lequel échoue. Pourriez-vous également vérifier la valeur de "extension_dir" dans php.ini?
Oh, et spécifiez-vous les versions d'Apache et de PHP que vous avez installées?
D'accord. C'est exactement ce que j'ai. Deux autres choses. Avez-vous testé le fichier de configuration de Apache? (Démarrer -> Tous les programmes -> Apache HTTP Server -> Configurer le serveur Apache -> Configuration du test). Cela devrait dire "syntaxe ok". Pourriez-vous également vérifier s'il y a quelque chose dans le fichier error.log? (Apachedir / Logs / Error.log, au cas où vous ne changeriez pas le chemin d'erreur.log).
Le test dit "Syntaxe ok" comme si vous avez dit. Le journal n'a aucune erreur, cependant, je reçois les avertissements suivants quand il échoue. [Avertissement] (OS 995) L'opération d'E / S a été abandonnée en raison d'une sortie de fil ou d'une demande d'application. : Winnt_accept: L'acceptation asynchrone a échoué. [Avertissez] PID Fichier C: / Fichiers de programme (X86) / Apache Software Foundation / Apache2.2 / Logs / httpd.pid écrasé - arrêt impur de l'exécution d'Apache précédente?
Euh oh, peut-être que cela aidera: Brooks-Bilson.com/blogs/rob/index.cfm/2008/1/4/...
cela n'a pas aidé. L'avertissement d'identification semble être le plus répandu.
Peut-être que c'est causé par le pare-feu ou une autre application qui utilise le même port que Apache? Je viens de réussi à écraser Apache par Skype (Outils -> Options -> Advanced -> Connexion -> Utiliser le port 80 et 443 ...), je l'ai effectivement désactivé avant juste après l'installation, mais quand il est retourné La même erreur se produit ("l'opération demandée a échoué!"), bien que Apache n'écrit rien dans le fichier journal.
Si ce n'est pas causé par pare-feu / skype, vous pouvez essayer ces éléments: # 1 Remplacez l'installation PHP avec celui-ci: php.net/get/php-5.2.11-win32.zip/from/a/mirror . # 2 Assurez-vous que Apache et PHP sont inclus dans le chemin de Windows. Si ces deux éléments ne fonctionnent pas, essayez de déplacer Apache et PHP à partir du répertoire des fichiers de programme en la racine (par exemple C: \ Apache et C: \ php), essayez simplement d'utiliser un chemin sans blanchissures, cela aide parfois.
# 1 semble l'avoir réparé. La seule différence que je vois est que la nouvelle version a beaucoup moins d'extensions, alors je suppose que une ou plusieurs des extensions rompaient quelque chose. Merci!
J'ai eu le même problème. Je l'ai corrigé. Ouvrez le fichier php.ini avec un bloc-notes ou un éditeur de texte. Désactivez toute l'extension dans le fichier php.ini. Extensions de commentaires par un par et découvrez quelle extension provoque le problème. P>
J'ai eu le même problème, vous devez spécifier l'URL complète du module PHP dans le Tous les guides que j'ai trouvés ont dit de mettre les suivants: P> httpd.conf code>.
PHPIniDir "C:/Program Files/PHP"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
Supprimer le dernier slash:
Mordu à nouveau par une barre oblique backslash dans httpd.conf code> ..., merci
Je n'ai jamais été capable d'aller au-delà de cette ligne: p>
LOADMODULE PHP5_MODULE "C: / Fichiers de programme (x86) /php/php5apache2_2.dll" p> blockQuote>
Enfin, dans le désespoir, j'ai créé un nouveau dossier C: / PHP, copié cette DLL dans C: / PHP et modifié la ligne sur P>
LOADMODULE php5_module "C: /php/php5apache2_2.dll" p> blockQuote>
Et pour la première fois que tout fonctionnait! Peut-être que ça n'aime pas les espaces sur le chemin. Ou peut-être que cela n'aime pas les noms de chemin longue. Je ne sais pas. Il est probable que ce correctif soit spécifique à une version particulière d'Apache et de PHP, mais après avoir passé environ 20 heures sur ce problème, je suis si seleur que je ne sais pas ce que cette dépendance pourrait être. P>
J'ai aussi eu ce problème, mais je pourrais avoir Apache de travailler à nouveau en désactivant toutes les extensions du fichier php.ini (j'ai eu tout le DLL dans le dossier EXT, mais ils ont été désactivés dans le PHP.ini)
Depuis que je voulais utiliser toutes les extensions PHP, j'ai essayé de désactiver un par un de voir lequel écrasait Apache. J'ai également installé PHP dans le C :, pour éviter les problèmes "espace vide / chemin long".
En fin de compte, voici la manière dont le fichier httpd.conf de mon Apache est, dans la partie de php: aussi, les extensions qui écrasaient Apache étaient les suivantes: p> Je ne sais vraiment pas ce qui ne va pas avec eux, cependant. p> Veuillez noter que j'ai installé PHP à l'aide du programme d'installation MSI (PHP-5.2.17-Win32-VC6- x86.msi) et j'ai installé toutes les extensions. J'utilise également Windows 7. P> P>
Au fur et à mesure de la réponse à la réponse @ AR2R de la suppression de la dernière barre oblique inverse, vous pouvez écrire le chemin à l'aide de barres obliques (avant) et fonctionnerait même avec une barre oblique à la fin. Pour une raison quelconque, en utilisant un fort> Backslash strong> à l'extrémité em> d'un chemin ne fonctionne pas dans les versions récentes de Windows: # works, no slash or forward slash at the end
PHPIniDir "C:\Program Files\PHP7"
PHPIniDir "C:/Program Files/PHP7/"
PHPIniDir "C:\Program Files\PHP7/" # mixing slashes and backslashes
# doesn't works, backslash at the end
PHPIniDir "C:\Program Files\PHP7\"
Pouvez-vous poster les directives de configuration qui fonctionnent et ne fonctionnent pas? Avez-vous une erreur dans les journaux d'Apache?
D: \ apache24 \ bin> httpd.exe -d d: / apache24 ah00526: erreur de syntaxe sur la ligne 517 de D: /APache24/conf/httpd.conf: commande invalide 'phpinidir', a été mal orthographiée ou définie par un module non inclus Dans la configuration du serveur