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

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

新規登録して質問してみよう
ただいま回答率
85.51%
さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

3720閲覧

Laravelでindex以外のページが表示されない

donkuri

総合スコア81

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2019/05/19 15:15

編集2019/05/20 04:44

前提・実現したいこと

ドットインストールを見ながらさくらのvpsにLaravelの環境を構築しようとしています。
indexページは無事に表示されましたが、そこからリンクページに飛ばした時にNot foundになってしまいます。

ドットインストール
「Laravel 5.5入門」#15で詰まりました
https://dotinstall.com/lessons/basic_laravel_v2

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

indexページはドットインストールと同じようにちゃんと表示されます。
http://〇〇〇

そこからリンク先のページに飛ぶとnot foundになります
http://〇〇〇/posts/1

Not Found The requested URL /posts/1 was not found on this server.

該当のソースコード

/var/www/laravel/routes/web.php

php

1<?php 2 3Route::get('/','PostsController@index'); 4Route::get('/posts/{id}', 'PostsController@show');

/var/www/laravel/app/Http/Controllers/PostsController.php

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Post; 7 8class PostsController extends Controller 9{ 10 public function index() { 11 $posts = Post::latest()->get(); 12 return view('posts.index')->with('posts', $posts); 13 } 14 15 public function show($id) { 16 $post = Post::findOrFail($id); 17 return view('posts.show')->with('post', $post); 18 } 19}

/var/www/laravel/resources/views/posts/index.blade.php

php

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>Blog Posts</title> 6 <link rel="stylesheet" href="/css/styles.css" /> 7 </head> 8 <body> 9 <div class="container"> 10 <h1>Blog Posts</h1> 11 <ul> 12 @forelse ($posts as $post) 13 <li><a href="{{ action('PostsController@show', $post->id) }}">{{ $post->title }}</a></li> 14 @empty 15 <li>No posts yet</li> 16 @endforelse 17 18 </ul> 19 </div> 20 </body> 21</html>

/var/www/laravel/resources/views/posts/show.blade.php

php

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>{{ $post->title }}</title> 6 <link rel="stylesheet" href="/css/styles.css"> 7</head> 8<body> 9 <div class="container"> 10 <h1>{{ $post->title }}</h1> 11 <p>{!! nl2br(e($post->body)) !!}</p> 12 </div> 13</body> 14</html>

試したこと

Laravel以下のファイルはユーザーapacheにして読み込み書き込みをできるようにしています

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

PHP 7.1.29
Laravel Framework 5.8.16
CentOS Linux release 7.6.1810 (Core)
Server version: Apache/2.4.6 (CentOS)

バーチャルホストでポート8001をlaravelにしています

Listen 8001
<VirtualHost *:8001>
DocumentRoot /var/www/laravel/public
</VirtualHost>

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

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

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

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

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

Eggpan

2019/05/19 15:54

VPSのOSは何でしょうか? apacheの設定が関わってそうなのですが、OSによって設定ファイルのディレクトリが異なるので記載いただければと思います。 apacheのmod_rewriteが有効になってなくて、index.php以外へのアクセスのリライトに失敗している可能性が高そうです。 Ubuntu16.04等の場合、mod_rewriteはデフォルトでは無効なので sudo a2enmod rewrite コマンドなどで有効化する必要があります。
donkuri

2019/05/19 16:00

OSは CentOS Linux release 7.6.1810 (Core) です。
donkuri

2019/05/19 16:03

Apachも調べました Server version: Apache/2.4.6 (CentOS)
m.ts10806

2019/05/20 01:47

{}のパラメータなしのページ作っても同じですか?
donkuri

2019/05/20 02:07

show.blade.phpの{{ }}のパラメータ部分を全部取ってみましたが、Not foundでした。。
m.ts10806

2019/05/20 02:14

いえ、別ページを作ってくださいという意味です。 ルーティング、コントローラ、ビュー すべて今回用意したものとは別で、/hoge/{id} ではなく /hoge のようにパラメータなしのページです
m.ts10806

2019/05/20 02:15

あと、アクセスしているURLとApacheのDocumentRootの設定を追記してください
donkuri

2019/05/20 03:35

DocumentRootの設定で直ったかもしれません。
m.ts10806

2019/05/20 03:35

質問は編集できるので状況適宜ご調整ください。
donkuri

2019/05/20 04:06

いろいろと確認したところ、解決できたみたいです。 そもそもの前提で間違えていました。すみません。。 回答を記入しておきます。何度もありがとうございました。
m.ts10806

2019/05/20 04:19

「質問は(もちろん回答も)編集できる」というのは頭に置いておいてください。
donkuri

2019/05/20 04:45

はい 質問にも追加しておきました
guest

回答2

0

アプリケーションの設定Webサーバの設定がちゃんと設定されているか見直してください。
今回の場合は、特にWebサーバ(Apache)の設定。念のため、Apacheの設定変更後は再起動をお忘れなく。

投稿2019/05/19 16:11

編集2019/05/19 16:20
xenbeat

総合スコア4258

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

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

donkuri

2019/05/19 17:21

1.アプリケーションの設定はindexが表示されてるので大丈夫と思っています 2.webサーバーの設定に関して ①httpd.confに以下を追加して LoadModule rewrite_module modules/mod_rewrite.so ②/var/www/laravel/public/.htaccessを以下に書き換えました <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options +FollowSymLinks -Indexes </IfModule> RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> その後Apache再起動しましたが、ダメでした
xenbeat

2019/05/19 18:18

DirectoryセクションのAllowOverrideが有効になっているか確認してみてください。 無効だと.htaccessが無視されます。 <Directory ....> .... AllowOverride All  ←これがNoneになってない? .... </Directory> あと、以降「ダメでした」だけでなく、どうダメだったのかApacheのエラーを添えてコメントいただけると助かります。 同じ環境はこちらにないので、1つ1つ具体的に状況を説明いただかないと的確な回答が出来かねます。
donkuri

2019/05/20 02:03

なんどもありがとうございます。 /etc/httpd/conf/httpd.conf の<Directory>の部分を以下に書き換えました。 <Directory /> # AllowOverride none AllowOverride All Require all denied </Directory> その後、 systemctl restart sshd.service をしましたが、Not foundです。 ↓ Not Found The requested URL /posts/1 was not found on this server.
guest

0

自己解決

アドバイスいただき、DocumentRootのあたりを見直していたところ、
/etc/httpd/conf/httpd.conf
の記述間違いを発見できました。

バーチャルホストでポート8001をlaravelのフォルダにしていたのですが、

<誤>
Listen 8001
<VirtualHost *:8001>
DocumentRoot /var/www/laravel/public
</VirtualHost>

<正>
Listen 8001
<VirtualHost *:8001>
DocumentRoot /var/www/laravel/public
<Directory /var/www/laravel>
AllowOverride All
</Directory>
</VirtualHost>

上記のように修正したところ直りました。
バーチャルホストにもAllowOverride Allを書かないといけませんでした。。
そもそもの前提段階で間違えており、回答してくださった皆様にはご迷惑をおかけしました。

頂いたアドバイスは知らないことばかりで勉強になりました。ありがとうございました。

投稿2019/05/20 04:02

donkuri

総合スコア81

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問