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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

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

CakePHP

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

Q&A

解決済

2回答

6286閲覧

cakephp3で任意のページがNot Foundになってしまう

yoshipu

総合スコア115

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

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

CakePHP

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

0グッド

0クリップ

投稿2017/07/09 14:37

編集2017/07/13 23:01

おそらくapache2の設定があっていないと思うのですが、公式bookを読んでもわからず、質問させていただきました。

アクセスしてhellow World!を表示させたいアドレス
http://localhost/cakephp3/cart/hello

表示されてしまう文

Not Found The requested URL /cakephp3/cart/hello was not found on this server. Apache/2.4.18 (Ubuntu) Server at localhost Port 80

やったこと

touch HelloController.php vim HelloController.php cd /etc/apache2 vim apache2.conf

apache2.confの中身を編集

<Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride All Order Allow,Deny Allow from all </Directory>
sudo a2enmod rewrite sudo service apache2 restart

HelloControllerの中身

php

1<?php 2namespace App\Controller; 3 4class HelloController extends AppContoroller { 5 public $name = 'Hello'; 6 public $autoRender = false; 7 public function index() { 8 echo "hello world!"; 9 } 10}

対象ファイル

linux

1/var/www/html/cakephp3/cart/src/Controller$ ls 2AppController.php ErrorController.php PagesController.php 3Component HelloController.php

追加事項
Documentrootを/var/wwwから/var/www/htmlに書き換え、サーバを再起動したのですが、同じようにエラーになってしまっております。

vim /etc/apache2/apache2.conf 164 <Directory /var/www/html> 165 Options Indexes FollowSymLinks 166 AllowOverride All 167 Require all granted 168 </Directory> sudo /etc/init.d/apache2 restart

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

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

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

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

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

m.ts10806

2017/07/10 01:24 編集

ApacheのDocumentRootの指定はどうなっていますか?
yoshipu

2017/07/10 21:38

ubuntuでは、/var/www/htmlがデフォルトドキュメントのようです。/etc/apache2内のapache2.confを探しましたが、Documentrootの記述を見つけらませんでした。vim で/Documentと検索しました。http://localhost/でIt works!が出ているのでapacheは起動していると思われます。
yoshipu

2017/07/12 12:40

Directory /var/www/でしたのでDirectory /var/www/htmlに書き換えてみましたが、同じようにエラーになりました。
guest

回答2

0

ドキュメントルートの .htaccess (あるいは apache の conf 内の Directory {ドキュメントルートのパス})で、Rewrite 関連の設定が正しく CakePHP の index.php へ向いていないのだと思います。
公式で Apache の Rewrite に関する部分 を読んで、設定を見直してみてください。

※この手の framework は、「どんなURLが来ても、とりあえず framework に処理を投げるために URL rewriting を使う」ので、Apache で 404 エラーになるなら、まずそこが怪しいのです

投稿2017/07/14 01:28

tacsheaven

総合スコア13703

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

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

yoshipu

2017/07/17 00:45

<Directory /> Options FollowSymLinks AllowOverride All # Order deny,allow # Deny from all </Directory> は同じでした。 LoadModule rewrite_module libexec/apache2/mod_rewrite.so の意味がわからず、コマンドがみつからずできませんでした。
tacsheaven

2017/07/17 04:26

LoadModule は、mod_rewrite という、Rewrite エンジンを読み込ませるための Apache の設定です。 Ubuntu の Apache のようですから、 /etc/apache2/mods-available に rewrite.load があって、 /etc/apache2/mods-enable に、上の rewrite.load に対するシンボリックリンクを張ってあれば、読み込んでくれます。 $ cd /etc/apach2/mods-enabled $ sudo ln -s ../mods-available/rewrite.load rewrite.load $ sudo apachectl restart をしてみてください。
yoshipu

2017/07/17 22:30

$ cd /etc/apache2/mods-enabled $ sudo ln -s ../mods-available/rewrite.load rewrite.load ln: シンボリックリンク 'rewrite.load' の作成に失敗しました: ファイルが存在します $ sudo apachectl restart AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message のようになり、同様にnot foundになります。 何度も申し訳ありません。
tacsheaven

2017/07/18 01:31

CakePHP をインストールしているディレクトリは、 /var/www/html/cakephp3/cart でよいでしょうか? ※このディレクトリの中に、index.php や bin src webroot などのディレクトリがある であれば、 /etc/apache2/sites-available/000-default.conf 内の DocumentRoot は、 /var/www/cakephp3/cart/webroot にしないといけません。
yoshipu

2017/07/18 22:24

$ sudo vim 000-default.conf 内を/var/www/cakephp3/cart$/webbootに変更し、Notfoundだったので /var/www/cakephp3/html/cart$/webbootに変更したのですが、だめでした。 試しにetc/apache2/apache2.confのDocumentRootを書き換え、403パーションがありませんとなり、 /var/www/html/cakephp3/cart$ index.phpと/var/www/html/cakephp3/cartをパーミッションを777に変更してみましたが、 このページは動作していません localhost では現在このリクエストを処理できません。 HTTP ERROR 500 というようなエラーが出てしまいます。
guest

0

自己解決

あきらめて、ovenを使ったらうまく行きました。

投稿2017/11/01 23:10

yoshipu

総合スコア115

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問