Laravel 11 框架创建与创建遇到的问题【全解析】


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

Adler20240515035024.png

运行以下命令检查是否加载了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 -vphp -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没有数据,执行迁移数据命令


END | 知识共享许可协议转存失败,建议直接上传图片文件

这是一个从 https://juejin.cn/post/7369117760460324902 下的原始话题分离的讨论话题