2010-02-23 7 views
11

Tout allait bien jusqu'à ce que j'ajoute AddHandler application/x-httpd-php5s .php au fichier .htaccess dans la racine du document de mon serveur local (que je change fréquemment en fonction du site que je suis travailler avec). Depuis que je l'ai fait quand je visite http://localhost:8888 mon navigateur télécharge simplement l'index.php et il n'est pas traité du tout, juste le code brut. Maintenant J'ai supprimé cette ligne du fichier .htaccess mais j'ai toujours ce problème.Les fichiers PHP sont téléchargés par navigateur au lieu d'être traités par le serveur de développement local (MAMP)

J'ai trouvé que si j'ajoute une entrée alternative à mon fichier hosts pour 127.0.0.1 la nouvelle entrée se comporte comme 'localhost'. Mais si j'ajoute la ligne ci-dessus à mon .htaccess, il frappe aussi ce nouvel hôte. J'ai essayé de réinstaller MAMP et effacer ses caches et tous les fichiers temporaires que j'ai pu trouver. J'ai surfé sur le fichier httpd.conf d'Apache en vain. Donc, pour être clair: http://localhost:8888 rencontre le problème ci-dessus. Si j'ajoute une nouvelle entrée à mon fichier hosts pour 127.0.0.1, dites 'goomba' et la ligne ci-dessus n'est pas dans la racine .htaccess (et n'a jamais été pour cet hôte/alias/peu importe) alors je peux accéder à http://goomba:8888 . Mais si j'ajoute cette ligne au .htaccess alors je dois ajouter encore une autre entrée à mon fichier hosts pour la contourner même si je supprime cette ligne du fichier .htaccess. Je peux utiliser un autre alias 127.0.0.1 (host? Comment ça s'appelle?) Mais ça m'embête de dire que c'est encore cassé. Pour être clair, je suis sur Mac OS Leopard (mais je n'utilise pas la configuration intégrée d'Apache, mais MAMP).

Répondre

4

Vous appliquez un type MIME où un gestionnaire doit être (voir documentation on handlers)

Essayez ceci:

AddType application/x-httpd-php5 .php 

EDIT: Comme vous l'avez indiqué des modules de mise en cache sont chargés, vous pourriez lire sur caching et htcacheclean (pour effacer le cache disque). Vous pouvez également utiliser temporairement la directive CacheDisable. Une autre chose que vous pouvez également essayer est de renommer le fichier que vous avez demandé (par exemple index.php -> index.bak), demander à nouveau le fichier dans le navigateur (devrait maintenant 404), puis revenir en arrière et essayer à nouveau.

+0

J'ai essayé cela (et encore, juste maintenant) en vain. Mon httpd.conf a déjà cette ligne (moins le 5), de toute façon. Mon problème est que, malgré le retrait de la ligne problématique mentionnée dans ma question, j'ai toujours des problèmes. C'est comme si le serveur avait mis en cache le fichier .htaccess uniquement pour 'localhost', pas pour les autres hôtes qui pointent vers 127.0.0.1. Veuillez mettre l'accent sur ma question pour clarification. Je vous remercie de toute façon! – donut

+0

Le serveur a-t-il des modules de cache chargés? Oui, le "5" a été laissé par accident – Cez

+0

Il fait: file_cache_module, cache_module, disk_cache_module, et mem_cache_module. Comment pourrais-je effacer ces caches? Est-ce que l'un d'entre eux causerait ce problème? Merci! – donut

0

Vérifiez d'abord si votre serveur apache est en cours d'exécution. Démarrer-> run-> cmd puis exécutez la commande suivante:

netstat -abn

le résultat de recherche pour la ligne comme ceci:

TCP 0.0.0.0:8888 0.0.0.0:0 ÉCOUTE 600 [apache .exe]

