最近、私のコンピューターに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"
Phpを有効にする必要があります! Apacheディレクトリ(デフォルト:/ etc/Apache2 /)のmods-enabled
フォルダーを確認して、php
という名前のファイルが見つかったかどうかを確認します。拡張機能は覚えていませんが、.so
であると思います。
また、var/log/Apache2/error.log
をチェックして、エラーがあるかどうかを確認します。
うわー、ここにたくさんの解決策があります!ここに私がやったことがありますbuntu 16.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>
私のために働いた別の答え。 [Sudo] apt-get install libapache2-mod-php5.X
をインストールすることです
上記または以前に言われたこと(考えられる理由)を試しても、実行せずにコードが表示される場合は、対処していない間違ったことが1つあります。 PHPコードへのアクセスに使用したURL。 .phpファイルをWebブラウザーにドラッグするだけでphpコードを実行しようとする人もいます。これは間違った慣行であり、この種の問題につながる可能性があります。 C:// wamp/wwwフォルダーに「test.php」としてファイルを保存した場合、このファイルにアクセスする必要があります:localhost://test.php。この方法でアクセスすると、この種の間違いが発生します:localhost://wamp/www/test.php
誰か助けてくれたらいいなと思います。 o /〜ダニエル
ケースインのために私のために働いたものを投稿することは、将来の誰かを助けますが、それは珍しいケースです。
Webホストがデフォルトよりも高いバージョンのphpを使用するようにハンドラーを設定しました。 5.1がありましたが、5.6が欲しかったのでこれがありました:
<FilesMatch \.php$>
SetHandler php56-cgi
</FilesMatch>
私の.htaccessファイルに。
自分のサイトをローカルで実行しようとすると、そこにあるとphpコードがブラウザーに出力されました。問題を解決しました。
。htaceessファイルを削除して、システムに新しい(空白または基本)ファイルを作成させることができます。追加した行の一部が誤ったステートメントであるか、内部の何かが問題を引き起こしている可能性があります。古い。htaccessファイルから1行ずつ追加して、問題の原因を確認できます。
それは私のために働いた。私の場合、PHP拡張機能を表示しないようにマシンに指示する行は問題でした(RewriteCondおよびRewriteRule)。私の古い。htaccessファイルは共有サーバーでは問題なく動作しましたが、VPSに切り替えたときにこの問題が発生しました。
このスレッドの他の人の提案に感謝します。上記の手順に従って、Apacheサーバーは/etc/Apache2/mods-enabled
のload
ファイルの構文エラーの報告を開始できないことがわかりました。 php7.0とphp7.1の両方が有効になったことがわかります。
a2dismod php7.0
systemctl restart Apache2
そして、phpは再び正しくレンダリングされます。
上記のどれも適用も機能もしませんでした... PHP7、CentOS 6上のApache Httpd 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
私のために働いたもの:
アクティブなhttpd.confで、見つける
<IfModule mime_module>
...
</IfModule>
以下が欠落していました
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
Apacheの再起動後、.phpファイルは正しく解析されます。
モジュール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
私の場合はうまくいきます。
同じ問題がありました。 phpファイルを実行すると、Webブラウザーは実行する代わりにphpコードを表示しました。私は何度も試しました:wampserver64をアンインストール/再インストールし、PHP/Apache設定/モジュールなどを回避します。2日後:デフォルトの組み合わせ「ctrl + alt +シフト+クロムのR "。クロムのアドレスバーで「file /// C:/ wamp64/www/bla/bla ..」のようなphpファイルを実行しようとしていました。それが私の問題でした。ページに従って変更を加えました localhostでphpを実行するためのNotepad ++の構成? 。私の問題は解決しました。しかし、2日後.
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
モジュールsuphp
のDebian/Ubuntuのデフォルト構成が原因で、同じ問題が発生しました。/usr/share全体に対してsuPHP_Engine off
が含まれていたため、ブラウザにphpソースが表示されました。 a2dismod suphp
による非アクティブ化が暫定的な解決策でした。
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
を再起動します
これは、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が処理されるようになります
Xampp(Apache)を管理者として実行します。グーグルでchromeタイプ:
localhost/<insert folder name here>/<insert file name>
つまり、作成したフォルダが「LearnPhp」である場合、ファイルは「chapter1.php」であり、次に入力します
localhost/LearnPhp/chapter1.php
このフォルダーは、xamppをダウンロードしたときに作成されるhtdocsフォルダーのxamppフォルダーに作成しました。