WEBデザイン

拡張子.htmlでPHPを動作させる SAKURAサーバ編 苦戦した話

2016/03/11

写真は意味なし。結構苦戦したので忘備録として。
拡張子.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 .html

index.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日半ぐらいかかった。


-WEBデザイン

© 2020 MUKOLOG