ちょっと凡ミスと言うか、勘違いというか、忘れていたと言うかさくらインターネットにまで問い合わせしたので自分の恥さらしをしておこうとおもいましたので。
拡張子htmlでphpとして動作させたい話自体は良くある話で、内容は変わってないのでやり方の細かい話は他を当たって下さい。
(ちなみにSEO的にやりたい人が多かったようですが、今ではGoogle様はhtmlでもphpでも検索結果に影響が出ない事になってますので、SEO的には(たぶん)意味が無い事はご理解下さい。)
==htmlをphp動作簡単な流れ===
1.共有フォルダにあるphp-cgiをサイトのwwwフォルダ直下にコピーしてきて、php.cgiとして保存。
2.www直下の.htaccessに以下を記載(.htaccessが無ければ新規に作成する)
Action myphp-script /php.cgi
AddHandler myphp-script .php .html
==ここまで==
これでhtmlの拡張子でphpとして動作します。
今では他にやり方があるのかもしれませんが、さくらスタンダードではこれが通常の対応になるんじゃ無いかと思います。
このサーバで作業をしたのも2~3年も前?ですっかり作業した事自体忘れていたので今回トラブルになりました。
さくらスタンダードにはコントロールパネルが有り、基本的な設定などはコンパネ内で出来るようになっています。
その中に、「PHPバージョンの選択」という物があります。
この前までさくらスタンダードではしばらくの間 5.2.17 がPHPの標準になっておりました。
で、5.3になり、今では標準が5.4となり、選択肢には5.6が出てきております(今回の件で知ったがw)
でWEBアプリを追加で作る事になり、予約等の時間操作を多用する関係からPHPでDatetimeを使おうとするのは妥当な流れかと思います。
が、ここで問題となるのがDatetimeをサポートしたのが5.3からって事なんですね。
でコンパネ内で何も考えずに5.4を選択して現状のPHPが正常動作してるのを確認して、対象のアプリを作った訳です。
・・・が動かない。
どうしてもDatetime::addやDatetime::diffが定義エラーが出るのです。
同じさくらスタンダードで最近借りた別サーバではほぼ同じ物が問題なく動いている・・・・
オブジェクト型だろうが手続き型だろうがエラーが出る・・・・
不具合だ!って思い、勝ち誇って(なぜ?)何も考えずに2回もさくらのサポートさんにメールしてしまいました。
でそこで返ってきたのが
「お客さん、自分でPHPのバイナリ設置して動作させてない?」
このメールを見た瞬間に背筋がピン!って立ちましたよw
最初の作業でphp-cgiをコピーして来てますが、それによってサイト内は全てこのPHPバイナリで動作している事を私はすっかり忘れていやがった訳です。
要するにコンパネ内でどれだけPHPのバージョンを選択しようが、実際はhtmlをphpで動作させるためにコピーしたバイナリ(ここでは5.2.17)で動作していた訳です。
そりゃDatetimeも正常動作せんわ!!!
今後の為に自分の恥をさらしておこうと言うお話でした。