質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1169閲覧

index.htmlは表示されるがindex.phpは真っ白で表示される

Athenahack

総合スコア2

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/08/25 07:05

編集2021/08/25 09:16

apacheでindex.htmlは表示されるのですが、index.phpのみ表示されません。

httpd.confの中身を以下のように変えました。

AllowOverride All

でも、index.phpだけは画面が真っ白のままです。
phpのバージョン確認用でphpinfo.phpを作りアクセスしてみるときちんとphpinfoのページが表示されます。

htaccessは作っていません。

htaccessを作ると良いのでしょうか?
ちなみにどういう風に作ると良いのでしょうか。
index.htmlと同じディレクトリに配置すると良いのでしょうか?

追記
httpd.confに出力されたエラー
[Wed Aug 25 08:08:43.078415 2021] [php7:error] [pid 12078] Uncaught Error: Call to undefined function get_template_directory_uri() in /var/hp:9\nStack trace:\n#0 {main}\n thrown in /var/www/html/index.php on line 9

↓9行目のコードです

<link rel="icon" type="img/17.png" href="<?php echo get_template_directory_uri(); ?>/img/17.png">

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/08/25 08:07

質問が途中で切れています。編集してください。 あと、アクセスしているURLとコードも必要です。他者が再現できるように配慮願います。 質問は編集できます
FKM

2021/08/25 08:18 編集

php.iniでerror_reportingをonにしてなにかエラーが表示されませんか?
Athenahack

2021/08/25 09:04

質問が途中で切れている件なのですが、こちらではきちんと最後まで書いているのですが、なぜか途中できれて表示されているようです。 アクセスしているURLですが、まだ未公開のため載せることができません コードはindex.htmlと内容は変わりません。index.phpに直したものになっています。 php.iniの以下のセミコロンを取るといいのでしょうか? 一応httpd.conf以下にはindex.phpのfatalerrorが出力されました ; error_reporting ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ; Development Value: E_ALL ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
guest

回答3

0

error_reportingは常に表示できるようにしてから開発した方がいいでしょう。
サーバによってError500表示してくれる親切な場所ならいいですが、ローカル環境の場合
真っ白になって何も表示してくれませんので。

投稿2021/08/25 09:24

FKM

総合スコア3647

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Athenahack

2021/08/25 09:54

色々と情報が不足していてすみませn ローカルではなく、 https://○○.com/ にアクセスしてindex.htmlは見える、index.phpは真っ白という状態でした。 error_repotingは参考になりました、ありがとうございます。
guest

0

ベストアンサー

phpinfo()が正しく動くならindex.phpとやらの実装が問題なのでしょう。

  • パースエラーなど処理中断するようなエラーがあるがエラー出力がonになっていない
  • 出力のコードを書いていないor出力の処理を通っていない

サーバーのエラーログを確認するところからですね。

投稿2021/08/25 07:10

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Athenahack

2021/08/25 08:41

apacheのログ確認したところ、以下が出ました PHP Fatal error: Uncaught Error: Call to undefined function get_template_directory_uri() in /var/www/html/index.php:9\nStack trace:\n#0 {main}\n thrown in /var/www/html/index.php on line 9 index.phpの中身に問題があるのがわかりました
m.ts10806

2021/08/25 08:56

WordPressの関数をWordPressの配下にないphpから呼び出そうとしてるとか、そういうところでしょうね。推測ですが…。 ※ちなみに「真っ白」という表現はあまり使われないほうが良いです。 回答に書いたように多くはコンパイラがパースに失敗して中断したか、何も出力が書かれてないかのどちらかなので「起きている現象」を表す表現ではないのです。
Athenahack

2021/08/25 09:12

wordpressは使っていません。 「index.php 真っ白」と検索すると同じような現象の対応サイトが多く見られたので、そういう表現をしましたが、現象は同じでも原因が違うような気がしたので投稿してみました。 とりあえずapacheの設定とかではなくphpの中身の問題である可能性が高いことが分かりました。
m.ts10806

2021/08/25 09:17

ええ、ですから「WordPressの関数をWordPressの配下にないphpから呼び出そうとしてる」と指摘しました。 エラーの通り定義されてない(もしくは当該phpプログラムから参照できない場所にある、リンクされていない)関数を呼び出そうとしています。 その関数がWordPressのものと同名であったため、そのようにコメントしました。
Athenahack

2021/08/25 09:35

get_template_directory_uri ←該当の関数はこれということですね 少し引っかかる点がありまして、 index.htmlの中身をphp化しただけのindex.phpをFTPでアップロードした際にindex.htmlとindex.phpを同時にアップロードしてindex.htmlのみ削除してindex.phpのみ表示するようにしたのですが、初回だけhttps://○○.com/でアクセスするとindex.phpがindex.htmlと同じように変わらず表示されたんです。 ですが2回目から真っ白となりました。 コードの中身が原因なら初回も表示されず真っ白となるはず・・・と思っていたのでapacheの設定周りを疑ってました。 何回かFTPアップロードする際にhtmlディレクトリ配下の権限変更していたので2回目以降index.phpのみ真っ白となったのがどこなのか手探りでした。 wordpressの関連性を調べてみます。ありがとうございます。
m.ts10806

2021/08/25 09:37

キャッシュじゃないでしょうか。 >wordpressの関連性 そもそもindex.phpがどのような実装になっているのか提示されておらずこちらには分からないので、WordPress云々は私の個人の推測でしかないことはことわっておきます。
Athenahack

2021/08/25 09:45

同じブラウザだったのでそうかもしれません 糸口が見つからず困っていたので、助かりました。
guest

0

httpd.confでDirectoryIndexを適切に設定していますか?

apache

1DirectoryIndex index.html index.htm index.php

投稿2021/08/25 07:14

yambejp

総合スコア116468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Athenahack

2021/08/25 07:20

以下のように設定はしています index.htmも必要でしょうか。 <IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問