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

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

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

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

解決済

1回答

2189閲覧

Laravelデモ画面で500エラー

popc

総合スコア34

Laravel

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

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

0クリップ

投稿2020/04/11 00:52

編集2020/04/11 10:41

#やりたいこと・困っていること
vagrant+homesteadでlaravelを動かそうとしていますが、
npm run watchでローカルサーバーを立ち上げても、laravelのWelcomeのデモ画面が500エラーで表示されません。
hoge.testでWelcome画面を表示させたいです。

#環境、現状

MacBook Pro
vagrant + homestead + composer使用
Laravel Framework 7.4.0
vagrant内phpのバージョン PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1
MackBook内のphpのバージョン PHP 7.3.0

homestead.yaml

yaml

1folders: 2 - map: ~/project/hoge/ 3 to: /home/vagrant/hoge 4 5sites: 6 - map: hoge.test 7 to: /home/vagrant/hoge/public

ターミナルでhogeフォルダに移動し

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

laravelというフォルダができましたが、
hoge直下に持ってきたかったので、中のファイルを全てhogeフォルダ直下に移動しlaravelフォルダを削除
(hoge/app 〜 のような構成)

/hoge/routes/web.php

php

1Route::get('/', function () { 2 return view('welcome'); 3});

#試したこと

##public/index.html をおいてみる
hoge.testで表示されました。

##php artisan serve
http://127.0.0.1:8000/
で、Welcomeの画面が表示されました。

##権限の変更を試みる
公式やいろんなサイトでstorageフォルダとbootstrapフォルダにhttpdユーザの権限が必要だという記事を読み、権限の変更を試みるも失敗しているようです。

最初の状態 
$ls -la
drwxr-xr-x 1 vagrant vagrant 128 Mar 24 17:31 bootstrap
drwxr-xr-x 1 vagrant vagrant 160 Mar 24 17:31 storage

実行
$ sudo chmod -R 775 storage

結果(変わらない)
drwxr-xr-x 1 vagrant vagrant 160 Mar 24 17:31 storage

実行
$ sudo chcon -R -t httpd_sys_rw_content_t storage

結果
chcon: failed to get security context of 'services.php': Operation not supported

実行
$ sudo chown -R apache:apache /home/vagrant/hoge

結果
chown: invalid user: ‘apache:apache’

そもそもユーザーはapacheではなくnginx(?)だと思っているのですが、
その場合にどうすれば良いのかがわかっておりません…。

##ログの確認

vagrant@homestead:/var/log/nginx/hoge.test-error.log

PHP message: PHP 25. include() /home/vagrant/hoge/vendor/composer/ClassLoader.php:444" while reading response header from upstream, client: 192.168.10.1, server: hoge.test, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.1-fpm.sock:", host: "hoge.test"

他に必要な情報があれば追記いたします。
何卒よろしくお願いいたします。

#追記

storage/logs/laravel.log

500エラーを表示させたあと、エラーが出ていました。
エラーの行数が多くて、ここが更新されていることに気づいていませんでした・・・。

[2020-04-11 15:20:58] local.ERROR: Declaration of Carbon\Translator::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $locale) {"exception":"[object] (Symfony\Component\ErrorHandler\Error\FatalError(code: 0): Declaration of Carbon\Translator::setLocale($locale) must be compatible with Symfony\Contracts\Translation\LocaleAwareInterface::setLocale(string $locale) at /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Translator.php:18) [stacktrace] #0 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(143): Symfony\Component\ErrorHandler\Error\FatalError->__construct() #1 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(130): Illuminate\Foundation\Bootstrap\HandleExceptions->fatalErrorFromPhpError() #2 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(0): Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown() #3 /home/vagrant/hoge/vendor/composer/ClassLoader.php(444): () #4 /home/vagrant/hoge/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile() #5 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php(113): Composer\Autoload\ClassLoader->loadClass() #6 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php(113): spl_autoload_call() #7 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php(718): Carbon\Carbon::translator() #8 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php(494): Carbon\Carbon::getLocaleAwareTranslator() #9 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php(40): Carbon\Carbon::setLocale() #10 /home/vagrant/hoge/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php(20): Carbon\Laravel\ServiceProvider->updateLocale() #11 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): Carbon\Laravel\ServiceProvider->boot() #12 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array:{/home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:32}() #13 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure:/home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:30-34}() #14 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure() #15 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod() #16 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Container/Container.php(592): Illuminate\Container\BoundMethod::call() #17 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(865): Illuminate\Foundation\Application->call() #18 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(848): Illuminate\Foundation\Application->bootProvider() #19 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(849): Illuminate\Foundation\Application->Illuminate\Foundation\{closure:/home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:847-849}() #20 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(849): array_walk() #21 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php(17): Illuminate\Foundation\Application->boot() #22 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(228): Illuminate\Foundation\Bootstrap\BootProviders->bootstrap() #23 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\Foundation\Application->bootstrapWith() #24 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(135): App\Http\Kernel->bootstrap() #25 /home/vagrant/hoge/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): App\Http\Kernel->sendRequestThroughRouter() #26 /home/vagrant/hoge/public/index.php(55): App\Http\Kernel->handle() #27 /home/vagrant/hoge/public/index.php(0): {main}() #28 {main} "}

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

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

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

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

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

