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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

4回答

7906閲覧

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

Cyber

総合スコア8

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

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

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/08/10 06:08

編集2016/08/15 03:03

###前提・実現したいこと
すでに本番環境で稼働しているシステムを
修正のために社内サーバーにそのまま移行しようとしています。
環境は、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

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

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

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

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

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

kunai

2016/08/10 06:51

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

2016/08/10 07:13

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

2016/08/10 07:26

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

回答4

0

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

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

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

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

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

投稿2016/08/10 17:36

CodeLab

総合スコア1939

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

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

Cyber

2016/08/11 01:24

早速のご回答ありがとうございます。 状況が膠着していたこともあり 本番環境は一旦、置いておいて "巣のCakePHP"のクリーンインストールでの現象を確認していました。 状況が変化したら、質問に追記しようと思っています。 ご提案ありがとうございました。 取り急ぎ、お礼と経過報告のみにて失礼いたします。
guest

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 06:46

hotta

総合スコア1613

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

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

Cyber

2016/08/10 07:18

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

2016/08/10 07: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 はプライベート アドレス(=誰でも使えるアドレス)ですので、隠しても意味はありません。
hotta

2016/08/10 07:58

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

0

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

投稿2016/08/10 06:45

TaichiYanagiya

総合スコア12146

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

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

Cyber

2016/08/10 07:01

早速のご回答ありがとうございます。 エラーログを確認したところ ブラウザからのアクセス時刻に該当するエラーログは出力されていませんでした。 取り急ぎ、お礼のみにて失礼いたします。
TaichiYanagiya

2016/08/15 03:17

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

2016/08/16 01: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 としましたが、優先順位の中にも含まれていないようです。 以上、取り急ぎお礼と経過報告のみにて失礼いたします。
guest

0

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

投稿2016/08/10 06:25

s.t.

総合スコア2021

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

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

Cyber

2016/08/10 06: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>に追記する形で問題ないのでしょうか?
s.t.

2016/08/10 06:48

<IfModule mime_module> ... ... AddType application/x-http-php .php AddType application/x-httpd-php-source .phps </IfModule> という感じで問題ないと思います。 モジュールのほうもPHPのものがあればコメントアウトを外しておきます。 設定変更を適用するためにApacheの再起動もひつようです。
Cyber

2016/08/10 06:58

早速のご対応ありがとうございます。 <IfModule mime_module> ... ... AddType application/x-http-php .php AddType application/x-httpd-php-source .phps </IfModule> を追記、Apacheの再起動後に IP/index.phpをブラウザから実行してみましたが、変化がありませんでした。 ご指導いただいている他の方法も試してみたいと思います。 取り急ぎ、お礼のみにて失礼します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問