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

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

ただいまの
回答率

88.93%

CentOS7 Apache PHP環境でDocumentRootのindex.phpが表示されない

受付中

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,825

Cyber

score 8

前提・実現したいこと

すでに本番環境で稼働しているシステムを
修正のために社内サーバーにそのまま移行しようとしています。
環境は、CentOS7・Apache・PHP(CakePHP)です。

通常、ドキュメントルート直下のindex.phpは
ブラウザでIPアドレスを直打ちすれば表示されますが
IP/index.phpと指定しても表示されません。

発生している問題・エラーメッセージ

Google Chromeでのエラーメッセージは
192.168.xxx.xxx ページは機能していません

192.168.xxx.xxx では現在このリクエストを処理できません。
HTTP ERROR 500●

該当のソースコード

言語:php
<?php
/**

  • Requests collector.
  •  
  •  This file collects requests if:
  •    - no mod_rewrite is avilable or .htaccess files are not supported
  •  - requires App.baseUrl to be uncommented in app/config/core.php
  •    - app/webroot is not set as a document root.
  •  
  • PHP versions 4 and 5
  •  
  • CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
  • Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
  •  
  • Licensed under The MIT License
  • Redistributions of files must retain the above copyright notice.
  •  
  • @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
  • @link          http://cakephp.org CakePHP(tm) Project
  • @package       cake
  • @since         CakePHP(tm) v 0.2.9
  • @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
    */
    /**
  •  Get Cake's root directory
    */
    define('APP_DIR', 'app');
    define('DS', DIRECTORY_SEPARATOR);
    define('ROOT', dirname(FILE));
    define('WEBROOT_DIR', 'webroot');
    define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS);
    /**
  • This only needs to be changed if the "cake" directory is located
  • outside of the distributed structure.
  • Full path to the directory containing "cake". Do not add trailing directory separator
    */
    if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', ROOT);
    }

/**

  • Set the include path or define app and core path
    */
    if (function_exists('ini_set')) {
    ini_set('include_path',
    ini_get('include_path') . PATH_SEPARATOR . CAKE_CORE_INCLUDE_PATH
    . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS
    );
    define('APP_PATH', null);
    define('CORE_PATH', null);
    } else {
    define('APP_PATH', ROOT . DS . APP_DIR . DS);
    define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
    }
    require APP_DIR . DS . WEBROOT_DIR . DS . 'index.php';
    ?>

試したこと

■同ドキュメントルートに対するその他のファイルへのアクセス
.htmlファイル
.phpファイル
どちらとも、「IP/ファイル名」指定で表示されます。

■パーミッションの確認
・-rwxrexrwx
に設定しています。

■エラーログの確認
app/tmp/logs/error.log
および
var/log/httpd/error_log
のエラーログを確認したところ
ブラウザからのアクセス時刻に該当するエラーログは出力されていませんでした。

試したこと・追記

一旦、素のCakePHが表示されるかどうかを試すために
ダウンロードファイルを再度、新規にアップロードし
デフォルトのCakePHPをインストールしてみました。

その結果、エラーの画面がGoogle Chromeの500エラーではなく
Internal Server Errorの表示に変わりました。

■ログについて

================================================
httpd.conf内、エラーログファイルの設定
logs/error_log
また
app/tmp/logs/error.log

には、当該日時に更新されたerror.logはありません。

Apacheのログ
/var/log/httpd/error.log
[Mon Aug 15 11:39:05.143711 2016] 
[core:alert] [pid 30601] [client 192.168.100.2:49891] 
/var/www/html/.htaccess: Expected </Directory"/var/www/html"> 
but saw </Directory>

/var/log/httpd/access.log
192.168.100.2 - - [15/Aug/2016:11:30:51 +0900] 
"GET /favicon.ico HTTP/1.1" 500 527 "http://192.168.100.15/" 
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"

192.168.100.2 - - [15/Aug/2016:11:31:42 +0900] 
"-" 408 - "-" "-"

