かあスレッド_バージョンアップ
skonishi1125.icon
計画
上げるもの
PHP
code:sh
php -v
PHP 7.4.16 (cli) (built: Mar 2 2021 10:35:17) ( NTS )
laravel
code:sh
php artisan --version
Laravel Framework 6.20.44
vue.js
code:sh
# ローカル
backend@ /Users/skoni/Desktop/Laravel_kirThread/local/laravel_kirthread/backend
├─┬ laravel-vue-pagination@4.1.3
│ └─┬ vue@3.4.38
│ └─┬ @vue/server-renderer@3.4.38
│ └── vue@3.4.38 deduped
└── vue@2.7.16
どれが入ってるんだ...
なぜかmysqlは8.0である
code:txt
mysql --version
mysql Ver 8.0.21 for Linux on x86_64 (Source distribution)
変えたい
ローカルはnginxのコンテナ使ってるのに本番はapacheで動いてるのでnginxにしたい
妄想
似たスペックでサーバ構築をする
バージョンアップしたかあスレッドアプリを配置。
動作したらconohaのサーバ再構築機能で立てる。
↑面倒なのでサービスごと移行してもいいかも
現状の費用
conoha
ドメイン 3780
鯖 11616 /年 言うて月960くらい(2core/1gb)
対抗
EC2
1vcpr 0.5GBmemでも5.5ドル(700~)。
lightsail
2vCPU/0.5GBmem で 5USD(730円)~.
こう見るとEC2でいい説があるなぁ〜
EC2はサービスとしては古いかもしれないが、その他に興味を持ったら移行できるのも強い
EC2立ち上げる
ローカルで動かして、問題なければEC2で最新の環境を用意して配置→動けばOKという流れで構わない。
アプデやる
PHP
最新は8.3
コンテナに存在するバージョンを採用したい
Dockerについて
php:8.2-cliかな。
code:Dockerfile
# FROM php:7.4-fpm を
FROM php:8.2-cli
code:sh
docker compose build --no-cache
docker compose up -d
立ち上がんね
php:8.2-cliがまずかった。スクリプト実行用のコンテナである
nginxなどと併用するならばphp:8.2-fpmを使わないとダメ。
もう一回試す
こけた
code:Dockerfile
# 多分 RUN composer global require "laravel/installer" でこけてる
zipが解凍できてなかったので、libzip-devなどを事前にapt-getするように設定
(昔からこの設定でやっていたが、あれこれしているうちに消してしまっていた)
テスト!
code:sh
docker compose exec app bash
root@81ffd2a2836d:/var/www/laravel_kirthread# php -v
PHP 8.2.22 (cli) (built: Aug 13 2024 02:05:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.22, Copyright (c) Zend Technologies
お〜
画面を見てみる
code:log
Deprecated: Return type of Illuminate\Container\Container::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #\ReturnTypeWillChange attribute should be used to temporarily suppress the notice in /var/www/laravel_kirthread/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 1232 https://scrapbox.io/files/66c7430c52627a001d4a050c.png
エラー並びまくり
composer updateをかける
code:sh
root@81ffd2a2836d:/var/www/laravel_kirthread# composer update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laravel/ui 1.2.0 -> satisfiable by laravel/uiv1.2.0. - laravel/ui v1.2.0 requires php ^7.1.3 -> your php version (8.2.22) does not satisfy that requirement.
PHP8.2に対応したパッケージをそれぞれ指定する必要がある。次のステップ
composer.jsonの調整
※ほぼほぼ、composer.jsonの調整 = Laravelのバージョンアップである
"laravel/framework": "^6.20",とかを変えるから。
とてもいい資料
基本的に、1verずつ上げていく(5->6->7->8->...)
公式アップグレードガイド
などなど
やり方
上でphp8.2のコンテナにしたけど、戻す必要があるかも
php7.4の状態でlaravel7, 8に上げて
その後php8にして
laravel9, 10に上げる流れが好ましい。
と言うわけでコンテナを戻す FROM php:7.4-fpm
やる!
Laravel6 > 7
php7.4でlaravel6を立ち上げた
依存パッケージのバージョンを指定のものに変更しておく。
composer updateでエラー
code:txt
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255
変更しないといけないファイルがある
app/Exceptions/Handler.php が今回修正対象となっていまして、 最初にこれを上記のように修正しないとartisanコマンドが動作しません。
元コードの通りに修正する
これで再びcomposer updateをかけると治った。
code:sh
root@12c3c1ec9549:/var/www/laravel_kirthread# php artisan --version
Laravel Framework 7.30.6
お〜
laravel7 > 8
同じく依存パッケージのバージョンを指定したものに。
code:sh
root@12c3c1ec9549:/var/www/laravel_kirthread# composer update
...
root@12c3c1ec9549:/var/www/laravel_kirthread# php artisan --version
Laravel Framework 8.83.27
お〜
PHP7.4 > 8.2
FROM php:8.2-fpmにして再ビルド
code:sh
root@ff41111aed34:/var/www/laravel_kirthread# php artisan --version
Laravel Framework 8.83.27
root@ff41111aed34:/var/www/laravel_kirthread# php -v
PHP 8.2.22 (cli) (built: Aug 13 2024 02:05:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.22, Copyright (c) Zend Technologies
おー
laravel8 > 9
指定のバージョンにする
fideloper/proxyはcomposer.jsonから消した
"laravel/ui": "3.0"を"laravel/ui": "^3.0"にした(^をつけた)
ファイルを一部変更
composer updateでエラー
code:txt
root@ff41111aed34:/var/www/laravel_kirthread# composer update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install laravel/framework v9.0.0-beta.1 (conflict analysis result)
...
- Only one of these can be installed: illuminate/supportv5.5.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev, v9.0.0-beta.1, ..., 9.x-dev, v10.0.0, ..., 10.x-dev, v11.0.0, ..., 11.x-dev, laravel/frameworkv9.0.0-beta.1, ..., 9.x-dev. laravel/framework replaces illuminate/support and thus cannot coexist with it. - Root composer.json requires facade/ignition ^2.3.6 -> satisfiable by facade/ignition2.3.6, ..., 2.17.7. さらに、アプリケーションのcomposer.jsonファイル中の、facade/ignitionを"spatie/laravel-ignition": "^1.0"へ置き換え、(該当する場合は)pusher/pusher-php-serverを"pusher/pusher-php-server": "^5.0"へ置き換えてください。
これか?
ビンゴ
code:sh
composer update
....
root@ff41111aed34:/var/www/laravel_kirthread# php artisan -V
Laravel Framework 9.52.16
おお〜
ちなみにまだかあスレッドのトップページ自体は見れている
laravel9 > 10
composerが2.0以上である必要がある。
code:sh
root@ff41111aed34:/var/www/laravel_kirthread# composer -v
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.7.8 2024-08-22 15:28:36
大丈夫でしょう
参考ブログには記載なかったがガイドに記載があったので、"minimum-stability": "stable",をjsonに書いた
code:sh
root@ff41111aed34:/var/www/laravel_kirthread# php artisan --version
Laravel Framework 10.48.20
おおお〜
laravel10 > 11
上げちゃうか
code:sh
composer update
root@ff41111aed34:/var/www/laravel_kirthread# php artisan --version
Laravel Framework 11.21.0
おおおお
機能の動作確認
投稿
投稿
youtube投稿
画像投稿
削除
リアクション付与
設定
設定
プロフ変更
画像変更
ログイン
ログアウト
新規登録
かあスレッドとは
ゲーム
csvエクスポート
多分いけてら
AWSにアプリを配置してみたい
EC2インスタンス内部のことをあれこれした