shogakusya
@shogakusya

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Laravel環境構築

解決したいこと

Windows 環境で Laravel アプリケーションの開発を行うチュートリアルを行っています。
ブラウザ(chrome)で、URLを入力しても狙い通りの画面がしゅつりょくされません。
解決方法を教えてください。

発生している問題・エラー


Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.2.34-24+ubuntu20.04.1+deb.sury.org+1. in /home/vagrant/code/sample/vendor/composer/platform_check.php on line 24

image.png

自分で試したこと
Composerを使うために必要なPHPのバージョンが8.0.0以上である必要があるのに、低すぎるというエラーとあったので、PHPのバージョンを上げるために、Dockerfileの中に記載している「FROM php:7.2-fpm」
の中を書き換えようとしましたが、記載自体がなかったため、書き換えができませんでした。

phpのバージョンをcmdより確認すると、ローカルで

PHP 8.0.12 (cli) (built: Oct 19 2021 11:21:05) ( ZTS Visual C++ 2019 x64 )
Copyright (c) The PHP Group
Zend Engine v4.0.12, Copyright (c) Zend Technologies

仮想環境で
「PHP 8.0.11 (cli) (built: Sep 23 2021 21:26:24) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies
with Zend OPcache v8.0.11, Copyright (c), by Zend Technologies

と表示されているので、問題ないようです。

Homesteadディレクトリ直下にHomestead.yamlが存在し、
Homesteadディレクトリ直下にある、resourcesというフォルダー直下に、Homestead.yamlがあるため、両方のfolders:とsites:を書き換えて、仮想環境を再起動しましたが、開かないままでした。

@skys215さんが教えてくださった方法を試します。
現在、composer.jsonの中の一部は以下の状態です。

"require": {
"php": "^5.6 || ^7.0",
"symfony/console": "~3.3|~4.0",
"symfony/process": "~3.3|~4.0",
"symfony/yaml": "~3.3|~4.0"
}

下記の通りに変更しました。

"require": {
"php": "^7.2 || ^8.0",
"symfony/console": "~3.3|~4.0",
"symfony/process": "~3.3|~4.0",
"symfony/yaml": "~3.3|~4.0"
}

仮想環境を再起動しましたが、エラーメッセージは同じ状態です。

composer check-platform-reqsを実行しました。

No vendor dir present, checking platform requirements from the lock file
ext-dom 20031129 success
ext-json 8.0.12 success
ext-libxml 8.0.12 success
ext-mbstring 8.0.12 success
ext-phar 8.0.12 success
ext-tokenizer 8.0.12 success
ext-xml 8.0.12 success
ext-xmlwriter 8.0.12 success
php 8.0.12 doctrine/instantiator requires php (>=5.3,<8.0-DEV) failed

「どのエクステンションがPHP8.0を求めてるかチェックができます」とのことですが、この後、どうすればよいのかわかっていません。

「無理矢理にエラーを無視したい場合 は、
composer install --ignore-platform-reqsを使ってphpのバージョンチェックを無視することができます。(あるいはcomposer.jsonのconfigセクションに"platform-check": false,を追加)
その後、composer autoload-dumpを実行。」
を試しましたが、以下のようになります。

