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

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

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

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

PHP

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

1060閲覧

LaravelアプリのEC2上でのエラーについて

Maruco2321

総合スコア118

Laravel

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

PHP

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2022/06/09 06:36

編集2022/06/09 06:57

MacbookでLarevelで作ったアプリをバージョンを上げて、デプロイしようとしております。以前までは下のような構図でうまくCircleCIやテストmぽまわっていたのですがPHP8とLaravel9で動かしたいと思い、コードを変えたりしてCircleCIでのビルドまでは成功したのですが、デプロイ後、リンクに飛ぶとエラー分が出てしまい、苦戦しているといった状態です。イメージ説明

リンク先でのエラー分
イメージ説明

コード Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.1. in /var/www/html/vendor/composer/platform_check.php on line 24

AWSのEC2では下のようにバージョンはPHP8.0以上であるのにも関わらずこのようになってしまうのがわからないでいます。よろしくお願いします。

コード $ php -v PHP 8.0.16 (cli) (built: Mar 1 2022 00:31:45) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.16, Copyright (c) Zend Technologies [ec2-user@????????? src]$ php artisan -V Laravel Framework 9.17.0

sircleCIの記述

コード version: 2.1 jobs: build: docker: # - image: circleci/php:7.4-zts-buster-node-browsers-legacy - image: cimg/php:8.0.19-node steps: - checkout - run: sudo composer - run: working_directory: src command: composer update - run: working_directory: src # command: composer install -n --prefer-dist command: composer install --ignore-platform-reqs - run: working_directory: src # command: npm ci command: npm install - run: working_directory: src command: npm run dev - run: working_directory: src command: mv .env.example .env - run: working_directory: src command: sudo php artisan key:generate - run: name: php test working_directory: src command: vendor/bin/phpunit deploy: docker: # - image: circleci/php:7.4-zts-buster-node-browsers-legacy - image: cimg/php:8.0.19-node steps: - add_ssh_keys - run: name: deploy working_directory: ~/src command: | ssh -o StrictHostKeyChecking=no -t ec2-user@??????? "cd portfolio && \ git pull origin master && \ cd src && \ sudo composer install --prefer-dist && \ npm install && \ npm run dev && \ php artisan migrate --force && \ php artisan config:cache" workflows: version: 2 build_deploy: jobs: - build - deploy: requires: - build filters: branches: only: - master

試したこと

エラー部分のファイル?を調べると以下のようでした。

composer]$ cat platform_check.php <?php // platform_check.php @generated by Composer $issues = array(); if (!(PHP_VERSION_ID >= 80002)) { $issues[] = 'Your Composer dependencies require a PHP version ">= 8.0.2". You are running ' . PHP_VERSION . '.'; } if ($issues) { if (!headers_sent()) { header('HTTP/1.1 500 Internal Server Error'); } if (!ini_get('display_errors')) { if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); } elseif (!headers_sent()) { echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; } } trigger_error( 'Composer detected issues in your platform: ' . implode(' ', $issues), E_USER_ERROR ); } [ec2-user@??? composer]$ pwd /home/ec2-user/portfolio/src/vendor/composer

また、どこかのサイトでsudo composer install --ignore-platform-reqs (--prefer-distを変更)にすると治ると書かれており、試した結果リンク先で次のようになりました。--prefer-disに戻すとエラーも戻ります。もう少し検討してみたいと思います。

エラー文

Fatal error: Uncaught TypeError: Return value of Illuminate\Container\Container::offsetGet()
must be an instance of Illuminate\Container\mixed,
instance of Illuminate\Events\Dispatcher returned in /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php:1415
Stack trace: #0 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing
/RoutingServiceProvider.php(43): Illuminate\Container\Container->offsetGet('events') #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(871): Illuminate\Routing\RoutingServiceProvider->Illuminate\Routing{closure}(Object(Illuminate\Foundation\Application), Array) #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(756): Illuminate\Container\Container->build(Object(Closure)) #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(855): Illuminate\Container\Container->resolve('router', Array, true) #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illu in /var/www/html/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1415

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

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

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

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

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

AbeTakashi

2022/06/10 14:18 編集

エラーを見る限りではやはりPHPは7.4なのでしょう。 ymlが修正されたような形跡がありますが、もしかするとCircle CIでyml(もしくはイメージまるごと)がキャッシュされてるような状態なのかもしれません。久しくCircle CI使ってなくて忘れましたが、なんかキャッシュを削除するような機能があったような気がしました。だめなら再度プロジェクトごと新規で作り直してみてはどうでしょう。
Maruco2321

2022/06/19 05:59

返信かなり遅くなりました!コメントありがとうございます。 Circle CIではなかったのですが、docker のキャッシュが問題のエラーでした。
guest

回答1

0

自己解決

コメントを元にいじっていたのですが、結論として、docker のキャッシュが問題のエラーでした。
dockcer-compose down
をやった後、
イメージやキャッシュを消した後、
再度
EC2のターミナル内で
dockcer-compose up -d
をしたらエラー解決しました!コメントの方ありがとうございます。
お騒がせしました🙇‍♂️

投稿2022/06/19 06:02

Maruco2321

総合スコア118

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問