投稿日:

【ワードプレスとも連動できます】htmlファイルでPHPを実行する方法

こんにちは、マサミです。

既にhtmlファイルでサイト運用していたが、PHPで書かれたプログラムやワードプレスが導入して機能の連動をしなければいけなくなったなどの場面などありませんか。
その時に、htmlのファイル形式は変えずにphpを動作させたいということを言われることもあります。

そこで、今回はhtmlファイルのままphpを実行する設定方法をご紹介します。

htmlファイルでphpを実行するには「.htaccess」を設定・設置すると動かせるようになります

基本的にはすぐできる作業です。条件としては以下の情報が必要です。

  • FTP内に入れる(もしくはレンタルサーバーのアップローダーなどに入れる)
  • .htaccessが作動するサーバー

契約しているサーバーによって設定方法が異なります。

経験上、設定した事があるサーバーでの書き方をご紹介します。

ロリポップサーバーはこの設定で大丈夫

ロリポップサーバーは以下の設定で大丈夫です。
下記のコードを入れた.htaccessファイルを作成して、サーバーにアップしてください。

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

これで、htmlファイル上でもPHPを動かす事ができます。簡単!

さくらサーバーの場合

さくらサーバーは、一手間かかります。それでもそこまで面倒ではないです。
準備するものが「php.cgi」「.htaccess」が必要です。

php.cgiは公開するディレクトリ(大体は、/home/ドメイン名/www/)のhtmlでPHPを動かす設定ファイルのhtaccessと同じ階層に置いてください。
さくらサーバーの仕様上、文字コードは「EUC-JP」。改行コードは「LF」にした上で下記の内容を入れてアップします。

#!/bin/sh
exec /usr/local/bin/php-cgi

アップ後はパーミッションを705に変更してください。 文字コードや改行コードの設定の仕方が分からないよという方は、使用しているエディターが文字コード変更などができるかを確認してください。 もし項目が無いエディタソフトを使っている場合は、フリーのエディターで良いのでそちらを使って変更をしてください。 Mac環境の方は「mi」、windows環境の方は「TeraPad」で大丈夫です。

.htaccessはロリポップサーバーと同じもので大丈夫です。

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

これでさくらサーバーは設定完了です。htmlファイルでphpが動くか確認してください。
もし、動かない場合はパーミッションや設置場所やソース内の書き方が違う場合があります。

htaccessが使えないサーバーの場合

基本的な有料のサーバーならhtaccessが使えるので問題無いですが、稀にhtaccessが使えないものもあります。
その場合はhtmlでphpを動かすことはできないと考えた方が良いです。

そういった状況の場合の対処法は以下の2つです。

  • htmlで動かさずに、phpファイルとして動かす。(.htmlから.phpに変更)
  • 他サーバーに乗り換える

こちらのどちらかです。

サーバーの乗り換えが厳しい場合がほとんどだと思いますので、その場合はphpファイルで動かしてください。
注意点としては、グーグルやヤフーなどの検索エンジンに既に認識されている場合は、htmlファイルのheadタグ内に下記の2つのコードを入れてください。

  • meta refreshタグ
  • link rel=”canonical”タグ

何故この処置が必要かというと、新しく作成したphpファイルはSEO的には別ページと扱われます。

htaccessが使えないので、上記の方法も正しい処置方法とも言えないのですが無い場合はサイトの価値が落ちてしまう可能性が高いので、予防線として入れておきましょう。

htmlをphpで動かして、wordpressとも連動させたい

蛇足ですが、仕事だと割とこういう依頼が多いので対処方法を書きます。

例えば、htmlで作ったトップページなどにwordpressの投稿のアーカイブ機能やカテゴリ一覧機能などを表示させたいなど、wordpressの機能と連動させたい時の方法です。

やり方はそんなに難しくないです。2つの手順を行います。

  1. htmlファイルでもPHPを動かせる設定(htaccess)をする
  2. wordpressと連動させたいhtmlファイルに専用のコードを組み込む

まず、上記で説明した通り、サーバーによって異なりますがhtaccessを設置してください。

次にwordpressの機能を連動させるために、 htmlファイルの一番上(<html>より上)に下記のphp文を入れます。

<?php require_once(‘./xxx/wp-load.php’); ?>

※「xxx」はwordpressが入っているディレクトリ名です。環境によって違うと思うので適した名称を入れてください。

これで、wordpressの専用コード(is_categoryやWP_Queryなど)が使用できるようになります。
後は表示させたい項目に応じて、必要なコードを打ち込んでいってください。

htmlでこだわる必要がなければ、phpファイルで作った方が楽

そこまで難しい技術ではないですが、すぐに思いつくかというと微妙な部分だと思います。
サイトを新しく構築する際には、恐らく必要のない技術ですが既にhtmlファイルでサイト運用していたが、ワードプレスを導入より連動する必要性ができたなどで出くわす場面だと思います。

今回はワードプレスで説明しましたが、phpファイル自体を読み込むこともできるので使い方次第では自作のphpファイルを作成して、読み込ませるなどの方法も可能です。

実装の参考になればと思います。