OSとサーバーの情報
以前php 5.3.xをインストールしていましたが、アップグレードすることにしました。私は最初にphp 5.3.xをアンインストールしてからphp 5.5.1をインストールしましたが、インストールが完了した後にApacheはそれらをダウンロードしたばかりのphpファイルを解析しませんでした。私はここでstackoverflowで同様の質問をチェックしました、しかしそれらのどれもこれまで私を助けませんでした。
記録として、私のhttpd.confとphp.confにはphpを動作させるべきであるがそうではない以下の行があります。
AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php-source .phps
AddHandler php5-script .php
どうぞよろしくお願いします。ありがとうございました。
編集:
これらの行はphp.confにあります。
<IfModule !worker.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
編集:
を削除することによって
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
Apacheはもはやファイルをダウンロードしません。現在、Apacheはソースコードを公開していますが、その一部ではありません。追加した
AddType text/html .php
しかし、運はありません。
Phpの正しいAddTypeはapplication/x-httpd-phpです。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Phpモジュールがロードされていることも確認してください。
LoadModule php5_module modules/mod_php55.so
Apacheを設定しているときは、別のブラウザからページを表示しようとします - chromeが結果を頑固にキャッシュし、別のブラウザでソースコードをダウンロードし続ける日がありました。
たくさん苦労した後、私はついに問題を解決しました。
あなたがそれを実行する代わりに.php
ファイルをダウンロードするよう促されるならば、これは完全な解決策です:私はあなたがすでにPHP5をインストールしていて、まだこのエラーを受けていると思います。
$ Sudo su
$ a2enmod php5
これです。
それでもエラーが発生するのであれば:
Config file php5.conf not properly enabled: /etc/Apache2/mods-enabled/php5.conf is a real file, not touching it
その後、次の操作を行います。
結局、ファイルはmods-enabled
に格納されるべきではなく、むしろmods-available
に格納されるべきです。次に、mods-availableに格納されているファイルを指すように、シンボリックリンクをmods-enabledで作成します。
最初にオリジナルを削除してください。
$ mv /etc/Apache2/mods-enabled/php5.conf /etc/Apache2/mods-available/
次にシンボリックリンクを作成します。
$ ln -s /etc/Apache2/mods-available/php5.conf /etc/Apache2/mods-enabled/php5.conf
あなたの問題が解決したことを願います。
私は今日この問題に遭遇しました、そして記述された解決策のどれも私のために働きませんでした。だからここにもう一つの考えられる原因があります:
あなたが好きなものがあれば
AddHandler x-mapp-php6 .php3 .php4 .php .phtml
webコンテンツフォルダの.htaccess
ファイルでは、PHPスクリプトが機能しなくなる可能性があります。私の場合、サーバはx-mapp-php6
タイプを知りませんでした。なぜなら、その.htaccess
ファイルは、Webサイトのコンテンツを転送したときに別のWebホストからインポートしたものだからです。
.htaccess
ファイルからAddHandler
行を削除するだけで解決しました。
これはあなたのPHPに必要なモジュールが足りないために起こっているかもしれません。 php7がインストールされていると仮定して、利用可能なphp7モジュールを検索してください。
Sudo apt-cache search php7-*
上記のコマンドはインストールに利用可能なすべてのPHP7モジュールを一覧表示します。あなたは、モジュールのインストールを始めることができます、
Sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json
Addtypeディレクティブを見てください。
Apacheがブラウザに.php5のような拡張子を持つスクリプト用にapplication/phpのドキュメントタイプを送信していると伝えているように見えます。実際、Apacheはスクリプトがtext/htmlを出力していることをブラウザに伝えることになっています。
これを試してください。
AddType text/html .php
上記の提案に関して、PHPスクリプトを出力していることをブラウザに通知する必要があります。これは私にとっては珍しい考えのように思えました。私はそれをグーグルしました、そしてウェブ上でそれについてかなりの議論があることがわかりました。どうやらあなたがPHPスクリプトを送っていると言いたい場合があるかもしれません(Apacheがスクリプトを実行してtext/htmlを発行することになっているとしても)、そしてブラウザが単にしない場合もありますその特定のMIMEタイプを認識できません。
ブラウザのキャッシュをクリアすることは常に良い考えです。
これが役に立つ場合には、CentOS 5.9を実行しているサーバーからの/etc/httpd/conf.d/php.confファイルのコピーをここに示します。
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
あなたの.htaccessにこのようなものがあれば…AddHandler application/x-httpd-php53 .php .php 5 .php 4 .phpそれからそれをコメントアウトして、もう一度これを更新してみてください。
私は同じ問題を抱えています。 Apacheは特定のWebサイトからphpファイルをロードするのではなく、ただダウンロードするだけです。私はこの記事とその答えを読み、私は.htaccessファイルの最後の場所にこの行を書いたのを見ました。
AddHandler x-mapp-php5.5 .php
私はそれをコメントしました、そして、すべてはうまく働きます。
ありがとうございます !!!
Linux環境で誰かがphp7を使っている場合
必ずphp7を有効にしてください
Sudo a2enmod php7
MysqlサービスとApacheを再起動します。
Sudo systemctl restart mysql
Sudo systemctl restart Apache2
5.3から5.4にアップグレードした後、私は以前に同様の問題を抱えています。しかし、私の設定は、私がDebianを実行していて、PHP5 Apache/cgiモジュールではなくPHPページを管理するためにfcgidを使用しているのとは少し違って見えます。それで私がアップグレードした後、それは私のfcgidセットアップと衝突して、もはやPHPファイルを実行しないだろうphp5_cgiもインストールしました。
私はApacheモジュールを無効にしてApacheを再起動しなければなりませんでした
a2dismod php5_cgi
/etc/init.d/Apache2 restart
Php5_cgiモジュールが邪魔にならなくなったら、fcgidはPHPページを再び提供することができました。
Nginxが動作しているのにphpがApacheで動作するように設定されている可能性もあります。確認するには、service nginx status
とservice Apache2 status
を実行してどちらが実行されているかを確認します。 nginxが実行されていて、Apacheが実行されていない場合は、Sudo service nginx stop; Sudo service Apache2 start
を実行するだけで、サーバーは期待どおりにphpファイルを提供するようになります。
私はこの問題を抱えていました。 nginxとApacheの両方がインストールされており、起動時に自動的に起動していることがわかりました。問題は、nginxが最初にhttpポートにバインドしていたため、Apacheが起動できなかったことです。
私は似たような症状を抱えていましたが、もう一つの解決策:/etc/Apache2/mods-enabled/php5.confでは、コメントに役立つアドバイスがありました。
# 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.
私はこれを追跡するのに2日間費やし、私は自分のPHPスクリプトを間違ったディレクトリに置いていたことを知りました。
標準のUbuntuインストールでは、スクリプトを/var/www
に入れていました。それらは/var/www/html
にあったはずです。
私はPHP作業を始めたばかりなので、私の解決策があなたが経験したバージョン変更に関連するものかどうかはわかりません。
これで問題は解決しました(私はphp7をインストールしました)。
Sudo apt-get libapache2-mod-php7.0をインストールしてください。
SudoサービスApache2の再起動
わかりました...私はすでにこの質問に1.000.000の答えがあることを知っています - しかし、私はこれを考え出して少なくとも6有効時間を費やしました。私はそれを何百回もグーグルしましたが、それについての単一の投稿を見つけられませんでした。だから私は私がここに私の問題に解決策を追加することにしました。
/etc/Apache2/[[SERVER-NAME].conf
-ファイルの.conf-filesでこれら2行をコメントアウトしたとします。
php_admin_value engine Off
IPCComTimeout 31
彼らが何をしているのか、彼らがどうやってそこにたどり着いたのか私にはわかりません - しかしそれは私の.conf
-ファイルのどれにでもあります。そしてそれらの行を削除して シンボリックリンクがあることを確認してください/etc/Apache2/sites-enabled/
-フォルダーに入れても、index.phpはダウンロードされず、すべて正常に動作します。
VirtualMinをUbuntu 16.04 VPSにインストールしました。私はPHPバージョン7.2にアップグレードしました。その後間もなく、私はUbuntuのバージョンを更新し、 'Kernel Offset:Disabled'エラーを起こしました。それで、私は最新のUbuntuバージョンを削除しなければなりませんでした - そして私のOSが再び起動したとき:BOOM!私のVPS上のすべてのサイトで、表示されるのではなく単にindex.phpがダウンロードされました。
私はあらゆる種類のものを試しました:
a2enmod [MODULE_NAME]
でそれを可能にすることができました。そして、私は周りでグーグルによってモジュール名を見つけました。検証のこのステップを通過する前に、約6〜8モジュールをアクティブにしなければなりませんでした。キャッシュがなくなるまでに数分かかりました。したがって、これを行うのは面倒なステップでした。上記のいずれでもうまくいかない場合は、
コメントアウトしてみてください
SetHandler ....
を使用してApacheを再起動します。
/etc/init.d/httpd restart
それはうまくいくはずです!
私はこの種の問題を抱えています。これが私がそれを解決する方法です。 Apacheをインストールした後、このコマンドを使用してPHPをインストールしました。
Sudo apt-get install php libapache2-mod-php
それは正しく実行されますが、私は。phpファイルをApacheに要求します、PHPスクリプトを実行せずにそれを与えます。
それからPHPが有効になっていることを確認します。
$ cd /etc/Apache2
$ ls -l mods-*/*php*
しかし、結果は表示されませんでした。インストールされたPHPパッケージをチェックします。
$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
種類の異なるPHPコンピュータにインストールされているバージョン。それからapt-get purgeを使ってPHPパッケージを前のリストから削除します。
Sudo apt-get purge libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-common php7.0-json
再インストールしますPHP
Sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
PHPモジュールがロードされていることを確認してください
$ a2query -m php7.0
有効になっていない場合:
$ Sudo a2enmod php7.0
再起動Apacheサーバ
$ Sudo systemctl restart Apache2
最後に、PHPプロセスをチェックApache
空のファイルを作成する
Sudo vim /var/www/html/info.php
このコンテンツをinfo.phpに追加して保存します。
<?php
phpinfo();
?>
ブラウザで確認してください。
正しく表示されます。これはだれにでも役立つと思います。
Php5を古いバージョンから5.5.9(Mint 17でインストールされたバージョン)にアップグレードするとき、私はOPと同様の問題を抱えていました。
私は自分のローカルネットワーク上のマシン上でLAMP設定を実行しています。それを使って実際のライブサーバーにそれらの変更をアップロードする前に、Webサイトへの変更をプレビューします。だから私は実際のサイトの完全なローカルミラーを維持します。
アップグレード後、実際のサイトで完全に実行され表示されるファイルは表示されないか、ローカルマシンではHTMLのみが表示されます。 PHPは解析されませんでした。 phpinfo()コマンドが機能したので、phpがそれ以外では機能していることがわかりました。ログはエラーを生成しませんでした。ページのソースを表示すると、実際のPHPコードが表示されました。
次のコードを含むtest.phpページを作成しました。
<?php phpinfo(); ?>
これはうまくいった。 <?php
を<?
に変更したときにコマンドが機能しなくなったことを発見しました。私のすべてのphpサイトは<?
の代わりに<?php
を使っていますが、これは理想的ではないかもしれませんが、それは現実です。私は/ etc/php5/Apache2に行き、 "short_open_tag"を探し、値をOffからOnに変更することで問題を解決しました。
Virtualminを使っているなら、/ etc/Apache2/sites-availableのApache設定でこれらの行をコメントアウトしてみてください。
#RemoveHandler .php
#RemoveHandler .php7.0
#php_admin_value engine Off
PHP56
vim /etc/httpd/conf/httpd.conf
LoadModule php5_module libexec/Apache/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
私はこの問題を抱えていて、あなたが実際にあなたのサーバー設定でプレイしたことがなければ、あなたの問題はあなたの。htaccess fileの90%です
あなたは。htaccess file LOCALLYを修正するか、またはそれを削除するか(LOCALLY)