web-dev-qa-db-ja.com

Apacheは実行する代わりにphpコードを表示します

最近、私のコンピューターにphpとApacheをインストールしようとしています。数時間後にインストールされます。私はみんなが言うようにhttpd.confとphp.iniファイルを修正しました。次に、単純なphpスクリプトを作成しました。

<?php phpinfo(); ?>

しかし、http://127.0.0.1/phpinfo.phpで実行しようとすると、実行する代わりにソースコードが表示されるだけです。 Apache2、php5、Windows Vistaを使用しています。私はインターネット上で成功せずに検索してきましたが、壁に頭をぶつけようとしています。誰も私を脳震盪から救うことができますか?

編集された行:

PHP.INI:

short_open_tag = On

HTTPD.CONF

LoadModule php5_module "C:/php/php5Apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "C:/php"
88
imulsion

Phpを有効にする必要があります! Apacheディレクトリ(デフォルト:/ etc/Apache2 /)のmods-enabledフォルダーを確認して、phpという名前のファイルが見つかったかどうかを確認します。拡張機能は覚えていませんが、.soであると思います。

また、var/log/Apache2/error.logをチェックして、エラーがあるかどうかを確認します。

80
Daniel Figueroa

うわー、ここにたくさんの解決策があります!ここに私がやったことがありますbuntu 16.04

Sudo apt-get install php libapache2-mod-php
Sudo a2enmod mpm_prefork && Sudo a2enmod php7.0
Sudo service Apache2 restart
42
helmy

PHP 7(以前のバージョンにも適用される場合があります)の場合、これを行う必要がありました。

これを/etc/Apache2/Apache2.confの最後に追加します

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

これをターミナルから実行します。

Sudo a2dismod mpm_event && Sudo a2enmod mpm_prefork && Sudo a2enmod php7

次に、Apacheを再起動することを忘れないでください。

Sudo service Apache2 restart

これは次の要約です: https://www.atlantic.net/community/howto/try-php7-lamp-ubuntu-14-04/

29
RyanNerd

ファイルを開く

/etc/Apache2/httpd.conf

そして変化

#LoadModule php5_module libexec/Apache2/libphp5.so

LoadModule php5_module libexec/Apache2/libphp5.so

httpd.confでPHPモジュールのロードを解除するだけです

24
inigo333

関連する問題を解決するためにこれを見つけました。 関連する<Directory>セクションに追加しました:

<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>
6
Pawel

私のために働いた別の答え。 [Sudo] apt-get install libapache2-mod-php5.Xをインストールすることです

5
Simon Mohoalali

上記または以前に言われたこと(考えられる理由)を試しても、実行せずにコードが表示される場合は、対処していない間違ったことが1つあります。 PHPコードへのアクセスに使用したURL。 .phpファイルをWebブラウザーにドラッグするだけでphpコードを実行しようとする人もいます。これは間違った慣行であり、この種の問題につながる可能性があります。 C:// wamp/wwwフォルダーに「test.php」としてファイルを保存した場合、このファイルにアクセスする必要があります:localhost://test.php。この方法でアクセスすると、この種の間違いが発生します:localhost://wamp/www/test.php

誰か助けてくれたらいいなと思います。 o /〜ダニエル

3
DAniel

ケースインのために私のために働いたものを投稿することは、将来の誰かを助けますが、それは珍しいケースです。

Webホストがデフォルトよりも高いバージョンのphpを使用するようにハンドラーを設定しました。 5.1がありましたが、5.6が欲しかったのでこれがありました:

<FilesMatch \.php$>
    SetHandler php56-cgi
</FilesMatch>

私の.htaccessファイルに。

自分のサイトをローカルで実行しようとすると、そこにあるとphpコードがブラウザーに出力されました。問題を解決しました。

3
evanmcd

。htaceessファイルを削除して、システムに新しい(空白または基本)ファイルを作成させることができます。追加した行の一部が誤ったステートメントであるか、内部の何かが問題を引き起こしている可能性があります。古い。htaccessファイルから1行ずつ追加して、問題の原因を確認できます。

それは私のために働いた。私の場合、PHP拡張機能を表示しないようにマシンに指示する行は問題でした(RewriteCondおよびRewriteRule)。私の古い。htaccessファイルは共有サーバーでは問題なく動作しましたが、VPSに切り替えたときにこの問題が発生しました。

2
bokistack

このスレッドの他の人の提案に感謝します。上記の手順に従って、Apacheサーバーは/etc/Apache2/mods-enabledloadファイルの構文エラーの報告を開始できないことがわかりました。 php7.0とphp7.1の両方が有効になったことがわかります。

a2dismod php7.0
systemctl restart Apache2

そして、phpは再び正しくレンダリングされます。

2
djnz0feh

上記のどれも適用も機能もしませんでした... PHP7、CentOS 6上のApache Httpd 2.2

