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

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

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

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5312閲覧

Laravelをインストールしたが、publicにアクセスするとソースコードが表示されてしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/12/24 13:58

編集2017/12/24 16:33

###前提・実現したいこと

ubuntuのコンテナで下記により、Laravelのプロジェクトフォルダを作成し、.envファイルも設定しましたが、
http://defaultのIP:8080/mylaravel/public/
にアクセスすると、ソースコードが表示されてしまいます。

composer create-project --prefer-dist laravel/laravel mylaravel

ubuntuのコンテナ内でapache2は起動していて、
http://defaultのIP:8080/
にアクセスすると、apahce2のページは表示されます。
ご教授のほどお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
ubuntu, Laravel5

###追記
apache2.confで下記エラーが出ました。
※8080はdefault側のポートなので書かず、コンテナの80ポートで設定しました。

NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost>
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/apache2.conf:178 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.〇〇.〇.2. Set the 'ServerName' directive globally to suppress this message

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

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

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

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

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

Tomak

2017/12/24 14:26

Webサーバーは何を使っているのでしょうか? 「php artisan serve」で立ち上げているのでしょうか? それともApacheやNginなどを立ち上げているのでしょうか?
退会済みユーザー

退会済みユーザー

2017/12/24 16:07

ご回答ありがとうございます。Webサーバーはコンテナ内でapache2を使っています。php artisan serveも試してみましたが、うまくいきませんでした。とりあえず、apache2で動かしたいと思っています。また、説明不足ですみません。0.0.0.0:8080->80/tcpのようにdefaultマシンとコンテナをマッピングしています。defaultIP:8080にアクセスで→コンテナの80ポートに繋がります。
guest

回答1

0

ベストアンサー

PHPのソースコードが表示されるのは、AddType application/x-httpd-php .php .incを設定していないからだと思います。

下記エラーはIPベースの接続のため、サーバー名を名前解決ができないために表示されています。名前解決ができない場合はバーチャルホストにはアクセスせずに、メインのDocumentRootの設定を利用します。

AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/apache2.conf:178 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.〇〇.〇.2. Set the 'ServerName' directive globally to suppress this message

ApacheのバーチャルホストのドキュメントルートをDocumentRoot /www/example2/mylaravel/publicに設定します。これを設定しなくても動きますが、普通は**public/**をドキュメントルートに設定します。

IPベースでアクセスするには、いくつか方法がありますが下記のように<VirtualHost 172.〇〇.〇.2:80>の部分にIPアドレスを設定します。

apache

1# mylaravel VirtualHost 2<Directory "/www/example2/mylaravel/public"> 3 Options +FollowSymLinks 4 AllowOverride All 5 AddType application/x-httpd-php .php .inc 6 DirectoryIndex index.html index.php 7 Require all granted 8</Directory> 9<VirtualHost 172.〇〇.〇.2:80> 10 ServerName www.example.org 11 DocumentRoot /www/example2/mylaravel/public 12 ErrorLog logs/error_log 13 CustomLog logs/access_log combined env=!no_log 14# RewriteLog logs/rewrite_log 15# RewriteLogLevel debug 16</VirtualHost>

バーチャルホストを使用しない場合は、単純にメインのドキュメントルートを設定するのみです。

apache

1Listen 80 2ServerName localhost 3... 4DocumentRoot "/www/example2/mylaravel/public"

投稿2017/12/24 14:42

編集2017/12/24 17:37
Tomak

総合スコア1652

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

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

退会済みユーザー

退会済みユーザー

2017/12/25 16:16

ご回答ありがとうございます。そもそもLaravelに関係なく、PHP自体が動いてないことに気づきました。 原因は、apache2でphp7.0.loadのモジュールが入ってないことみたいです。 DocumentRootの書き方、ご教授いただきありがとうございました。 バーチャルホストも知らなかったので勉強になりました。
Tomak

2017/12/25 17:53

解決策が見つかったようなのでよかったです。そういうこともよくあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問