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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

3862閲覧

AWS環境 Apacheのドキュメントルートを変更できない

terataileora

総合スコア3

CakePHP

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/11/20 01:57

編集2019/11/20 08:19

前提・実現したいこと

cakephpにCSSが適用されなかったので、調べてみたところapp/webrootをドキュメントルートにする必要があるとのことなので、以下の

DocumentRoot "/var/www/html" ///etc/httpd/conf/httpd.conf

という記述を

DocumentRoot "/var/www/html/app/webroot" ///etc/httpd/conf/httpd.conf/

に変更してみたのですが、これでは下記のようにApacheがstartしてくれませんでした。

enviroment $ sudo service httpd start Starting httpd: AH00526: Syntax error on line 118 of /etc/httpd/conf/httpd.conf: DocumentRoot '/var/www/html/app/webroot' is not a directory, or is not readable [FAILED]

ドキュメントルートの権限の問題だとしたらその変え方が知りたいです。
cakephpのソースは初期のフォルダ(cakephp-2.x)から全て出して、サーバーの直下に置いてあります。
app/Webrootのパスは間違いないです。
.
└── app
├── Config
├── Console
├── Controller
├── Lib
├── Locale
├── Model
├── Plugin
├── Controller
├── tmp
├── Vender
├── view
├── webroot

加えて、【CakePHP】CSSが反映されない場合の対処法まとめに記載されていることは全てやったのですが、CSSが反映されません。何か心当たりがある方は教えてください。

補足情報(FW/ツールのバージョンなど)

cakephp2.9(githubより)
開発環境 AWS cloud9
php 5.6
mysql 5.5

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

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

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

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

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

kyoya0819

2019/11/20 05:11

タイトルも間違っております。
yu_1985

2019/11/20 05:19

Startされなかった原因を特定できるものがないので、Apacheを再起動したときのエラーメッセージ等、情報を追加しましょう。 cakephpのソースはどこに置いてあるのか ディレクトリ構成はどうか(そもそも指定したパス自体が正しいのかが不明) httpdのconfigtestした時にどういうメッセージが出るか httpd.confを変更した箇所は他にはないか など
guest

回答2

0

エラーメッセージに書いてありますね。

Starting httpd: AH00526: Syntax error on line 118 of /etc/httpd/conf/httpd.conf:

DocumentRoot '/var/www/html/app/webroot' is not a directory, or is not readable

/var/www/html/app/webroot というディレクトリがないか、Apache からアクセスできないパーミッションになっている、といっているのですから、そこら辺を全部確認してください。

apache が起動するときのユーザー・グループと、上記ディレクトリのオーナー・グループ、そしてパーミッション設定を確認しましょう。
※not readable の場合、そのディレクトリだけではなく、その上位も遡って確認すること


他の記述を見て追加

AMI が書かれていないので推測ですが、Apache 自体は apache/apache のユーザー・グループで起動していませんか。
であれば /var/www/html/app/webroot のユーザーが ec2-user であるならば、apache はそこへのアクセス権を持っていないでしょう。
セキュリティ上、other に r といえど与えるのはマズい部分があるので、chgrp で各ファイル・ディレクトリのグループを apache にしておいて、加えて chmod g+r でアクセス権を付与してみたらどうなるでしょう。

投稿2019/11/20 05:47

編集2019/11/20 08:14
tacsheaven

総合スコア13703

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

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

0

app/Webrootnのパスは間違いないです。

とのことですが、

DocumentRoot '/var/www/html/app/webroot' is not a directory, or is not readable

というメッセージが出ています。
ディレクトリ構成はどうなってますか?

ls -lで構成と権限を確認してみてください。

投稿2019/11/20 06:18

yu_1985

総合スコア7440

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

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

terataileora

2019/11/20 07:30

ls -lで見ると、全てのファイルで所有者はec2userでした。 ディレクトリ構成も記載しました。
yu_1985

2019/11/20 07:47

ls -l コマンドの出力結果をそのまま貼ったほうがよいと思うのですが…。 所有者だけでなく権限も見たいです。 Apacheのconfで設定している/var/www/html配下も見たいですし、そもそも「サーバーの直下」とは具体的にどこでしょうか。 また、記載のディレクトリ構成を見るとappとwebrootが同じディレクトリ内にあるように見えますが、app配下には別のwebrootディレクトリが存在するということでしょうか?
terataileora

2019/11/20 08:23

drwxr-xr-x 14 ec2-user ec2-user 4096 Nov 19 03:08 app -rw-r--r-- 1 ec2-user ec2-user 167 Nov 16 02:50 build.properties -rw-r--r-- 1 ec2-user ec2-user 10195 Nov 16 02:50 build.xml -rw-r--r-- 1 ec2-user ec2-user 1188 Nov 16 03:57 composer.json -rw-r--r-- 1 ec2-user ec2-user 3971 Nov 16 02:50 CONTRIBUTING.md -rw-r--r-- 1 ec2-user ec2-user 1455 Nov 16 02:50 index.php drwxr-xr-x 3 ec2-user ec2-user 4096 Nov 16 02:50 lib drwxr-xr-x 2 ec2-user ec2-user 4096 Nov 16 02:50 plugins -rw-r--r-- 1 ec2-user ec2-user 569 Oct 10 11:12 README.md drwxr-xr-x 3 ec2-user ec2-user 4096 Nov 19 14:06 vendors みたいな感じです。ディレクトリ構成はapp以下がappフォルダに入ってます。
terataileora

2019/11/20 08:25

サーバー直下は ”/” 以下です。
tacsheaven

2019/11/20 08:28

/直下にappがあるなら、DocumentRoot は /app/webroot になるはずじゃないですか。DocumentRoot の意味分かってますか?
yu_1985

2019/11/20 08:35

もし本当に"/"以下に置いているのであれば、そもそもconfで指定するディレクトリが間違っているのでそれが原因です。 ただ、本当に"/"以下なんでしょうか。 ls -l はどのディレクトリで実行しましたか? もしわからなければ、実行したディレクトリでpwdコマンドを実行してその結果を貼ってください。 もし本当に"/"(サーバのルートディレクトリ)に置いているのであれば、そもそもあまり適切な置き場所ではないので/var/www/配下のどこかにでも移動してください(素直に/var/www/htmlに移動してもよいです)
Y.H.

2019/11/20 08:36

以下の結果を記載ください。 ls -ald /var ls -ald /var/www ls -ald /var/www/html
terataileora

2019/11/20 09:16

ls -ald /var : drwxr-xr-x 21 root root 4096 Oct 10 12:44 /var ls -ald /var/www : drwxr-xr-x 7 root root 4096 Oct 10 12:44 /var/www ls -ald /var/www/html : drwxr-xr-x 2 root root 4096 Apr 5 2019 /var/www/html /var/www/html/cake-2.x/app/webroot から /var/www/html/app/webrootです。すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問