Lulucom

2020/04/11 10:17

> Welcomeのデモ画面が500エラーで表示されません。 発生させた直後、hoge/storage/logs/にあるログファイルには何かエラーメッセージが出るのではないかと思います。もし出たら掲載をお願いします。
popc

2020/04/11 10:42

ありがとうございます。 掲載いたしました。
Lulucom

2020/04/11 10:58 編集

ありがとうございます。ロケールの設定に関するエラーが出ているようですが心当たりなどないでしょうか。もしあれば掲載をお願いします。例えば、config/app.phpファイルとかです。他の場所かもしれませんが。
Lulucom

2020/04/11 11:32

すみません、config/app.phpファイルは関係無さそうです。
Lulucom

2020/04/11 13:57 編集

<?php phpinfo(); とだけ書いたPHPファイルをhoge/public/a.phpとして一時的に作り、ブラウザからhoge.test/a.phpなどとアクセスするとPHPバージョンはどうなっていますか?(確認後はa.phpを削除してください)
popc

2020/04/11 16:13

バージョンは、 PHP Version 7.1.33-14+ubuntu18.04.1+deb.sury.org+1 となっておりました。 7.3かと思っていたら違いました…。色々と勉強になります。ありがとうございます。
guest

回答1

0

ベストアンサー

vendorディレクトリを一旦消して、HomesteadにSSHで入ってから、composer updateをやり直すとどうでしょうか。

(追記)
HomesteadのPHPバージョンを7.2.5以上にしてから上記を行なってみてください。Laravel 7.xのサーバ要件が PHP >= 7.2.5 となっています。
Laravel 7.x インストール

投稿2020/04/11 11:31

編集2020/04/12 10:38
Lulucom

総合スコア1899

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

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

popc

2020/04/11 11:40

ありがとうございます。 やってみましたが、結果変わらずでした・・・。 また、エラー内容をみて、ここのサイトを参考にし、 https://github.com/laravel/framework/issues/30655 composer.jsonの"require": {〜〜}の中に「"symfony/translation": "4.3.8"」を加えてみましたが、これも結果変わらずでした…。
Lulucom

2020/04/11 11:46 編集

それを加えてから composer update はされましたか? あるいは、composer.json を直接編集する代わりに composer require symfony/translation:4.3.8 でも良いと思います。 (もちろんHomesteadにSSHしてからです)
popc

2020/04/11 13:08

vagrant sshしてから、 composer require symfony/translation:4.3.8し、 念の為ファイル内をless composer.jsonで確認してから composer updateし、 venderフォルダを削除してからcomposer installしました。 結果、変わりませんでした…。ターミナル操作についても助言いただき、大変助かります。 まだ間違いあればご指摘いただけますと助かります。
popc

2020/04/12 05:08

>(追記) HomesteadのPHPバージョンを7.2.5以上にしてから上記を行なってみてください。Laravel 7.xのサーバ要件が PHP >= 7.2.5 となっています。 そうだったのですね!ありがとうございます。laravelのバージョンが7なのに5のマニュアルを見ていたり、いろいろ甘い部分がありました。感謝いたします。 HomesteadのPHPバージョンをアップさせるために、いろいろバージョンアップする必要があり、下記実施しました。 PHPのバージョンを指定するためにはhomestead.yamlに - map: homestead.test to: /home/vagrant/project1/public php: "7.★" のように記入すれば良いようですが、同一仮想マシン上での複数PHPバージョンはHomestead6からサポートと公式にありますので、Homesteadのバージョンを調べたところ ~/⁨Homestead⁩/bin/homestead に $app = new Symfony\Component\Console\Application('Laravel Homestead', '5.4.0'); とあり、どうやら5.4のようでした。 そこで、homesteadのバージョンをまずアップさせ、現在リリースの10.7.0にしました。 この状態でvagrant upしようとすると、チェックサムのエラーが出て、結果的にはVagrantもバージョンが低かったということで vagrantのバージョンを2.2.5から2.2.7へアップデートしました。 その後、vagrant box update でvagrant boxを更新し、 homestead.yamlに ーーーー sites: - map: hoge.test to: /home/vagrant/hoge/public php: "7.3" ーーーー と記載し、vagrant reload --provisionで設定を更新しました。 これでいけると思ったのですが、いまだにpublic化でphpが7.1となってしまいます。 vagrant sshの状態でphp -vで確認するとPHP 7.4.4となっているのですが… ここまでで足りないところなどありましたらまたご教授いただけますと嬉しいです。
popc

2020/04/12 10:12

できました!! composer-lockを削除して、 venderフォルダを削除してもう一回compose installし、 うまくいってそうな感じのメッセージが出たので、 そのあとvagrantを立ち上げ直し(これは必要だったのかわからないですが、再起動しました)たら、 Welcome画面が表示されました! 補足ですが、過程で追加していた「"symfony/translation": "4.3.8"」はcomposer.jsonから削除しないとエラーがでましたので、こちらは削除しました。 2日がかりとなりましたが、非常に助かりました。ありがとうございました。
Lulucom

2020/04/12 10:35

いえいえ、よかったです。composer.lock削除かcomposer updateが確かに必要でしたね。今後見る人のためにも追記しておきます。ご報告ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問