サブドメインでPHPが動かない

このQ&Aのポイント
  • さくらVPSを借りて、ドメインを取得してPHPプログラムを作成しています。PHPが動作するメインドメイン(1)を作成しました。しかし、サブドメインe.abcではPHP部分が実行されません。
  • サブドメインe.abcでPHPプログラムが正しく実行されない問題が発生しています。サブドメインのDNSやapacheの設定は正常に行われており、PHP以外の部分は表示されています。
  • PHPプログラムが実行されない原因や解決策について教えてください。
回答を見る
  • ベストアンサー

サブドメインでPHPが動かない

さくらVPSを借りて、ドメインを取得してPHPプログラムを作成しています。 様々な書籍やネット情報を使用して、PHPが動作するメインドメイン(1)を作成しました。 メインドメイン(1)では、index.htm内のPHPが正しく実行されます。 次に、サブドメインe.abcを作成し同様なPHPサンプルプログラムを実行させたところ、 (2)の場合では、PHP部分が実行されませんでした。 (PHP部分以外は表示されるので、サブドメインのDNSやapacheの設定等は上手くいっている様子) かなりはまってしまい、原因と対策が分からずにいます。 調査すべき項目や怪しいところなど、なんでもかまいませんので教えて頂けませんでしょうか。 www.abc.com/index.htm   --- (1) e.abc.com/index.htm   --- (2) ■index.htmの中身 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>PHPテスト</title> </head> <body> <h1>PHPのテストです</h1> <p> 今日の日付は <?php echo date('Y年m月d日'); ?> です。 </p> </body> </html>

  • mmei
  • お礼率74% (120/161)
  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

補足確認しました。 さくらについてよく知らなかったので先ほどの回答は少々的外れだったようで失礼しました。 やはり.htaccess、もしくはPHPの設定変更が必要なようですね。 .htaccessの場合は 「AddType application/x-httpd-php .html」 と記述したものをアップすれば有効になります。 もしこれでだめならやはりサーバのPHP設定をしないといけないということになります。 PHP設定の説明は長くなるので http://dorubakox.blog95.fc2.com/blog-entry-372.html などを確認してください。

その他の回答 (1)

回答No.1

とりあえず.htaccessを確認してください。 HTMLファイルにPHP直書きで動作するということはその設定をしてあるはずですので、それがサブドメインに相当するディレクトリに効いてないのではないでしょうか。

mmei
質問者

お礼

早々のご回答ありがとうございます。 htaccessは(1)、(2)ともに何も設定していない状況です。 また、HTMLにPHP直書きと、PHPのみのファイルで確認をしましたが、結果は同じ状況で(2)側でPHPが動作しません。

mmei
質問者

補足

すいません、下記お礼内の動作確認の状況が誤っていました。 (2)におけるPHPの動作状況 ・HTMLにPHP直書き:HTML部分は出力されるもPHP部分が実行されず ・PHPファイル:正しく実行される (1)については、いずれも正しく動作しています。

