プロが教える店舗&オフィスのセキュリティ対策術

phpを勉強して1ヶ月の初心者です。
すでにさくらインターネットレンタルサーバで自分のサイトを運営しており、そこで覚えたphpを早速使用してみようとしたのですが、全く表示されません。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis">
<title></title>
</head>
<body>
<p>今日は、<?php echo date("Y/m/d"); ?> です。</p>
</body>
</html>

たったこれだけのコードなのに、サーバにアップロードしてアクセスしてみると、
「今日は、 です。」
となるだけで全く動いている気配もありません。
htmlの中に埋め込むのをやめてphp単体のみの拡張子を.phpにするとちゃんと動きます。
ネットで検索してみると「さくらインターネットではphpはcgiモードで動いている・・」との情報がありますが、
cgiモードとはつまり、htmlに直接コードを埋め込む事はできないということなのでしょうか。

A 回答 (1件)

さくらインターネットのスタンダードプランを契約していますが


質問文のソースで問題なく動きましたよ

質問文と全く同じ文章で day.php と言うfile名で
アップロードし ブラウザでアクセスしてHTMLソースを表示してみると
------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_Jis">
<title></title>
</head>
<body>
<p>今日は、2008/07/16 です。</p>
</body>
</html>
------以上迄
>htmlの中に埋め込むのをやめてphp単体のみの拡張子を.phpにするとちゃんと動きます。
モジュール版でも拡張子は .htmlでは通常は動きません
.htaccessなどで .htmlをphpと関連付ければ別ですが

さくらインターネットの場合スタンダードプランおよびプレミアムでは
PHPはモジュールではなくCGIで動くのですが( phpinfo(); を表示するとServer API欄にCGIと表示されます )
他のレンタルサーバーでは CGI版PHPしか使えないところでは拡張子 .cgiで
#!/usr/bin/php などの記載が必要なのに対し
  (それについては http://oshiete1.goo.ne.jp/qa4116414.html )

さくらインターネットでは設置の手間からするとモジュール版と同じになっています。
たぶんhttpd.confでactionかなにかでそのように設定されているものと思われますが
http://httpd.apache.org/docs/2.0/ja/mod/mod_acti …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

初心者向けサイトだとよく、「phpはhtmlの文章の中にそのまま組み込んで使う事ができる」というような事が書いてあるので勘違いしてました。
アップロードしたファイルの拡張子が.htmlだと、アパッチや.htaccessで特別な設定をしない限り、当然サーバのほうではそれを全てhtmlファイルとして処理してしまうんですね。
勉強になりました。

お礼日時:2008/07/17 11:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!