写真は意味なし。結構苦戦したので忘備録として。
拡張子.htmlでPHPをSAKURAサーバで動作させようとして苦戦した話。結論として、index.htmlをindex.phpにリネームしたら動いた。具体的にやりたかった事は、静的なHTMLで作成したトップページによくある新着情報的な感じでwordpressの記事タイトルいくつか表示させる、という事。
『.htmlでPHPを動作させる』で検索すると色々でてくる。いろいろみて見るとsakuraサーバは他とくらべてちょっと面倒的な記述が多くみられて、サイトによって微妙に対処の仕方が違うのは、どうやらSAKURAサーバの仕様がちょこちょこ変わっているからっぽい。
だいたいやってることは「php.cgi」と「.htaceess」に下記を記述して、
【 php.cgi 】
#!/bin/sh exec /usr/local/bin/php-cgi【 .htaceess 】
Action myphp-script /php.cgi AddHandler myphp-script .php .htmlindex.htmlのドキュメント宣言の前にも下記を記述して
【 index.html 】
<?php require_once('../blog/wp-load.php'); ?> <!DOCTYPE html> <html lang="ja"> ....... ..... <body> ....... ..... <!--wordpress読み込み--> <div id="newsBox"> <ul> <?php $posts = get_posts("numberposts=5&category=&orderby=post_date&offset=0"); foreach ($posts as $post): setup_postdata($post); ?> <li><?php the_time('Y.m.d') ?> <a href="<?php the_permalink() ?>"><?php the_title() ?></a></li> <?php endforeach; ?> </ul> </div>あとは表示させたい所にwordpressの記事を読み込むPHPを記述する。
そしてindex.htmlと同階層に、「php.cgi」をパーミッション755で、「php.cgi」をパーミッション644でアップ。みたいのが一連の流れ。で、これで動くはずなのに全く動かず。ソースを色々試したり、ファイルをバイナリで上げてみたりしても全くダメで、sakuraサーバのQ&Aを見てみると、
-----------------------------------------------------------------------------------------
【Q】.htmlという拡張子のファイルに記述したPHPの命令文は実行できますか
【A】PHPを使用したコンテンツを運営される際は .html ではなく .php にて設置ください。
-----------------------------------------------------------------------------------------と記述があり、試しにindex.htmlをindex.phpにリネームした所、問題なく動作しました。
sakuraサーバはこの辺の仕様が頻繁に変わるっぽい。ここまで1日半ぐらいかかった。