さくらサーバーのHTML内でPHPを動かす方法とエラー対処法

今回はさくらのレンタルサーバー上にある情的HTMLファイルでPHPを動かす方法と、エラーが出た場合の対処法を紹介します。

 

HTMLでPHPを動かす方法

大体のサーバーでは以下の2行を.htaccessに記述することで動かすことができます。

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

 

しかし、さくらのレンタルサーバーではもう少しやることがあります。

 

さくらサーバー内でHTMLでPHPを動かす

さくらのレンタルサーバー内で動かす場合は以下の手順が必要です。

  1. php.cgiと.htaccessを作成
  2. ファイルのパーミッションを変更

 

1:php.cgiと.htaccessを作成

テキストエディタでもなんでもいいので「php.cgi」という名前のファイルを作成しましょう。

php.cgiには以下を記述します。

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

 

作成したら公開ディレクトリ(/home/アカウント名/www/)以下の好きな階層にアップします。

次にパーミッションを「705」もしくは「755」に変更しましょう。

 

2:.htaccessを作成

.htaccessも作ります。以下を記述しましょう。

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

 

1行目の「/php.cgi」が「php.cgi」のまでのパスとなります。この記述ではトップページと同じ階層ということになります。例えばtestフォルダの中に入れたなら「/test/php.cgi」と書きましょう。

次にパーミッションを「644」に変更しましょう(通常は最初から644になっているはず)。

 

これでokです。HTMLにPHPを記述しても動くはずです。

 

エラー対処法

上の通りにやってエラーが出た場合、以下のような原因が考えられます。

  1. 文字コード、改行コードが間違っている
  2. ディレクトリ、ファイルのパーミッションが間違っている
  3. アップロードの場所が間違っている
  4. アップロード方法が悪い
  5. ファイルの記述が間違っている

 

文字コード、改行コードが間違っている

php.cgiと.htaccessの文字コードは「EUC-JP」、改行コードは「LF」に設定してください。これ以外の文字コードはエラーになります。

特にテキストエディタで編集している人は気をつけてください。文字コードを変更して保存し直すか、さくらのレンタルサーバーにあるファイルマネージャーで編集するのがいいでしょう。

 

ディレクトリ、ファイルのパーミッションが間違っている

php.cgiと.htaccessはそれぞれパーミッションが異なります。

  • php.cgi:「705」もしくは「755」
  • .htaccess:「644」

 

それと、念の為これらのファイルが入っているディレクトリのパーミッションも確認してください。通常は「705」か「755」になっているはずです。

 

アップロード方法が悪い

FTPソフトでアップロードする場合は、転送モードを「バイナリモード」にして行ってください。

よくわからない場合はさくらのレンタルサーバーにあるファイルマネージャーでアップロードすればokです。

 

ファイルの記述が間違っている

php.cgiや.htaccessに記述ミスがないか、余計はスペースは入っていないかなど確認してください。

PHPが動かない場合はHTMLファイルに書いたPHPのコードが間違っていないかなども確認しておきましょう。

 

アクセスログからエラーを調べる

エラーが出た場合は「コントロールパネル→アクセスログの設定→エラーログの表示」と進むことでエラーログが確認できます。

原因がいまいちわからない場合はログを見てみるとわかるかもです。

 

注意事項

国外IPアドレスフィルタを有効にしている場合はphp.cgiを使うと、海外IPアドレスから閲覧ができなくなります。

フィルターを解除すれば海外IPアドレスからもアクセスできるようになりますが、セキュリティがやや脆弱になる可能性があります。

なお、フィルターを有効にしていてもGoogleなどの検索エンジンのボットはアクセス可能です。

 

これに関してはマニュアルをみて各自で判断してもらったほうがいいと思います。

参考:国外IPアドレスフィルタ – さくらのサポート情報