theme: cyanosis highlight: a11y-dark
Laravel 11 在 Laravel 10.x 基础上进一步改进,引入了简化的应用程序结构、每秒速率限制、健康路由、优雅的加密密钥轮换、队列测试改进、Resend 邮件传输、Prompt 验证器集成、新的 Artisan 命令等。此外,Laravel Reverb,一个官方的可扩展 WebSocket 服务器,已被引入,为您的应用程序提供强大的实时功能。
官方文档:Installation - Laravel 11.x - The PHP Framework For Web Artisans
1. 创建 Laravel 项目
在创建您的第一个 Laravel 项目之前,请确保您的本地机器已安装 PHP 和 Composer。
1.1 环境
PHP 8.2
Laravel 11.x 要求最低 PHP 版本为 8.2。
Composer
1.2 创建
创建之前检查一下php.ini
有没有打开以下扩展,如果没有请删除前面的;
符号
extension=openssl
extension=php_pdo_mysql.dll (pdo_mysql)
extension=mbstring
extension=zip
extension_dir = "ext"
extension=pdo_pgsql
extension=curl
运行以下命令检查是否加载了openssl扩展:
php -m | findstr openssl
如果没有 php .ini 将php.ini-production或 php.ini-development任选一个改为php .ini
使用php -m
命令检查是否已经开启:
bcmath
ctype
json
tokenizer
xml
在安装环境之后,您可以通过 Composer 的 create-project
命令创建一个新的 Laravel 项目:
composer create-project laravel/laravel:^11.0 example-app
或者,您可以通过 Composer 全局安装 Laravel 安装程序,来创建新的 Laravel 项目:
composer global require laravel/installer
laravel new example-app
1.3 下载依赖
项目创建后,进入项目文件夹,下载依赖
cd example-app
composer install
解决下载慢问题,在php.ini中开启
extension=curl
修改为镜像为国内源
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如果报错执行出现 Your requirements could not be resolved to an installable set of packages.代码是由版本不对造成的, 首先要检查版本格式是否写正确。
检查版本
composer -v
如果不是最新版,执行下载
composer self-update
检查php
php -v
如果版本没有问题,执行忽略版本
composer install --ignore-platform-req=ext-fileinfo
或者
composer update --ignore-platform-req=ext-fileinfo
Laravel 11 使用 SQLite 作为默认的 SQL 数据库引擎。Laravel 项目创建后,SQLite 数据库会自动在数据库文件夹中创建,数据库结构是从迁移文件构建的。
如果不想用SQLite,.env
文件中修改的内容如下:
# 修改时区与语言 APP_TIMEZONE=PRC APP_LOCALE=zh-CN
修改 MySQL 配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=123456
请先创建好相关数据库。
报错,先删掉数据库的已经好的USERS的数据表
然后在app/Providers/AppServiceProvider.php
中添加
use Illuminate\Support\Facades\Schema;
Schema::defaultStringLength(250);
执行安装迁移
php artisan migrate
1.4 启动
使用 Laravel Artisan 的 serve
命令启动 Laravel 的本地开发服务器:
php artisan serve
服务启动后就可以通过 http://127.0.0.1:8000
访问我们的项目了。
2. 问题集合
问题一:无法下载依赖包
解决方法:
手动下载->composer install
问题二:执行出现 Your requirements could not be resolved to an installable set of packages.
解决方法
代码是由版本不对造成的, 首先要用
composer -v
和php -v
检查版本格式是否写正确。正确执行
composer install --ignore-platform-req=ext-fileinfo
问题三 修改.env
文件不起作用
或者是数据库删除清空后重新执行迁移报错
解决方法:
清除缓存
php artisan config:cache
问题四:返回错误信息为“could not driver”
解决方法:
1.检查扩展是否开启 打开php.ini,确认以下两项扩展已去掉注释
extension=php_pdo_pgsql.dll
extension=php_pgsql.dll
2.检查连接信息是否正确
DB_CONNECTION=mysql DB_HOST=127.0.0.1 # 数据库接口 DB_PORT=5432 # 数据库名 DB_DATABASE= # 数据库用户名 DB_USERNAME= # 数据库密码 DB_PASSWORD=
3.检查集成环境下是否有dll文件
问题五:错误信息为 “Error”
class "App\Providers\Schema" not found
解决方法:
app/Providers/AppServiceProvider.php中没有引入相关依赖,引入即可
use Illuminate\Support\Facades\Schema;
问题六:NO application encryption Key has been specifled.
解决方案:
执行生成Key值
php artisan key:generate
问题七:Database file at path [l:.bolg_laravel_adlerian\app_laravel\database\database.sqlite] does not exist. Ensure this is an absolute path to the database.
sqlite没有数据,执行迁移数据命令
这是一个从 https://juejin.cn/post/7369117760460324902 下的原始话题分离的讨论话题