【ついに完成】 さくらでもincludeをする方法

【注】
現在は、PHPでのテンプレートの読み込みをやめ、SSIでテンプレートファイルを読み込んでいます。
(詳しくは 【難問解決】 SSIのインクルードで圧縮できるか実験してみた をご覧ください)


私は、何とかさくらのレンタルサーバincludeできるよう、色々と実験を繰り返しました。

さくらのレンタルサーバーに余っていた独自ドメインを割当て、さらにその独自ドメインにサブドメイン追加
使用中のサーバーと同じ環境にして実験することにしました。
(最初からこれをやれって話。ゞ( ̄∇ ̄;))

その結果、includeに成功するやり方が見つかったので、その通りに修正&変更することにしました。

でも、それはかなり骨の折れる作業になりました。
全ファイルで3,000ページ以上あります。

しかも、ファイルの一括書き換えソフトで書き換えても、どうしても漏れが出ます。
それを漏れ無く書き換え、チェックするのは時間がかかる作業でした。

そんなわけで、時間にゆとりを持って丸一日かけてその作業をやることにしました。
(それまでは、サーバー移転はお預けしました)

さくらのレンタルサーバーでincludeする方法

そんなこんなで、実験の結果得られた最適なさくらのレンタルサーバーでincludeする方法は↓になります。

これは2016年5月の実験結果ですので、今後また変更になる可能性があります。
変更されたら上手く作動しない可能性もありますので、皆様をダメージの少ないもので実験してからサーバー移転された方がよいかもです。
(私みたいにならないように。( ̄m ̄))


ご注意

php.cgiを作成してサーバーに設置すると、一部の海外からのアクセスが制限され、大量のエラーが出ます。
(国外IPを制限する機能をONにしていた場合)

このエラーを出ないようにするための方法は、【さくらサーバー】エラーログでphp.cgiエラーが出るのを止める方法をご覧ください。


1. 白紙のphp.cgiファイルを作る

白紙のテキストファイルを作り、名前を 『 php.cgi 』 で保存。


2. 白紙のphp.cgiファイルに以下の内容を記入して保存する

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

【指定する文字・改行コード】
文字コード  UTF-8N
改行コード  CR+LF


3. htaccessファイル の記述を変更する

URLを変えないようにするため、htmlファイルPHPファイルを読み込む設定を行う
ヘテムル で動いていたコードは動かないので、別のコードが必要

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


【Action myphp-script /php.cgiについて】

Action myphp-script /php.cgiと言うのは、まずはじめに、htaccessファイルと同じ階層にあるphp.cgiを読み込めと言う命令。
これをしないとphpが作動しない。


【AddHandler myphp-script .php .htmについて】

うちの場合、htmファイルでphpコードを動かしたかったので、AddHandler myphp-script .php .htm と書いたが、元からphpファイルで動かす場合には、AddHandler myphp-script .php .htmは要らない。


4. includeのコードを変更する

元のコード

<?php include("ファイルのURL/ファイル名"); ?>

新しいコード

<?php $openfile = file_get_contents("ファイルのURL/ファイル名");echo $openfile;?>


5. 文字化け対策のためのphpコードを記入する

Shift_JISで作ったhtmlファイルだったので、そのままだと全部文字化けしてしまう。
そこで、phpをShift_JISで強制的に作動させるためのPHPのコードを全ページに追加した。

<?php header("Content-Type: text/html;charset=Shift_JIS");?>


ファイルの一番上に書くことが重要。
うちはhtml5で作っているので、

<?php header("Content-Type: text/html;charset=Shift_JIS");?>
<!DOCTYPE html><html lang="ja"><head>

になった。


6. 新しいコードに変更し終えたファイル(htmlファイルかphpファイル)をサーバーにアップロードする


7. htaccessファイルとphp.cgiファイルをドメインのルートフォルダに設置する


8. htaccessファイルとphp.cgiファイルの属性を変更する

htaccessファイルの属性
604か644

php.cgiファイルの属性
705か755


次ページ

【実験結果】さくらでphpのincludeするための方法を詳しく解説

前ページ

【開けてビックリ】 PHPのinclude ができなくなった

広告