- 1. 概要
- 2. アップグレード
1. 概要
正に、お勉強中に、別のプロジェクトを作成しようとしたら
$ composer create-project laravel/laravel sample --prefer-dist
Creating a "laravel/laravel" project at "./sample"
Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2.0 is now available and you should upgrade. See https://getcomposer.org/2
てなことになっちゃったのだ。
元々のインストール先の環境は、下記のとおりでありましたが
項目 | バージョン等 | 備考 |
プラットフォーム | FreeBSD 12.2 RELEASE | |
PHP | php72-7.2.34 | |
データベース | postgresql96-server-9.6.19 | |
「PHP 7.2」を「PHP 7.4」へあげることになりました。
本体のアップグレードに関しては、「メンテナンス・トラブルシュート - PHP - PHP 7.2 → 7.4」をご参照ください。
「composer」による、モジュールのアップグレードに関しては、下記のサイトを参考にさせていただきました。
「PHP: Laravel 7へのアップグレードを試した|...|BPS株式会社」
2. アップグレード
この時点で
$ php --version
PHP 7.4.14 (cli) (built: Jan 18 2021 14:53:57) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.14, Copyright (c), by Zend Technologies
てなことに、なっちょります。
プロジェクトのルートをカレントディレクトリとして
vi composer.json
"license": "MIT",
"require": {
"php": "^7.2.5|^8.0",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^6.3.1|^7.0.1",
"laravel/framework": "^7.29",
"laravel/tinker": "^2.5"
},
11行目を
"php": "^7.4.14|^8.0",
って、書き換えるんじゃろか?
書き換えて。
composer update
一度、エラーになって「/usr/ports/sysutils/php74-fileinfo」をインストールしました。
二度目
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 21 updates, 2 removals
- Removing scrivo/highlight.php (v9.18.1.6)
- Removing phpunit/php-token-stream (3.1.2)
・・・ 略 ・・・
- Updating phpunit/php-code-coverage (7.0.14 => 9.2.5): Downloading (100%)
- Updating phpunit/phpunit (8.5.13 => 9.5.1): Downloading (100%)
phpunit/php-invoker suggests installing ext-pcntl (*)
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Exception
The /usr/local/www/laravel/bootstrap/cache directory must be present and writable.
at vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php:177
173| */
174| protected function write(array $manifest)
175| {
176| if (! is_writable($dirname = dirname($this->manifestPath))) {
> 177| throw new Exception("The {$dirname} directory must be present and writable.");
178| }
179|
180| $this->files->replace(
181| $this->manifestPath, '<?php return '.var_export($manifest, true).';'
+15 vendor frames
16 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
つうことで、いったん「root」ユーザで。
chown -R hogehoge:hogehoge /usr/local/www/laravel/bootstrap/cache
(「hogehoge」は、ログインユーザのグループ・ユーザ名)
ログインユーザに戻って、三度目。
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
72 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
やっと、うまいこといったようです。
再度、「root」ユーザで
chown -R www:www /usr/local/www/laravel/bootstrap/cache
|