関連するQ&A

  • phpの外部読み込みで半角ハテナがでる

    初歩的な質問内容なのかもしれませんが、宜しくお願いします。 phpの外部読み込みをすると半角ハテナがでてきてしまいデザインが崩れてしまいます。 下記がソースです。 【index.php】 <?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> </head> <body> <?php include("information.php"); ?> </body> </html> 【information.php】 <div id="infomation" class="scroll"> <h3><span class="red">更新履歴</span></h3> <dl> <dt>サイト作成開始<span class="new">New!!</span></dt> <dd>07年05月04日:管理人の閃きで作成。</dd> </dl> </div> 上記のように本当にシンプルなソースといいますか・・・ この感じでindex.phpにinformation.phpを呼び出すと 【index.php】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title></title> </head> <body> ?<div id="infomation" class="scroll"> <h3><span class="red">更新履歴</span></h3> <dl> <dt>サイト作成開始<span class="new">New!!</span></dt> <dd>07年05月04日:管理人の閃きで作成。</dd> </dl> </div> </body> </html> という結果になり半角ハテナが入ってしまいます。 この現象がでるのはInternetExplorerとOperaでアクセスした場合です。 Firefoxの場合はこの現象は現れませんでした。 この半角ハテナを出なくする方法はありませんでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • SafariでPHPソースがそのまま表示される

    Safariでindex.phpを開くとソースコードがそのまま表示されてしまいます。 拡張子をphpとしているだけでソース内にはphpスクリプトは記述しておりません。 なぜでしょうか? ※ファイル名をindex.htmlに変えると正しく表示されます。 Windows 7 Home Premium 64bit Safari5.1.5 ソースコードのエンコーディング:utf-8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <title>テストtitle> </head> <body> <h1>テストページ</h1> </body> </html>

  • phpでreadfile(include)した結果に?が出力される

    phpで以下のようなA,Bの2つのファイル構成にした際に ブラウザでAをアクセスし、ソースを表示するとreadfileした結果の前に「?」が出力されます。 「?」と出力されるのが何か問題だと思うのですが、分かりません。 ご指南をお願いいたします。 ?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> Aファイル <?php readfile('inc/xhtml.inc'); include('inc/dbcon.php'); include('inc/cm468_2.inc'); ?> ----------- Bファイル <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> -------------------------------- 出力結果 ?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

    • ベストアンサー
    • PHP
  • zampp  PHPでPOSTの変数が返ってこない

    お世話になります。 PHPを最近はじめたばかりの初心者です。 zampp をインストールし、Apache、PHPの動作は問題なく動いています。 「sample.html」「sample.php」の2つファイルを作成し、 C:\xampp\htdocsに保存しました。 「sample.html」と「sample.php」は、ある本からサンプルコードです。 ------------------- 「sample.html」 ------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>sample page</title> </head> <body> <h1>フォームサンプル</h1> <form method="post" action="sample.php"> <input type="text" name="text1"> <input type="submit"> </form> </body> </html> ------------------- 「sample.php」 ------------------- <?php $str = $_POST['text1']; if ($str != ""){ $msg = "あなたは、「{$str}」って書いたね?"; } else { $msg = "何も書いてなかったよ?"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>sample page</title> </head> <body> <h1>結果表示</h1> <div><?php echo $msg; ?> </body> </html> ------------------------------------ htmlファイルをブラウザーで開き、submit(送信ボタン)を押すと、 text1に入力した文字が、返ってきて .phpに表示されなければならないのですが、 .phpでブラウザーに表示されるのは、上記のコードがそのまま表示されてしまいます。 (入力した文字も代入されずに、コードのまま表示されます) 上記のコードとは違う、htmlファイルとphpファイルで動作させても コードがそのまま表示されて、$_POSTがうまいきません。 原因が分からずに困っています。 ご教授いただけますよう何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP、どうして認識しないのですか?

    現在の私のサイト(shtml)のソースは次のとおりです(甲)。これを下記(乙)のように書き換えてアップしましたが”こんにちは”の文字が現れません。 レンタルサーバーの問題ですか?ソースの問題ですか? (甲) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" > <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"> <TITLE>○○○</TITLE> (乙) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>○○○</title> </head> <body> <!--shtmlのソースの中に次を挿入しました--> <p> <?php echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; ?> </p> ----------------------- これが表示されません。 教えて下さい。どうしてですか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • phpファイルにxhtmlを適用する方法

    phpファイルにxhtmlを適用する方法 phpファイル(index.php)でモバイルサイトを作成したのですがドコモで背景色や文字サイズなどが反映されません。 【phpファイル(index.php)】 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'."\n" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <?php header("Content-type: application/xhtml+xml;charset=utf-8"); ?> 【.htaccess】 AddType application/xhtml+xml .php とそれぞれ記述しているのですが当方の携帯sh906iでは反映されません。 どこが悪いのでしょうか・・・ HP製作会社に依頼して作ってもらったのですが、反映されない事を伝えるとその後音信不通になっていて どうにかこの辺りの知識まで来たのですがどこが悪いのか分かりません。 HP製作会社からいつか連絡が来るんでしょうがやりとりをしている感じではあまり知識が無いようで 現在も答えないのではなく答えられないんだと思います。。。。 どうかお力をお貸し下さい。

  • XHTMLの文字コードのEUC-JPの文字化け

    いつもはHTML4.01で作業をしていて XHTMLはどうも不慣れなせいか 今、外注が作成したHPを修正していて 文字コードをEUC-JPにどうしても変更しなければならないのですが それがうまくいかず、文字化けが発生してます。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> を <?xml version="1.0" encoding="euc-jp"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp" /> このように設定したら文字化けが発生しました。 どのように設定したら文字化けがなくなりますか?

  • phpのダウンロード画面が出てしまう

    IE6からphpにアクセスするとダウンロード画面が出てきてしまいます。 ダウンロード画面を出さないようにするにはどうすればいいでしょうか。httpd.confは編集できない環境です。 .htaccessは下記のどちらにしてもDL画面が出てきます。 AddType application/x-httpd-php .xhtml AddType application/xhtml+xml .php index.php; <?php header("Content-Type: application/xhtml+xml"); echo "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" > <head> <meta http-equiv="ContentType" content="application/xhtml+xml" /> <meta content="i-mode7_FOMA" /> <title>タイトル</title> </head> <body> <?php readfile("./numbers3/n3temp.txt"); ?> </body> </html>

    • ベストアンサー
    • CSS
  • PHPのチェックボックスでforeachの警告出る

    UbuntuにXPMPPを入れてPHPの勉強してます。複数選択可能なチェックボックスの値を取得しようとしているのですが送信して受信側のページを開くと「Warning: Invalid argument supplied for foreach()」が出ます。正しく複数選択のチェックボックスの値を送受信する方法を教えてください。なお、入力ミスかと思い、http://www.7key.jp/hp/php/memo5.htmlのコピペをしてみましたが警告が出続けます。以下にそのページのソースを示します。 送信側のページのソースは次のようになっています。 <?php echo '<?xml version="1.0" encoding="UTF-8"?> '; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>送信</title> </head> <body> <form action="response.php" method="post"> <input type="checkbox" name="sample" value="1" checked="checked"> <input type="checkbox" name="sample" value="2"> <input type="checkbox" name="sample" value="3"> <input type="submit" value="sending" /> </form> </body> </html> 受信側のソースは次のようになっています。 <?php echo '<?xml version="1.0" encoding="UTF-8"?> '; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>受信</title> </head> <body> <?php foreach($_POST['sample'] as $key => $val){ echo "$key : $val \n"; } ?> </body> </html>

    • 締切済み
    • PHP
  • PHP 携帯・PC 振り分け

    こんにちはphpの振り分けについてご教授お願いします。 http://www.abc.jp/→PCサイト(/home/abc/www/の中身) http://m.abc.jp/→mobileサイト(/home/abc/www/mobile/の中身) とした場合、PCからmobileサイトにアクセスがあった場合pcサイトに飛ばし、携帯からPCサイトにアクセスがあった場合mobileサイトに飛ばすといったようなことをしたいのですが、下記の内容でdoctype宣言をおこなった場合どのように記述したらよろしいでしょうか? 下記の記述は別ファイルに記述し、index.phpまたは他の.phpに読み込まして各キャリアをdoctype宣言で振り分けしています。 下記の記述はネット上から見つけてきたものです。 http://www.kamitani79.com/2008/10/doctypephpssi.html <?php $agent=$_SERVER['HTTP_USER_AGENT']; if(preg_match("/DoCoMo/", $agent)) { print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"); print ("<!DOCTYPE html PUBLIC \"-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN\" \"i-xhtml_4ja_10.dtd\">\n"); print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n"); print ("<head>\n"); print ("<meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=Shift_JIS\" />"); } elseif(preg_match("/KDDI\-/", $agent)||preg_match("/UP\.Browser/", $agent)) { print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"); print ("<!DOCTYPE html PUBLIC \"-//OPENWAVE//DTD XHTML 1.0//EN\" \"http://www.openwave.com/DTD/xhtml-basic.dtd\">\n"); print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n"); print ("<head>\n"); print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />"); } elseif(preg_match("/J\-PHONE|Vodafone|MOT\-[CV]980|SoftBank/", $agent)) { print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"); print ("<!DOCTYPE html PUBLIC \"-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN\" \"xhtml-basic10-plus.dtd\">\n"); print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\">\n"); print ("<head>\n"); print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />"); } else { print ("<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"); print ("<!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">\n"); print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ja\">\n"); print ("<head>\n"); print ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\" />"); } ?> ご教授お願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう