Laravelで古いバージョンを指定してプロジェクトを作成した時のメモです。
実行環境
- Mac
- Dockerにcomposerがインストール済
FROM php:7.4-apache
RUN apt update \
&& apt install -y \
g++ \
libicu-dev \
libpq-dev \
libzip-dev \
zip \
zlib1g-dev \
&& docker-php-ext-install \
intl \
opcache \
pdo_mysql \
mysqli \
&& docker-php-ext-enable mysqli \
&& a2enmod rewrite
# Xdebugのインストール
RUN pecl install xdebug-2.9.8 \
&& docker-php-ext-enable xdebug
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerバージョンを指定してLaravelのプロジェクトを作る方法
Docker環境なので、次のコマンドでコンテナに入ります。「php-apache」はコンテナ名で、このコマンドによりphp-apacheコンテナでCLIが開きます。
docker-compose exec php-apache /bin/bashプロジェクトを作成するディレクトリに移動し、Laravelのプロジェクトを作成します。6.0系のバージョンで「laravelapp」というプロジェクトを次のコマンドで作成しました。
composer create-project "laravel/laravel=6.*" laravelapp --prefer-distプロジェクト作成後にバージョンを確認する
上のコマンド実行後にバージョンを確認してみました。プロジェクトのディレクトリに移動し、コマンドでバージョンを確認します。
cd laravelapp
php artisan -v「Laravel Framework 6.20.44」と表示されました!(2022年9月現在)
ちゃんと6.0系のプロジェクトが作れていますね。
Laravel6はPHP8ではエラーとなる
上のプロジェクトはPHP7.4.30の環境で作りました。
はじめはPHP8で試したのですが、プロジェクト作成のcomposer create-projectコマンド実行でエラーが発生しました。
In Collection.php line 11:
During inheritance of ArrayAccess: Uncaught ErrorException: Return type of Illuminate\Support\Collectio
n::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
/html/laravelapp/vendor/laravel/framework/src/Illuminate/Support/Collection.php:1277
Stack trace:
#0 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Support/Collection.php(11): Illumin
ate\Foundation\Bootstrap\HandleExceptions->handleError(8192, 'Return type of ...', '/var/www/html/l...'
, 1277)
#1 /var/www/html/laravelapp/vendor/composer/ClassLoader.php(571): include('/var/www/html/l...')
#2 /var/www/html/laravelapp/vendor/composer/ClassLoader.php(428): Composer\Autoload\includeFile('/var/w
ww/html/l...')
#3 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Support/helpers.php(109): Composer\
Autoload\ClassLoader->loadClass('Illuminate\\Supp...')
#4 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(130)
: collect(Array)
#5 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(106)
: Illuminate\Foundation\PackageManifest->build()
#6 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(89):
Illuminate\Foundation\PackageManifest->getManifest()
#7 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(78):
Illuminate\Foundation\PackageManifest->config('aliases')
#8 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacade
s.php(26): Illuminate\Foundation\PackageManifest->aliases()
#9 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(219): Il
luminate\Foundation\Bootstrap\RegisterFacades->bootstrap(Object(Illuminate\Foundation\Application))
#10 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(320)
: Illuminate\Foundation\Application->bootstrapWith(Array)
#11 /var/www/html/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(129)
: Illuminate\Foundation\Console\Kernel->bootstrap()
#12 /var/www/html/laravelapp/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\C
omponent\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 {main}
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255エラーをメモとして、残しておきます。



最近のコメント