実際には、Apacheの前に(すべてyumで)phpをインストールしました...あなたは逆を行う必要があります:常にApacheをインストールし、次にPHPをインストールしてから動作します...実際、libphp7.solibphp7-zts.so/etc/httpd/modules/にありません

とにかくPHPをアンインストールせずに回復することができました。 /etc/httpd/conf/httpd.confに魔法の行を追加しました:AddType application/x-httpd-php .phpそして、実行します:yum install php php-mysql

1
berhauz

私のために働いたもの:

アクティブなhttpd.confで、見つける

<IfModule mime_module>
...
</IfModule>

以下が欠落していました

AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php

Apacheの再起動後、.phpファイルは正しく解析されます。

1
paul

モジュールuserdirが有効で、サイトがuserdir(〜/ public_html)にある場合、/ etc/Apache2/mods-enabled/php5.confを確認する必要があります。次の部分で機能します(Ubuntu 14.10 utopicで)

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

# <IfModule mod_userdir.c>
#     <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
# </IfModule>
1
user906489

Ubuntuユーザーの場合、Apacheをインストールした後、新規インストールで次のコマンドを実行する必要があります

Sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

私の場合はうまくいきます。

1
Hasan Baig

同じ問題がありました。 phpファイルを実行すると、Webブラウザーは実行する代わりにphpコードを表示しました。私は何度も試しました:wampserver64をアンインストール/再インストールし、PHP/Apache設定/モジュールなどを回避します。2日後:デフォルトの組み合わせ「ctrl + alt +シフト+クロムのR "。クロムのアドレスバーで「file /// C:/ wamp64/www/bla/bla ..」のようなphpファイルを実行しようとしていました。それが私の問題でした。ページに従って変更を加えました localhostでphpを実行するためのNotepad ++の構成? 。私の問題は解決しました。しかし、2日後.

0
mechanic

Debian 9ソリューション:

touch /etc/Apache2/conf-available/php.conf 

ファイルに次の行を追加します。

<IfModule mod_php5.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>
<IfModule mod_php.c>
    <IfModule mod_mime.c>
        AddType application/x-httpd-php .php
    </IfModule>
    <FilesMatch ".+\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</IfModule>

次に実行します:

a2enconf php && service Apache2 restart
0
mrDinkelman

モジュールsuphpのDebian/Ubuntuのデフォルト構成が原因で、同じ問題が発生しました。/usr/share全体に対してsuPHP_Engine offが含まれていたため、ブラウザにphpソースが表示されました。 a2dismod suphpによる非アクティブ化が暫定的な解決策でした。

0
Torsten Knodt

ApacheはIssue fixedを実行する代わりにPHPコードを表示します

1。 php5.6 confまたはphp7.x confを開きました

#次のコマンド:

$ Sudo vi /etc/Apache2/mods-enabled/php5.6.conf

2.コメントされた次の行

enter image description here

3.サーバーを再起動しました

$ sudoサービスApache2 restart

4お楽しみください:)

0
Matthew Farrell

Phpバージョンの競合が発生する場合があります。それを克服するには、以下の手順に従ってください。

ステップ1:Yum list installed | grep 'php'

php 5.6やphp 7.0のようなphpの複数のバージョンがある場合、この信頼性は発生します

ステップ2:yum remove ** PHPバージョン**

ステップ3:その後、apapche /etc/init.d/httpd restartまたはservice Apache2 restartを再起動します

0
sachin_ur

これは、MAMPで$ _POSTを実行しているときにも起こりました。すべての.iniファイルとhttpdファイルがすべて正しくセットアップされました。フォーム処理を行っており、htmlドキュメントを持ち、$ POSTを実行しているphp formhandlerに情報を投稿している場合は、ローカルではなく、ローカルホストからサーバー経由でhtmlファイルを実行していることを確認してください。

これは、ディレクトリ内のhtmlファイルをクリックしてWebブラウザーで起動するだけで、HTMLドキュメントを実行するためのショートカットでした。実際には、PHPがフォームで処理されているかどうかを確認するには、サーバーでHTMLを実行する必要があります。私が見落としていた非常にシンプルなプロトコル。

例:

間違った:file:///Applications/MAMP/htdocs/form/form.html

右:http://localhost:your port number/form/form.html

送信ボタンをクリックすると、PHPが処理されるようになります

0
maidenastraea

Xampp(Apache)を管理者として実行します。グーグルでchromeタイプ:

localhost/<insert folder name here>/<insert file name>

つまり、作成したフォルダが「LearnPhp」である場合、ファイルは「chapter1.php」であり、次に入力します

localhost/LearnPhp/chapter1.php

このフォルダーは、xamppをダウンロードしたときに作成されるhtdocsフォルダーのxamppフォルダーに作成しました。

0
Aquasar