web-dev-qa-db-ja.com

PHPファイルは、ローカル開発サーバー(MAMP)によって処理されるのではなく、ブラウザーによってダウンロードされます

私が追加するまで、すべてがうまくいきましたAddHandler application/x-httpd-php5s .phpをローカルサーバーのドキュメントルートにある.htaccessファイル(使用しているサイトに応じて頻繁に変更します)。 http:// localhost:8888 にアクセスしたときにそれを行ったので、ブラウザはindex.phpをダウンロードするだけで、まったく処理されず、生のコードだけが処理されます。今.htaccessファイルからその行を削除しましたが、まだこの問題があります

127.0.0.1のhostsファイルに代替エントリを追加すると、新しいエントリは以前の「localhost」のように動作することがわかりました。しかし、上記の行を.htaccessに追加すると、その新しいホストもノックアウトされます。私は [〜#〜] mamp [〜#〜] を再インストールして、キャッシュと見つけたすべての一時ファイルをクリアしてみました。私はApacheのhttpd.confファイルをサーフィンしましたが無駄でした。

したがって、明確にするために: http:// localhost:8888 は上記の問題を経験しています。 127.0.0.1のhostsファイルに新しいエントリを追加し、「goomba」と言って、上記の行がルート.htaccessにない場合(そしてそのHost/alias/whateverにアクセスしたことがない場合)、アクセスできます http:// goomba:8888 問題ありません。しかし、その行を.htaccessに追加した場合、.htaccessファイルからその行を削除しても、それを回避するために、ホストファイルにさらに別のエントリを追加する必要があります。

別の127.0.0.1エイリアス(ホスト?それは何と呼ばれていますか?)を使用しても問題ありませんが、これがまだ壊れているのは私を悩ませています。

明確にするために、私はMac OS Leopardを使用しています(ただし、組み込みのApacheセットアップではなくMAMPを使用しています)。

15
donut

ハンドラーがあるべき場所にmimetypeを適用しています( ハンドラーに関するドキュメント を参照)

代わりにこれを試してください:

AddType application/x-httpd-php5 .php

編集:キャッシュモジュールがロードされていることを示したので、 caching および htcacheclean を読み取ることができます(ディスクキャッシュをクリアするため)。 CacheDisable ディレクティブを一時的に使用することもできます。また、リクエストしたファイルの名前を変更し(index.php-> index.bakなど)、ブラウザでファイルを再度リクエストし(404になっているはずです)、元に戻して再試行することもできます。

5
Cez

同じような問題が数回ありましたが、ファイル名を変更してもうまくいきませんでした。 OS X Lionでは、正しい構成は次のとおりです。

<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>

私にとってそれを機能させた魔法はSetHandler application/x-httpd-phpの部分です。

もちろん<IfModule php5_module>をphpバージョンに編集してください。

14
Matt Grannary

ただ注意してください。ライブ環境のhtaccessファイルが他のファイルと一緒に誤ってダウンロードされていないことを確認してください。さらに、htaccessを編集するときは、必ずPHP=バージョンを一致させてください。バージョンが違うと、同じ問題のある設定になります。

PHP7を実行する例を次に示します。

application/x-httpd-ea-php71 .php .php7 .phtml

この情報がお役に立てば幸いです-チケットが作成されてから8年後に私に起こりました:)

4
StefaDesign

おそらくあなたはapplication/x-httpd-php5 の代わりに application/x-httpd-php5s? (最後にsがないことに注意してください。)

2
Amber

同じ問題で、「5」AddTypeアプリケーション/ x-httpd-php .php .htm.htmlを削除しました

うまくいきました!試してみてください

1
rkaartikeyan

私の場合、私のルートの関連するhtaccesファイルの「AddHandler php56-cgi .php」を削除またはコメントアウトして解決しました

ベスト

0
StJungDev

私は実際に非常によく似た問題を抱えていました。 phpとApacheが一緒に機能しているかどうかをテストしようとすると、すべてのphpファイルがダウンロードされていました。彼らが一緒に働いていなかったことが判明しました。

Phpをアンインストールする必要がありました。同じ手順を実行してから、MAMPでインストールする代わりに、php.netでダウンロードしたZipファイルを使用してphpを再インストールすることをお勧めします。私の問題は、phpインストーラーを使用していたことだと思います。それを使用することはお勧めしません。

このウェブサイトは私を大いに助けました、私はApacheが起動しないという問題を抱えていました、そしてそれはあなたの問題ではありませんが、このウェブサイトはApacheが起動しないこととphpファイルのダウンロードの問題の両方を解決しましたそしてあなたがMacを使っていてもそれは役立つかもしれませんあなたも http://forums.phpfreaks.com/topic/185771-problem-starting-Apache-2214-after-installing-php-5212

すべてがうまくいくことを願っています!幸運を!

0
Annabelle Green

誰かがこの種の問題を再び抱えている場合は、まず最も重要なことを行います。つまり、プライベートナビゲーションを使用します(キャッシュなし)。このために時間を無駄にしました。

GL HF

0
Mariella

まず、Apacheサーバーが実行されているかどうかを確認します。スタート->実行-> cmdそしてコマンドを実行します:

netstat -abn

次のような行の結果を検索します。

TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 600 [Apache.exe]

ポート8888(0.0.0.0:8888行なし)でリッスンしているものが見つからない場合は、Apacheの起動に失敗しています。起動できない理由を見つけるには、Apacheログディレクトリを見つけてerror.logを調べる必要があります(phpを最近更新した可能性がありますか?)。 0.0.0.0:80のリスニングラインが見つかったが、他のソフトウェアがそこでリスニングしている場合(IIS実行中ですか?)、そのソフトウェアを削除/再構成して、ポート80を解放する必要があります。 Apacheはポート80でリッスンしていますが、サイトを開くことができず、Apacheログファイルを調べることで問題の原因を突き止めることができません。データベースの問題です。mysqlが実行され、同じコマンドを使用してリッスンしているかどうかを確認してください。

TCP 0.0.0.0:3306 0.0.0.0:0リスニング[mysqld-nt.exe]

このような行が見つからない場合は、mysqlサーバーが実行されていません。mysqlログファイルでエラーを確認してください。両方のサーバーが実行されていて、ブラウザで出力を取得できない場合は、ファイアウォールとウイルス対策を確認してください。リクエストがブロックされる可能性があります。お役に立てれば ;)

0
Sarfraz