Si vous ne trouvez pas quelque chose qui écoute sur le port 8888 (pas de ligne 0.0.0.0:8888) alors votre apache ne démarre pas. Pour découvrir pourquoi il ne peut pas commencer, vous devriez trouver le répertoire du journal apache et examiner le error.log (peut-être avez-vous mis à jour votre php?). Si vous trouvez une ligne d'écoute 0.0.0.0:80 mais que d'autres logiciels écoutent (avez-vous IIS en cours d'exécution?), Vous devez supprimer/reconfigurer cette softure pour libérer le port 80. Si vous avez une écoute Apache sur le port 80 mais que vous ne pouvez toujours pas l'ouvrir votre site et vous ne pouvez pas comprendre ce qui cause le problème en examinant les fichiers journaux apache puis mon problème de base de données. Vérifiez si votre mysql est en cours d'exécution et l'écoute en utilisant même commande, mais vous devriez être à la recherche d'

TCP 0.0.0.0:3306 0.0.0.0:0 ÉCOUTE [mysqld-nt.exe]

Si vous ne trouvez pas cette ligne alors votre serveur mysql ne fonctionne pas - vérifiez les fichiers journaux de mysql à la recherche d'erreurs. Si les deux serveurs sont en cours d'exécution et que vous ne pouvez obtenir aucune sortie dans votre navigateur, vérifiez votre pare-feu et votre antivirus - ils peuvent bloquer vos demandes. J'espère que cela aide;)

+1

Quelques choses: Je suis sous Mac OS Leopard; le serveur Apache travaille pour de nouvelles entrées dans mon fichier hosts. S'il vous plaît voir les mises à jour de mon message pour plus de détails. Merci! – donut

2

Peut-être que vous voulez application/x-httpd-php5 au lieu de application/x-httpd-php5s? (Notez l'absence d'un s à la fin.)

+0

J'ai essayé cela en vain. Avant cela fonctionnait très bien sans rien dans le .htaccess. – donut

1

Pour la même question, j'ai supprimé l'application AddType '5'/x-httpd-php .php .htm .html

son fonctionne bien! essayez

12

J'ai eu un problème similaire à quelques reprises et renommer le fichier n'a pas fonctionné pour moi. Avec OS X Lion J'ai trouvé la bonne configuration est la suivante:

<IfModule php5_module> 
    AddType application/x-httpd-php .php 
    <FilesMatch \.php$> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    AddType application/x-httpd-php-source .phps 
    <IfModule dir_module> 
     DirectoryIndex index.php index.html 
    </IfModule> 
</IfModule> 

La magie qui a fait fonctionner pour moi est la partie SetHandler application/x-httpd-php.

Bien sûr, éditez le <IfModule php5_module> à votre version de php.

+0

C'était également le cas sur OSX Mountain Lion. – Jack

+3

où devrait-il être placé? –

+0

@ToniMichelCaubet: Tard dans la partie, mais placez-le dans '/ etc/apache2/other/php5.conf' et assurez-vous que la configuration principale d'apache (dans'/etc/apache2/httpd.conf') a une ligne non commentée (près du bas) qui lit: 'Inclure/etc/apache2/other/*. conf'. – webtweakers

0

En fait, j'ai eu un problème très similaire. Tous mes fichiers php étaient en train de télécharger quand j'ai essayé de tester si php et apache travaillaient ensemble. Il s'avère qu'ils ne travaillaient pas ensemble.

Je devais désinstaller php, je recommanderais le même plan d'action et ensuite réinstaller php juste en utilisant le téléchargement de fichier zip sur php.net, au lieu de l'installer avec MAMP. Je pense que mon problème était que j'avais utilisé l'installateur php. Je ne recommande pas d'utiliser ça.

Ce site m'a beaucoup aidé, j'avais un problème avec apache ne démarre pas et alors que ce n'est pas votre problème, ce site a résolu à la fois l'apache ne démarre pas et le téléchargement de fichiers php problème et même si vous êtes sur mac il peut vous aider aussi http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

Espérons que tout fonctionne! Bonne chance!

0

dans mon cas la suppression ou un commentaire sur "AddHandler php56-cgi .php" dans mes fichiers impliqués de htacces de racine a résolu

Meilleur