自分自身を100%生き、人生をエンジョイしながら、毎日をゴキゲンに過ごす。

たぬまん

IT・パソコン・ソフトウェア

htmlファイルでphpを動かそうと思ったらファイルがダウンロードされる問題

投稿日:2017年3月2日 更新日:

htmlファイル上でphp(プログラム)を動かしたい

こんにちは、たぬまんです。

えっと、今日はちょっと技術的なメモになるのですが、普段サイトを作成していて、基本は「html」でコードしてるんだけど、ちょこっとだけ「php」でも記述したいってときないですか?ちょっとだけプログラムを動かしたいとか。

そんな感じで、htmlファイルにphpを記述してみたら挙動がおかしくなって、原因不明になって、軽くテンパって迷子になっていたのですが、ようやく帰ってこれたというお話です。

で、どんな挙動になってテンパったかといいますと、ブラウザでページを表示しようとしたら、なぜかファイルがダウンロードされる状態になりました。

 

なぜ?

 

 

拡張子が「.html」のファイルでPHPが動作するように「.htaccess」にルールを記述する

やったことなのですが、htmlファイルで、拡張子が「.html」のままphpを動かしたかったので、「.htaccess」にルールを追記しました。以下のいずれかを追加すればOKのはずなのですが、なぜかファイルがDLされる状態に…

で、.htaccessに追加した記述がまちがってたのか?それともhtmlファイルに記述したphpのコードがまちがってたのか?原因が分からなくなって一時帰ってこれなくなったんですけれど。

さきほど無事、帰還いたしました!!

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

 

 

原因は、サーバーごとによる記述方法の違いにありました

今回問題が起こった(というか自分で勝手に問題にしただけなんですがw)サーバーは、エックスサーバーだったんですけれど、どうやら上記の「htmlファイルでphpを動かすための記述」には、サーバーごとの書き方があるようで、それに従わないと正常に動作しないようです。

 

ちなみにエックスサーバーでの正しい記述はこんな感じ。

AddHandler x-httpd-php5.6 .php .html

PHPのバージョンを指定してあげないと正常に動かないみたいです。
そのサイトでは「ver5.6」を使ってたので、「x-httpd-php5.6」としたところ不具合が解消された次第でございます。

ページを表示しようとしただけなのに何故かファイルがダウンロードされるとか、ちょっと焦りましたw

もし同じ症状で迷宮入りされている方は、こちらを参考に無事脱出してくださいませ。
ちなみにエックスサーバー以外でお困りの方。さくら、ロリポ、コアサーバーは、たぶん以下の記述で正常に動作するかと思うのでお試しあれ。

 

さくらサーバーの場合

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

 

ロリポップの場合

AddHandler php5.3-script .htm .html

※「5.3」のところでバージョンを指定

 

コアサーバーの場合

AddHandler application/x-httpd-phpcgi .php

 

 

htmlファイル上でphpを動かす.htaccessの設定(エックスサーバー)

えー先ほど、エックスサーバーの場合は「.htaccess」に下の記述を追加すると良い、と書きました。

AddHandler x-httpd-php5.6 .php .html

たしかにこれで、「.htmlファイル」上で「php」が動作するようになったのですが、今度はなぜか、サイト内にあるphpページにアクセスすると「.phpファイルがダウンロードされる」ようになってしまいました。

これではあきまへん。
またか…と、めまいを覚えながらも何とか解決策を探ることに。

で結論としては、
上の記述だとサイト全体にルールが適用されてしまうので、特定のページだけhtmlファイル上でphpが動くように修正。

 

こんな感じにしたところ、無事、正常に動作したでございます。

 

レクタングル大(336×280)

レクタングル大(336×280)

人生の『ヒント』が見つかるかも

-IT・パソコン・ソフトウェア

Copyright© たぬまん , 2017 All Rights Reserved.