Laravel Sail是使用Docker的Laravel的开发环境,主要依赖于项目根源的“ .env”文件中定义的环境变量。这些环境变量配置了应用程序及其服务,使容器的无缝编排和适合本地开发的设置调整。
Laravel帆中使用的常见环境变量可以根据其目的进行分组:应用程序配置,数据库配置,服务端口和绑定,容器用户设置以及特定于帆的自定义。
###应用程序配置变量
- `app_name`:定义Laravel应用程序的名称。
- `app_env`:设置环境类型,通常是``local''sail。
- `app_key`:Laravel用于加密和会话安全性使用的基本64编码的加密密钥。
- `app_debug`:一个布尔标志,用于启用详细的错误消息和调试功能(true`或`false')。
- `app_url`:在本地可访问该应用程序的URL,通常设置为http:// localhost`。
###数据库连接变量
为了策划数据库容器(``MySQL`服务),SAIL使用定义与MySQL数据库容器连接的变量:
- “ db_connection”:指示数据库驱动程序,通常为``mysql''。
- “ DB_HOST”:数据库服务器的主机名,通常是MySQL容器的名称,例如`mysql'。
- `db_port`:MySQL连接的默认端口,通常是`3306`。
- “ db_database”:在容器内使用的数据库的名称。
- “ db_username”:访问数据库的用户名。
- “ DB_Password”:数据库用户的密码。
redis配置
帆可选支持REDIS用于缓存或会话处理。这些变量配置了redis连接:
- “ redis_host”:redis服务器的主机名,通常是`redis'匹配redis容器。
- `redis_password`:redis的密码(如果有)。
- `redis_port`:port redis onsens on lock on,通常是``6379`。
###服务端口转发变量
为了避免与已在主机系统上的通用端口上运行的服务发生冲突,SAIL允许自定义其服务的转发端口:
- “ forward_db_port`:在容器中转发到MySQL的标准端口3306的本地机器端口(例如,如果占用端口3306,则可以设置此)。
- `forward_redis_port`:转发到redis默认端口6379的本地端口。
- `forward_mailhog_port`:转发到MailHog服务端口的本地端口,通常用于电子邮件测试。
- 其他`forward_*
`'''如果配置了PHPMYADMIN或其他帆服务等服务的变量。
###容器用户和权限变量
使用与本地主机用户匹配的用户帆运行容器,以确保主机和容器之间的文件权限保持一致。这些变量控制用户ID:
- “ wwwuser”:在容器内部设置对应于主机计算机的用户ID的用户ID,以确保文件权限匹配。
- `wwwgroup`:在容器内部设置组ID以匹配主机。
###帆定制变量
- “ app_service”:允许更改`docker-compose.yml`''中的主要laravel应用程序服务容器名称。这对于高级配置可能很有用。
- `sail_files`:允许您指定其他Docker撰写与标准帆文件一起加载的覆盖文件。这是用于自定义或扩展帆环境。
- `suppsor_php_command`:用于自定义主拉维尔帆容器内的PHP启动命令,在整合诸如Laravel Octane之类的工具时很有用。
- `suppsor_php_user`:设置在容器内部的“主管”过程中运行PHP的用户。
###邮件服务变量
Laravel Sail带有一个MailHog容器,用于捕获开发过程中发送的电子邮件。这些变量配置邮件设置:
- “ mail_mailer”:设置为`smtp`或其他邮件驱动程序。
- “ mail_host”:邮件服务器的主机名,通常是``mailhog''。
- `mail_port`:用于SMTP的端口,通常是mailhog的1025`。
-`Mail_username`和`Mail_password`:如果需要(通常在开发中留空)。
###排队和缓存驱动程序
SAIL的默认值`.env`可以设置这些:
- “ queue_connection”:定义队列驱动程序,例如`sync',`database'或`redis''。
- “ cache_driver”:确定缓存驱动程序,通常是``文件''或`redis'。
###其他服务环境变量
- `xdebug_config`:通过帆自动配置与xdebug一起调试,通常为Mac和Windows设置`client_host = host.docker.internal`。
- “ puid”和“ pgid”:偶尔在自定义帆配置中看到,以明确设置用户和用户访问匹配的组ID。
###环境摘要在帆中可变角色
这些环境变量(主要在.env'文件中定义)用于:
- 配置Laravel应用程序基础知识(名称,环境,调试模式,URL)。
- 将Laravel应用程序容器连接到Docker内部的数据库和缓存服务。
- 从容器到主机机器的映射端口,避免了本地端口冲突。
- 确保主机和容器系统之间的适当用户和组权限。
- 自定义Laravel帆环境容器和流程以进行高级使用。
`.env`文件环境变量直接控制SAIL的“ Docker-compose.yml”中定义的容器的行为和`sail_files'指示的任何扩展的组合文件。调整这些变量并重新启动帆(使用命令,例如`./vendor/bin/sail down`和`./vendor/bin/sail up -d`)应用了配置更改。
这种设置允许Laravel Sail使用Docker提供一个孤立但可配置的本地开发环境,并在实用的同时,在维持开发人员的便利性和灵活性的同时,都可以反映生产行为。