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

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

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

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

PHP

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

Circle CI

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

解決済

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

Maruco2321
Maruco2321

総合スコア110

Laravel

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

PHP

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

Circle CI

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

1回答

0評価

0クリップ

275閲覧

投稿2022/06/09 06:36

編集2022/06/19 15:02

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

AbeTakashi

2022/06/10 14:18 編集

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

2022/06/19 05:59

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

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel

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

PHP

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

Circle CI

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