composer install --ignore-platform-reqs

Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run composer update or composer update <package name>.
Package operations: 44 installs, 0 updates, 0 removals
- Downloading zendframework/zend-stdlib (3.2.0)
- Downloading psr/container (1.0.0)
- Downloading container-interop/container-interop (1.2.0)
- Downloading zendframework/zend-validator (2.10.2)
- Downloading zendframework/zend-escaper (2.6.0)
- Downloading zendframework/zend-uri (2.6.1)
- Downloading zendframework/zend-loader (2.6.0)
- Downloading zendframework/zend-http (2.8.0)
- Downloading zendframework/zend-console (2.7.0)
- Downloading phly/changelog-generator (v2.2.0)
- Downloading webmozart/assert (1.2.0)
- Downloading phpdocumentor/reflection-common (1.0.1)
- Downloading phpdocumentor/type-resolver (0.4.0)
- Downloading phpdocumentor/reflection-docblock (4.1.1)
- Downloading phpunit/php-token-stream (2.0.1)
- Downloading sebastian/version (2.0.1)
- Downloading sebastian/resource-operations (1.0.0)
- Downloading sebastian/recursion-context (3.0.0)
- Downloading sebastian/object-reflector (1.1.1)
- Downloading sebastian/object-enumerator (3.0.3)
- Downloading sebastian/global-state (2.0.0)
- Downloading sebastian/exporter (3.1.0)
- Downloading sebastian/environment (3.1.0)
- Downloading sebastian/diff (2.0.1)
- Downloading sebastian/comparator (2.1.0)
- Downloading phpunit/php-text-template (1.2.1)
- Downloading doctrine/instantiator (1.0.5)
- Downloading phpunit/phpunit-mock-objects (4.0.4)
- Downloading phpunit/php-timer (1.0.9)
- Downloading phpunit/php-file-iterator (1.4.3)
- Downloading theseer/tokenizer (1.1.0)
- Downloading sebastian/code-unit-reverse-lookup (1.0.1)
- Downloading phpunit/php-code-coverage (5.2.3)
- Downloading phpspec/prophecy (1.7.3)
- Downloading phar-io/version (1.0.1)
- Downloading phar-io/manifest (1.0.1)
- Downloading myclabs/deep-copy (1.7.0)
- Downloading phpunit/phpunit (6.4.4)
- Downloading symfony/polyfill-mbstring (v1.6.0)
- Downloading psr/log (1.0.2)
- Downloading symfony/debug (v3.3.13)
- Downloading symfony/console (v3.3.13)
- Downloading symfony/process (v3.3.13)
- Downloading symfony/yaml (v3.3.13)
- Installing zendframework/zend-stdlib (3.2.0): Extracting archive
- Installing psr/container (1.0.0): Extracting archive
- Installing container-interop/container-interop (1.2.0): Extracting archive
- Installing zendframework/zend-validator (2.10.2): Extracting archive
- Installing zendframework/zend-escaper (2.6.0): Extracting archive
- Installing zendframework/zend-uri (2.6.1): Extracting archive
- Installing zendframework/zend-loader (2.6.0): Extracting archive
- Installing zendframework/zend-http (2.8.0): Extracting archive
- Installing zendframework/zend-console (2.7.0): Extracting archive
- Installing phly/changelog-generator (v2.2.0): Extracting archive
- Installing webmozart/assert (1.2.0): Extracting archive
- Installing phpdocumentor/reflection-common (1.0.1): Extracting archive
- Installing phpdocumentor/type-resolver (0.4.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (4.1.1): Extracting archive
- Installing phpunit/php-token-stream (2.0.1): Extracting archive
- Installing sebastian/version (2.0.1): Extracting archive
- Installing sebastian/resource-operations (1.0.0): Extracting archive
- Installing sebastian/recursion-context (3.0.0): Extracting archive
- Installing sebastian/object-reflector (1.1.1): Extracting archive
- Installing sebastian/object-enumerator (3.0.3): Extracting archive
- Installing sebastian/global-state (2.0.0): Extracting archive
- Installing sebastian/exporter (3.1.0): Extracting archive
- Installing sebastian/environment (3.1.0): Extracting archive
- Installing sebastian/diff (2.0.1): Extracting archive
- Installing sebastian/comparator (2.1.0): Extracting archive
- Installing phpunit/php-text-template (1.2.1): Extracting archive
- Installing doctrine/instantiator (1.0.5): Extracting archive
- Installing phpunit/phpunit-mock-objects (4.0.4): Extracting archive
- Installing phpunit/php-timer (1.0.9): Extracting archive
- Installing phpunit/php-file-iterator (1.4.3): Extracting archive
- Installing theseer/tokenizer (1.1.0): Extracting archive
- Installing sebastian/code-unit-reverse-lookup (1.0.1): Extracting archive
- Installing phpunit/php-code-coverage (5.2.3): Extracting archive
- Installing phpspec/prophecy (1.7.3): Extracting archive
- Installing phar-io/version (1.0.1): Extracting archive
- Installing phar-io/manifest (1.0.1): Extracting archive
- Installing myclabs/deep-copy (1.7.0): Extracting archive
- Installing phpunit/phpunit (6.4.4): Extracting archive
- Installing symfony/polyfill-mbstring (v1.6.0): Extracting archive
- Installing psr/log (1.0.2): Extracting archive
- Installing symfony/debug (v3.3.13): Extracting archive
- Installing symfony/console (v3.3.13): Extracting archive
- Installing symfony/process (v3.3.13): Extracting archive
- Installing symfony/yaml (v3.3.13): Extracting archive
Generating autoload files

composer autoload-dump

[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "autoload-dump" is not defined.

composer.lockファイルを削除しました。

現在の状態です。
image.png

いったん、vagrantをアンインストールして取り直しました。

apache/nginx
storage/logs/laravel.log
の場所を確認したのですが、それらしいlogが見当たりませんでした。

.envのAPP_ENVをdevelopmentに変えて、リフレッシュしましたが、ダメでした。

以下のサイトより、composerをインストールして、ログインページを出力しました。
https://www.youtube.com/watch?v=M7ZV0GKm4lI&list=PLh6V6_7fbbo8bb7eajaLdsQZ9fLhMJ-oc&index=1」
image.png

いろいろなウェブページをみて、表示させたため、理解できていないのが心残りです。

0

1Answer

phpのcliとfpmは別です。
phpinfo()を通じてphp-fpmのバージョンを確認できます。

composer.jsonを貼り付けともよろしいでしょうか?その中でphp8を要求された場合、

"require": {
    "php": "^8.0",
    .....
},

"require": {
    "php": "^7.2||^8.0",
    .....
},

に変更すれば治ると思います。

参考:
composer check-platform-reqsを通じて、どのエクステンションがPHP8.0を求めてるかチェックができます。

無理矢理にエラーを無視したい場合 は、
composer install --ignore-platform-reqsを使ってphpのバージョンチェックを無視することができます。(あるいはcomposer.jsonのconfigセクションに"platform-check": false,を追加)
その後、composer autoload-dumpを実行。

0Like

Comments

  1. @shogakusya

    Questioner

    記事の更新をしました。
    「どのエクステンションがPHP8.0を求めてるかチェックができます」とのことですが、この後、どうすればよいのかわかっておりません。
  2. ググった結果、composer.lockを削除すれば治る様子です。

    問題はfailedて書いてあるパッケージみたいです`php 8.0.12 doctrine/instantiator requires php (>=5.3,<8.0-DEV) failed`。

    `Command "autoload-dump" is not defined.`については、`composer autoload-dump`でした。すみません。
  3. @shogakusya

    Questioner

    composer.lockのファイルを削除しました。
    画面の現在の状態をアップしております。
  4. ログにエラー内容が書かれてあるはずです、確認をお願いします。
    .envのAPP_ENVをdevelopmentかlocalに変更しリフレッシュすれば、エラー内容が画面に表示されるはずです。
    もしlaravelのログに何も書かれてなかったら、apache/nginxのログを確認してみてください。
  5. @shogakusya

    Questioner

    エラーの見方がよくわからなかったので、ネット上のやり方をいろいろと試した所、それらしいページを表示させることができました。
    根気強くアドバイスをくださりありがとうございました。

Your answer might help someone💌