192.168.100.2 - - [15/Aug/2016:11:38:10 +0900] 
"GET /app/webroot HTTP/1.1" 500 527 "-" "Mozilla/5.0 
(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/52.0.2743.116 Safari/537.36"

192.168.100.2 - - [15/Aug/2016:11:38:10 +0900] 
"GET /favicon.ico HTTP/1.1" 500 5

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kunai

    2016/08/10 15:51

    CakePHPですよね?
    CakePHP環境で /index.php を見ることに意味はないように思いますが。
    app/tmp/logs/error.log の中に書いてあるエラーメッセージを提示いただけますか?
    Apacheのログ(多分 /var/log/httpd/error.log)があればそちらも

    キャンセル

  • Cyber

    2016/08/10 16:13

    早速のご回答ありがとうございました。
    質問本文に、エラーログについて追記させていただきました。
    今回、エラーログには何も出力されていませんでした。

    取り急ぎ、お礼のみにて失礼いたします。

    キャンセル

  • kunai

    2016/08/10 16:26

    大変失礼ですが、設定したサイトに該当するエラーログがどこに記録されているかを理解された上で確認されていますか?
    httpd.conf等のサイト設定の中で、エラーログファイルの設定がされているはずですので、実際に設定されているエラーログを確認してください。
    また、Apacheのaccess.logにアクセスは記録されていますか?

    キャンセル

回答 4

0

httpd.confのPHPのLoadModuleはコメントアウトを外していますでしょうか?
また、
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
も有効になっていますでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/10 15:35

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

    ■LoadModuleは
    # Example:
    # LoadModule foo_module modules/mod_foo.so
    となっています。
    ■<IFModule mime_module>以下に
    AddType application/x-http-php .php
    AddType application/x-httpd-php-source .phps
    の記述はなく
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    の記述はあります。
    同<IFModule mime_module>に追記する形で問題ないのでしょうか?

    キャンセル

  • 2016/08/10 15:48

    <IfModule mime_module>
    ...
    ...
    AddType application/x-http-php .php
    AddType application/x-httpd-php-source .phps
    </IfModule>

    という感じで問題ないと思います。

    モジュールのほうもPHPのものがあればコメントアウトを外しておきます。

    設定変更を適用するためにApacheの再起動もひつようです。

    キャンセル

  • 2016/08/10 15:58

    早速のご対応ありがとうございます。

    <IfModule mime_module>
    ...
    ...
    AddType application/x-http-php .php
    AddType application/x-httpd-php-source .phps
    </IfModule>

    を追記、Apacheの再起動後に
    IP/index.phpをブラウザから実行してみましたが、変化がありませんでした。
    ご指導いただいている他の方法も試してみたいと思います。

    取り急ぎ、お礼のみにて失礼します。

    キャンセル

0

500番台のエラーですので、Internal Server Error とか httpd 内部のエラーですよね。
PHP モジュールが足りていないとか。
ブラウザからアクセスしたときに、エラーログ(/var/log/httpd/error_log)には何か出力されませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/10 16:01

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

    エラーログを確認したところ
    ブラウザからのアクセス時刻に該当するエラーログは出力されていませんでした。

    取り急ぎ、お礼のみにて失礼いたします。

    キャンセル

  • 2016/08/15 12:17

    > /var/www/html/.htaccess: Expected </Directory"/var/www/html"> but saw </Directory>

    /var/www/html/.htaccess に書式エラーがあるようです。
    「<Directory "/var/www/html">」とスペースが必要です ... が、そもそも .htaccess に <Directory> は設定できないはずです。

    キャンセル

  • 2016/08/16 10:42

    コメントありがとうございます。

    今回、素のCakePHPインストールで環境設定する過程で
    ・.htaccess
    ファイルに問題があることは判明したようです。

    実際に、.htaccessを有効にした時と、無効にした時で
    素の.phpファイルと、素の.htmlファイルが
    表示されなかったり、表示されたりという挙動が確認できました。

    そこで、.htaccess無で、httpd.confのみで
    192.168.100.15/index.php
    を読み込むようにすれば良いのでは?と考え試行錯誤していますが
    index.html
    の方を読み込みに行ってしまいます。
    index.htmlを退避させると
    「Internal Server Error」の表示になります。

    DirectoryIndex index.php

    としましたが、優先順位の中にも含まれていないようです。

    以上、取り急ぎお礼と経過報告のみにて失礼いたします。

    キャンセル

0

CakePHP(のようなフレームワーク)は、静的な .html や裸の
.php と異なり、コピーした後にいくつか設定が必要です。

これは以前書いたインストール手順です。CakePHP 2.4.6 用です。
CakePHPのインストール

『該当のソースコード』中に "PHP versions 4 and 5" という記述が
見えますが、ひょっとしたら CakePHP 1.x でしょうか。だとしたら、
残念ながらさすがに賞味期限切れなので、今ならできれば 3 系か、
せめて 2 系にすべきかと思います。

高速開発ができるらしいCakePHPのインストールからhello worldまでをやってみた

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/10 16:18

    早速のご回答ありがとうございます。
    CakePHPは、1.3.18です。
    現在のWebページでの稼働環境を再現しているので
    CakePHPのバージョンは、上記のものにこだわる必要性があり…。

    取り急ぎ、お礼のみにて失礼いたします。

    キャンセル

  • 2016/08/10 16:49

    バージョンを変えることができないのであれば、仕方がないですね。
    CentOS 7.2 + Apache 2.4.6 + PHP 7.0.7 の環境があったので
    試してみました。

    root@adm:~# cat /etc/system-release
    CentOS Linux release 7.2.1511 (Core)
    root@adm:~# rpm -q httpd
    httpd-2.4.6-40.el7.centos.1.x86_64
    root@adm:~# rpm -q php70-php
    php70-php-7.0.7-1.el7.remi.x86_64

    設定はデフォルトのままで、/var/www/html 直下に、単に
    『該当のソースコード』をそのままの形で index.php として設置し、
    http://ホスト名 でアクセスすると、HTTP Error 500 になりました。
    その際のエラーログは以下のようになっていました。

    root@adm:~# tail -1 /var/log/httpd/error_log
    [Wed Aug 10 16:36:49.158886 2016] [:error] [pid 4296] [client 192.168.1.158:56895] PHP Fatal error: require(): Failed opening required 'app/webroot/index.php' (include_path='.:/opt/remi/php70/root/usr/share/pear:/opt/remi/php70/root/usr/share/php:/usr/share/pear:/usr/share/php:.:./app/') in /var/www/html/index.php on line 56

    このような形で、コマンドと実行結果をそのまま貼っていただけると、
    少しは先に進めるかと思います。なお、192.168.x.x はプライベート
    アドレス(=誰でも使えるアドレス)ですので、隠しても意味はありません。

    キャンセル

  • 2016/08/10 16:58

    あと、Apache をソース(tar ball)から入れている場合、エラーログは
    たとえば /usr/local/XXXX .... 配下にあったりします。

    キャンセル

0

質問内容を見ているとCakePHPの仕組みを根本的に理解していないような気がします。

インストール方法は下記の公式サイトを参考にしてください。
http://book.cakephp.org/1.3/ja/The-Manual/Developing-with-CakePHP/Installation.html

なんとなく、公開するフォルダを間違えているのではないかと思います。

基本的にドキュメントルートを
/(インストール先)/app/webroot/
とすれば何かしらCakeの画面が出るかと思います。

一度、素のCakePHP1.3のソースをもってきて設置してみて、動きを理解してから本番のソースの設定をしたほうが良いかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/11 10:24

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

    状況が膠着していたこともあり
    本番環境は一旦、置いておいて
    "巣のCakePHP"のクリーンインストールでの現象を確認していました。

    状況が変化したら、質問に追記しようと思っています。
    ご提案ありがとうございました。

    取り急ぎ、お礼と経過報告のみにて失礼いたします。

    キャンセル

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

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る