Error: error:0308010C:digital envelope routines::unsupported

このエラーは、Node.jsのバージョンが17以上である場合に、Node.jsがデフォルトでOpenSSL 3を使用し、一部の暗号化アルゴリズムが非推奨またはサポートされなくなったことに関連しておこるエラーです。

【解決方法】

PowerShellでの正しい環境変数の設定する

 $env:NODE_OPTIONS="--openssl-legacy-provider"

npm run dev を実行

 

 

Target class [App\Http\Controllers\App\Http\Controllers\Admin\OwnersController] does not exist.

可能性1:オートロードが変になっている

composer.json内のautoloadが下記になっているか確認。

(プロジェクトフォルダをappフォルダと指定して、ここからuse文で名前空間を設定しています。)

 "autoload": {
 "psr-4": {
 "App\\": "app/",

 

可能性2:RouteServiceProvider.php

protected $namespace = 'App\\Http\\Controllers';

コメントアウト

Class "Intervention\Image\ImageServiceProvider" not found

config/app.php

providers配列

Intervention\Image\ImageServiceProvider::class

aliases配列に

'Image' => Intervention\Image\Facades\Image::class,

が追加されていることも確認

composer.json

"intervention/image": "*"の部分を、例えば"intervention/image": "^2.5"に変更

プロジェクトのルートディレクト

composer update

 


※エラーが続く場合

config/app.php

一時的にIntervention\Image\ImageServiceProvider::classをコメントアウトphp artisan serveを実行

Laravelのバージョンアップ方法

laravel8からlaravel10にアップグレードする場合

laravel10を別フォルダにインストール

生成されたcomposer.jsonとpackage.jsonをlaravel8の方にコピペ

vendorフォルダとnode_modulesフォルダを削除

composer install や npm installで再インストール

エラーが出たところを都度修正

【参考】

https://codelikes.com/laravel-upgrade/