ApacheはPHPコードを実行する代わりに表示します
最近、コンピューターにPHPとApacheをインストールしようとしています。数時間後、それらはインストールされます。みんなが言うように、httpd.confファイルとphp.iniファイルを変更しました。次に、簡単なPHPスクリプトを作成しました。
<?php phpinfo(); ?>
http://127.0.0.1/phpinfo.php
で実行しようとすると、実行するのではなく、ソースコードが表示されるだけです。 Apache 2、PHP 5、WindowsVistaを使用しています。
編集された行:
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"
答え :
解決:
phpを有効にする必要があります! Apacheディレクトリ(デフォルト:/etc/apache2/
mods-enabled
をチェックして、php
という名前のファイルが見つかるかどうかを確認します。拡張子は覚えていませんが、.so
だと思います。
/var/log/apache2/error.log
をチェックインして、他にエラーがないかどうかを確認してください。
答え :
解決:
うわー、ここにはたくさんの解決策があります!これが私がUbuntu16.04でしたことです:
sudo apt-get install php libapache2-mod-php
sudo a2enmod mpm_prefork && sudo a2enmod php7.0
sudo service apache2 restart
答え :
解決:
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/
答え :
解決:
ファイルを開く
/etc/apache2/httpd.conf
と変更
#LoadModule php5_module libexec/apache2/libphp5.so
の中へ
LoadModule php5_module libexec/apache2/libphp5.so
httpd.conf
でPHPモジュールのロードを解除するだけです。
答え :
解決:
私はこれが私の関連する問題を解決するために見つけました。<Directory>
セクションに追加しました。
<IfModule mod_php5.c>
php_admin_flag engine on
</IfModule>
答え :
解決:
Apacheは、修正された問題を実行する代わりにphpコードを表示します
1. php5.6confまたはphp7.xconfを開きました
#次のコマンド:
$ sudo vi /etc/apache2/mods-enabled/php5.6.conf
2.次の行にコメントしました
3.サーバーを再起動しました
$ sudo service apache2 restart
4お楽しみください:)
答え :
解決:
上または以前に言われたことを試しても(考えられる理由です)、コードを実行せずに表示する場合は、間違っていることが1つあり、対処されていません。 PHPコードへのアクセスに使用したURL。 .phpファイルをWebブラウザにドラッグするだけでphpコードを実行しようとする人もいます。これは間違った慣行であり、この種の問題につながる可能性があります。ファイルを「test.php」としてC:// wamp / wwwフォルダーに保存した場合は、次の方法でこのファイルにアクセスする必要があります:localhost://test.php。この種の間違いは、次の方法でアクセスすると発生します:localhost://wamp/www/test.php
私が誰かを助けてくれることを願っています。 o /〜ダニエル
答え :
解決:
まれなケースですが、万が一の場合に備えて私に役立ったものを投稿することは、将来の誰かを助けます。
Webホストにデフォルトよりも高いバージョンのphpを使用するように強制するハンドラーを設定しました。 5.1がありましたが、5.6が欲しかったので、これを持っていました:
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
私の.htaccessファイルにあります。
私のサイトをローカルで実行しようとすると、そこにあるとphpコードがブラウザに出力されました。それを取り除くことで問題は解決しました。
答え :
解決:
このスレッドの他の人の提案に感謝します。/etc/apache2/mods-enabled
load
ファイルで構文エラーの報告を開始できなかったことがわかりました。 php7.0とphp7.1の両方が有効になっていることがわかりました。
a2dismod php7.0
systemctl restart apache2
そしてphpは再び正しくレンダリングされます。
答え :
解決:
.htaceessファイルを削除して、システムに新しい(空白または基本)ファイルを作成させることができます。追加した行の一部が誤ったステートメントであるか、内部の何かが問題を引き起こしている可能性があります。次に、古い.htaccessファイルから1行ずつ追加して、問題の原因を確認できます。
それは私のために働いた。私の場合、php拡張機能を表示しないようにマシンに指示する行が問題でした(RewriteCondとRewriteRule )。古い.htaccessファイルは共有サーバーで問題なく機能しましたが、この問題はVPSに切り替えたときに発生しました。
答え :
解決:
これは、MAMPで$ _POSTを実行しているときにも発生していました。すべての.iniファイルとhttpdファイルが正しく設定されました。フォーム処理を行っていて、htmlドキュメントがあり、$ POSTを実行しているphpフォームハンドラーに情報を投稿している場合は、ローカルホストだけでなく、サーバーを介してローカルホストからhtmlファイルを実行していることを確認してください。
これは、ディレクトリ内のhtmlファイルをクリックしてWebブラウザで起動するだけで、htmlドキュメントを実行するために行ったショートカットでした。実際にphpがフォームで処理されているかどうかを確認するには、サーバーを介してhtmlを実行する必要があります。私が見落としていた非常に単純なプロトコル。
例:
間違った例:file:///Applications/MAMP/htdocs/form/form.html
右:http://localhost:your port number/form/form.html
これで、送信ボタンをクリックするとphpが処理されます。
答え :
解決:
次の構成を/etc/apache2/apache2.conf
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
そして、sudoサービスを介しapache
を再起動しsudo service apache2 restart
答え :
解決:
PHP7とApache2.4の場合、これがあなたがする必要があるすべてです:
sudo vim /etc/httpd/conf/httpd.conf
一番下に移動し、以下を挿入します(すべて単独で):
<FilesMatch "\.*">
SetHandler application/x-httpd-php
</FilesMatch>
次に、Apacheを再起動して、新しい構成をロードします。
sudo service httpd restart
Apacheは、PHPを使用してすべてのHTTP / Sリクエストを実行するようになりました。持っているのがhtml、css、およびphpファイルだけの場合、これは問題なく機能します。他の言語を実行している場合は、状況に合わせてファイルを調整する必要があります。私はこれをphpMyAdminでテストしましたが、正常に動作します。
すべての人がここで話している他のことは、私にとって必要ではありませんでした。 「AddTypeApplication .....」を正しい場所に配置すると、Apacheは、そのモジュールがすでにロードされていることを通知し、スキップしました。
詳細については、 https://httpd.apache.org/docs/2.4/mod/core.html#filesmatchをご覧ください。
私のインストールは次のように行われました。
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
まだ読んでいない場合は、これも読む必要があります: https://httpd.apache.org/docs/current/howto/htaccess.html#when
答え :
解決:
モジュール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>
答え :
解決:
ubuntuユーザーの場合、apacheをインストールした後、新規インストールで次のコマンドを実行する必要があります
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
私の場合は問題なく動作します。
答え :
解決:
私のために働いたこと:
アクティブなhttpd.confで、
<IfModule mime_module>
...
</IfModule>
以下が欠けていた
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
Apacheを再起動すると、.phpファイルが正しく解析されます。
答え :
解決:
上記のどれも私のために適用または機能しませんでした... PHP7、CentOS6上のApacheHttpd 2.2
実際、Apacheの前に(すべてyumを使用して)phpをインストールしました...逆の操作を行う必要があります。常に最初にApacheをインストールし、次にPHPをインストールすると、機能します...実際、libphp7.so
とlibphp7-zts.so
/etc/httpd/modules/
PHPをアンインストールせずにとにかく回復することができました。/etc/httpd/conf/httpd.conf
マジックラインを追加しました:AddType application/x-httpd-php .php
そして実行します:yum install php php-mysql
答え :
解決:
上記のいくつかの解決策を試しましたが、シナリオの修正はfpm-moduleをインストールすることでした。
phpの前にhttpdをインストールしましたが、これは問題と関係がある可能性がありますが、解決するために次のものをインストールしました。
yum module install php:7.2
これにより、php-fpm-7.2.11-4.module + el8.1.0 + 5443 + bc1aeb77.x86_64.rpmモジュールがインストールされ、次の方法で有効になりました。
systemctl enable --now php-fpm
その時点から、/ etc / httpd / conf.d / php.confをデフォルトのままにして、httpdを再起動しました。
サービスhttpd再起動
その後、すべてがうまくいきました。
これがお役に立てば幸いですが、理解する必要があるよりもはるかに時間がかかりました。
答え :
解決:
suphp
のDebian / Ubuntuのデフォルト設定が原因で、同じ問題が発生しました。suPHP_Engine off
含まれているため、ブラウザにphpソースが表示されます。a2dismod suphp
で非アクティブ化することが暫定的な解決策でした。
答え :
解決:
私も同じ問題を抱えていました。 phpファイルを実行すると、Webブラウザーが実行する代わりにphpコードを表示しました。私は何度も試しました:wampserver64のアンインストール/再インストール、PHP / Apache設定/モジュールの回避など。2日後:デフォルトの組み合わせ「ctrl +クロムの場合はalt + shift + R "。 Chromeのアドレスバーで「file /// C:/ wamp64 / www / bla / bla ..」のようなphpファイルを実行しようとしていました。それが私の問題でした。 ローカルホストでphpを実行するためのNotepad ++の構成のページに従って変更を加えましたか? 。私の問題は解決しました。しかし、2日後..
答え :
解決:
管理者としてXampp(apache)を実行します。グーグルクロームタイプ:
localhost/<insert folder name here>/<insert file name>
つまり、作成したフォルダが「LearnPhp」の場合、ファイルは「chapter1.php」であると入力します。
localhost/LearnPhp/chapter1.php
このフォルダーは、xamppをダウンロードしたときに作成されるhtdocsフォルダーのxamppフォルダーに作成しました。
答え :
解決:
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
答え :
解決:
PHPバージョンの競合がある場合は、それが発生することがあります。これを克服するには、以下の手順に従ってください。
ステップ1:Yumリストがインストールされました| grep'php '
php5.6やphp7.0のようなphpの複数のバージョンがある場合、この競合が発生します
ステップ2:yum remove **あなたのphpバージョン**
ステップ3:次にapapche/etc/init.d/httpd restart
またはservice apache2 restart
答え :
解決:
PHP7.3 Apache2.4 Ubuntu 18.04の場合、次のコマンドを実行する必要がありました。
$ a2enmod actions fastcgi alias proxy_fcgi
答え :
解決:
Centos 7、PHP 8、Apache 2
私は最近、php8を使用するようにcentosサーバーをアップグレードしました。
アップグレード後、phpが機能しなくなり、apacheがphpコードをテキストとして提供し始めました。
どの構成設定が更新されていないかを探している間、私はそれを次のように追跡しました。
/etc/httpd/conf.d
<IfModule mod_php7.c>
次のように変更する必要があります。
<IfModule mod_php.c>
mod_php7
チェックが表示される可能性のある場所は他にもあります。mod_php
バリアントに更新される可能性がありますが、これで間違いなく修正されました。
後でサーバーを再起動することを忘れないでください。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。