Laravel是一个强大的PHP框架,提供了开发现代Web应用程序所需的一切工具和功能。本教程将一步步引导完成Laravel的安装过程,确保你的开发环境搭建正确。
一、安装Laravel项目
在创建第一个Laravel项目之前,请确保本地机器已安装PHP和Composer。如果在macOS或Windows上开发,可以通过LaravelHerd在几分钟内安装PHP和Composer。推荐安装Node和NPM。
在安装了PHP和Composer之后,可以通过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
项目创建后,使用Laravel Artisan的serve命令启动Laravel的本地开发服务器:
cd example-app php artisan serve
启动Artisan开发服务器后,应用程序将在Web浏览器中通过http://localhost:8000访问。接下来,已准备好开始进入Laravel生态系统的下一步。
二、Laravel初始配置
Laravel框架的所有配置文件都存储在config目录中。每个选项都有文档说明,因此请随时浏览文件,并熟悉可用的选项。
Laravel出箱即用几乎不需要额外配置。可以自由地开始开发!然而,可能希望查看config/app.php文件及其文档。它包含了几个选项,如timezone和locale,可能希望根据应用程序进行更改。
1、基于环境的配置
由于Laravel的许多重要配置值可能会根据应用程序是在本地机器上运行还是在生产Web服务器上运行而有所不同,因此许多重要的配置值是使用位于应用程序根目录的.env文件定义的。
.env文件不应该提交到应用程序的源代码控制中,因为使用应用程序的每个开发者/服务器可能需要不同的环境配置。此外,如果入侵者访问到源代码库,这将是一个安全风险,因为任何敏感凭据都会被暴露。
2、数据库和迁移
现在已经创建了Laravel应用程序,可能想要在数据库中存储一些数据。默认情况下,应用程序的.env配置文件指定Laravel将与SQLite数据库进行交互。
在项目创建期间,Laravel为创建了一个database/database.sqlite文件,并运行了必要的迁移来创建应用程序的数据库表。
如果更喜欢使用另一种数据库驱动程序,如MySQL或PostgreSQL,可以更新.env配置文件以使用适当的数据库。例如,如果希望使用MySQL,请更新.env配置文件的DB_*变量,如下所示:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
如果选择使用SQLite以外的数据库,将需要创建数据库并运行应用程序的数据库迁移:
php artisan migrate
注意:如果在macOS上开发并需要在本地安装MySQL、PostgreSQL或Redis,请考虑使用DBngin。
3、目录配置
Laravel应该始终从为Web服务器配置的“Web目录”的根目录中提供服务。不应尝试从“Web目录”的子目录中提供Laravel应用程序。尝试这样做可能会暴露应用程序中存在的敏感文件。
三、使用Sail进行Docker安装
有多种选项可用于在本地机器上开发和运行Laravel项目。虽然可能希望稍后探索这些选项,但Laravel提供了Sail,一个内置的解决方案,用于使用Docker运行Laravel项目。
Docker是一个在小型、轻量级“容器”中运行应用程序和服务的工具,这些容器不会干扰本地机器上安装的软件或配置。这意味着不必担心在本地机器上配置或设置复杂的开发工具,如Web服务器和数据库。要开始,只需要安装DockerDesktop。
LaravelSail是一个轻量级的命令行界面,用于与Laravel的默认Docker配置进行交互。Sail为使用PHP、MySQL和Redis构建Laravel应用程序提供了一个很好的起点,无需Docker经验。
1、macOS
如果在Mac上开发并且已经安装了DockerDesktop,可以使用一个简单的终端命令创建一个新的Laravel项目。例如,要在名为”example-app”的目录中创建一个新的Laravel应用程序,可以在终端中运行以下命令:
url -s "https://laravel.build/example-app" | bash
可以根据需要更改此URL中的”example-app”-只需确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel应用程序的目录将在执行命令的目录中创建。
Sail安装可能需要几分钟,因为Sail的应用程序容器正在本地机器上构建。
项目创建后,可以导航到应用程序目录并启动LaravelSail。LaravelSail提供了一个简单的命令行界面,用于与Laravel的默认Docker配置进行交互:
cd example-app ./vendor/bin/sail up
应用程序的Docker容器启动后,应该运行应用程序的数据库迁移:
./vendor/bin/sail artisan migrate
最后,可以在Web浏览器中通过:http://localhost访问应用程序。
2、Windows
在Windows机器上创建新的Laravel应用程序之前,请确保安装了DockerDesktop。接下来,应确保已安装并启用Windows子系统forLinux2(WSL2)。WSL允许在Windows10上本地运行Linux二进制可执行文件。
注意:安装并启用WSL2后,应确保DockerDesktop配置为使用WSL2后端。
接下来,已准备好创建第一个Laravel项目。启动Windows终端并为WSL2Linux操作系统开始一个新的终端会话。接下来,可以使用一个简单的终端命令创建一个新的Laravel项目。例如,要在名为”example-app”的目录中创建一个新的Laravel应用程序,可以在终端中运行以下命令:
curl -s https://laravel.build/example-app | bash
当然,可以根据需要更改此URL中的”example-app”-只需确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel应用程序的目录将在执行命令的目录中创建。
Sail安装可能需要几分钟,因为Sail的应用程序容器正在本地机器上构建。
项目创建后,可以导航到应用程序目录并启动LaravelSail。LaravelSail提供了一个简单的命令行界面,用于与Laravel的默认Docker配置进行交互:
cd example-app ./vendor/bin/sail up
应用程序的Docker容器启动后,应该运行应用程序的数据库迁移:
./vendor/bin/sail artisan migrate
最后,可以在Web浏览器中通过:http://localhost访问应用程序。
3、WSL2
当然,需要能够修改在WSL2安装中创建的Laravel应用程序文件。为此,我们推荐使用Microsoft的VisualStudioCode编辑器和他们的第一方RemoteDevelopment扩展。
安装这些工具后,可以通过在Windows终端中执行code.命令从应用程序的根目录打开任何Laravel项目。
4、Linux
如果在Linux上开发并且已经安装了DockerCompose,可以使用一个简单的终端命令创建一个新的Laravel项目。
首先,如果使用的是DockerDesktopforLinux,应执行以下命令。如果没有使用DockerDesktopforLinux,可以跳过此步骤:
docker context use default
然后,要在名为”example-app”的目录中创建一个新的Laravel应用程序,可以在终端中运行以下命令:
curl -s https://laravel.build/example-app | bash
当然,可以根据需要更改此URL中的”example-app”-只需确保应用程序名称仅包含字母数字字符、破折号和下划线。Laravel应用程序的目录将在执行命令的目录中创建。
Sail安装可能需要几分钟,因为Sail的应用程序容器正在本地机器上构建。
项目创建后,可以导航到应用程序目录并启动LaravelSail。LaravelSail提供了一个简单的命令行界面,用于与Laravel的默认Docker配置进行交互:
cd example-app ./vendor/bin/sail up
应用程序的Docker容器启动后,应该运行应用程序的数据库迁移:
./vendor/bin/sail artisan migrate
最后,可以在Web浏览器中通过:http://localhost访问应用程序。
5、选择Sail服务
通过Sail创建新的Laravel应用程序时,可以使用with查询字符串变量来选择哪些服务应该在新应用程序的docker-compose.yml文件中配置。可用的服务包括mysql、pgsql、mariadb、redis、memcached、meilisearch、typesense、minio、selenium和mailpit:
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
如果没有指定希望配置哪些服务,将会配置默认的服务栈,包括mysql、redis、meilisearch、mailpit和selenium。
可以通过在URL中添加devcontainer参数,指示Sail安装默认的Devcontainer:
curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash
四、IDE支持
可以自由选择任何代码编辑器来开发Laravel应用程序;然而,PhpStorm为Laravel及其生态系统提供了广泛的支持,包括LaravelPint。
此外,社区维护的LaravelIdeaPhpStorm插件提供了各种有用的IDE增强功能,包括代码生成、Eloquent语法完成、验证规则完成等。
如果希望在构建应用程序时获得一个良好的开端,请查看我们官方的应用程序启动套件之一。
五、Laravel API后端
Laravel也可以作为JavaScript单页应用程序或移动应用程序的API后端服务。例如,可能会将Laravel用作Next.js应用程序的API后端。在这种情况下,可以使用Laravel提供认证和数据存储/检索,同时还可以利用Laravel的强大服务,如队列、电子邮件、通知等。