这本书的封面Symfony 5: tob娱乐下载he Fast Track

ob娱乐下载交响曲5:快车道是学习现代交响乐发展的最佳书籍,从零到生产。ob娱乐下载+300页展示Symfony的Docker,ob娱乐下载 api,队列和异步任务,Webpack, spa等。

ob娱乐下载Symfony本地Web服务器

5.2版本
维护 没有维护的

ob娱乐下载Symfony本地Web服务器

你可以在任何web服务器ob娱乐下载(Apache, nginx, PHP内部web服务器等)上运行Symfony应用程序。然而,Symfonob娱乐下载y提供了自己的web服务器,使您在开发应用程序时更有效率。

尽管该服务器不打算用于生产,但它支持HTTP/2、TLS/SSL、安全证书的自动生成、本地域,以及开发web项目时迟早需要的许多其他特性。此外,该服务器并不与Symfony绑定,您还可以将其用于任何PHP应用程ob娱乐下载序,甚至HTML或单页应用程序。

安装

Symfob娱乐下载ony服务器是ob娱乐下载当您安装Symfonob娱乐下载y支持Linux、macOS和Windows。

请注意

Symfob娱乐下载ony二进制文件是在Symfony内部开发的。如果你想报告一个错误或建议一个新功能,请创建一个问题ob娱乐下载symfony / cli

开始

Symfob娱乐下载ony服务器在每个项目中启动一次,因此您可能会得到几个实例(每个实例侦听一个不同的端口)。以下是服务于Symfony项目的通用工作流:ob娱乐下载

1 2 3 4 5 6 7 8
美元cd我的项目/美元ob娱乐下载symfony服务器:启动[OK] Web服务器正在监听http://127.0.0.1:....#现在,浏览给定的URL,或者运行这个命令:美元ob娱乐下载symfony开放:本地

以这种方式运行服务器将使其在控制台中显示日志消息,因此您将不能同时运行其他命令。如果你愿意,你可以在后台运行Symfony服务器:ob娱乐下载

1 2 3 4 5 6 7 8 9
美元cd我的项目/#在后台启动服务器美元ob娱乐下载symfony服务器:开始- d#继续工作和运行其他命令…#显示最新的日志消息美元ob娱乐下载symfony服务器:日志

使PHP-FPM

请注意

必须在本地安装PHP-FPM,以便Symfony服务器使用。ob娱乐下载

当服务器启动时,它会检查web / index_dev.php,web / index . php,公共/ app_dev.php,公共/ app.php这个顺序。如果找到一个,服务器将自动启动并启用PHP-FPM。否则,服务器将在没有PHP-FPM的情况下启动,并显示一个页面发现当试图访问一个. php文件在浏览器中。

提示

当一个index . html还有一个前控制器,比如。index . php服务器将仍然以启用PHP-FPM启动,但是index . html将优先于前端控制器。这意味着当一个index . html文件存在于公共网络,它将被显示而不是index . php比如Symfony应用程序。ob娱乐下载

支持TLS

在本地浏览应用程序的安全版本对于早期检测混合内容的问题以及运行仅在HTTPS中运行的库非常重要。传统上,这是痛苦和复杂的设置,但Symfony服务器自动化一切。ob娱乐下载首先,运行以下命令:

1
美元ob娱乐下载symfony服务器:ca:安装

该命令创建一个本地证书颁发机构,将其注册到您的系统信任存储库中,并将其注册到Firefox中(仅该浏览器需要),并为本地主机127.0.0.1。换句话说,它为你做了一切。

在使用HTTPS而不是HTTP浏览本地应用程序之前,请停止并重新启动它的服务器。

每个项目不同的PHP设置

选择不同的PHP版本

如果您的计算机上安装了多个PHP版本,您可以告诉Symfony使用哪个版本创建一个名为ob娱乐下载.php-version在项目的根目录:

1 2 3 4 5 6 7
美元cd我的项目/#使用特定的PHP版本美元回声72 > .php-version#使用任何PHP 7。x版本可用美元回声7> .php-version

提示

Symfob娱乐下载ony服务器将遍历目录结构直至根目录,因此您可以创建.php-version文件,为该目录下的一组项目设置相同的PHP版本。

如果你不记得你电脑上安装的所有PHP版本,运行下面的命令:

1 2 3 4 5
美元ob娱乐下载symfony的地方:php:列表#你会看到每个版本支持的所有SAPIs (CGI, FastCGI等)。# FastCGI (php-fpm)在可能的情况下使用;然后是CGI(充当FastCGI最后,服务器退回到普通的CGI。

重写PHP配置选项每个项目

您可以通过创建一个名为php . ini在项目根目录。只添加你想要覆盖的选项:

1 2 3 4 5 6
美元cd我的项目/#这个项目只覆盖默认的PHP时区美元猫php . ini(日期)日期。时区=亚洲/东京

使用不同的PHP版本运行命令

当运行不同的PHP版本时,使用main是很有用的ob娱乐下载命令作为php命令。这允许您总是根据运行命令的项目选择最合适的PHP版本。它还会自动加载env变量,这在运行非symfony命令时很重要:ob娱乐下载

1 2 3 4 5 6
#使用默认的PHP版本运行命令美元php - r“…”#使用项目选择的PHP版本运行命令#(如果项目没有选择默认的PHP版本)美元ob娱乐下载symfony php - r“…”

本地域名

默认情况下,项目可以在某个随机端口访问127.0.0.1当地的IP。然而,有时最好将域名与它们关联:

  • 当你连续地在同一个项目上工作时,它会更方便,因为端口号可以改变,但域不会;
  • 一些应用程序的行为依赖于它们的域/子域;
  • 以拥有稳定的端点,例如OAuth2的本地重定向URL。

设置本地代理

由于Symfony服务器提供了本地代理,所以可以使用本地域。ob娱乐下载如果这是您第一次运行代理,您必须按照以下方式配置代理:

  1. 打开代理设置你的操作系统:
  2. 将下列URL设置为自动代理配置:http://127.0.0.1:7080/proxy.pac

现在运行以下命令启动代理:

1
美元ob娱乐下载symfony代理:开始

请注意

有些浏览器(如Chrome)需要重新应用代理设置(点击重新应用设置按钮chrome: / / net-internals / #代理页)或在启动代理后完全重新启动。否则,你会看到a"此网页不可用"错误(ERR_NAME_NOT_RESOLVED)。

定义本地域

默认情况下,Symfonob娱乐下载y提议.wip(进行中的工作)的本地域。您可以为项目定义一个本地域,如下所示:

1 2
美元cd我的项目/美元ob娱乐下载symfony代理:域:附上我的域

如果您已经安装了上一节中解释的本地代理,那么现在可以浏览了https://my-domain.wip以使用新的自定义域访问本地项目。

提示

浏览http://127.0.0.1:7080URL获取本地项目目录、它们的自定义域和端口号的完整列表。

在运行控制台命令时,添加https_proxyenv var使自定义域工作:

1
美元https_proxy=http://127.0.0.1:7080 curl https://my-domain.wip

请注意

尽管env变量名总是用大写定义,但https_proxyenv var是区别对待与其他env变量不同,其名称必须小写。

提示

如果您更喜欢使用不同的TLD,请编辑~ /ob娱乐下载 .symfony / proxy.json文件(~表示到用户目录的路径),并更改的值tld选择从在制品数量任何其他顶级域名。

长时间运行的命令

长时间运行的命令,比如编译前端web资产的命令,会阻塞终端,你不能同时运行其他命令。Symfob娱乐下载ony服务器提供了一个运行命令包装如下:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#使用Symfony Encore编译Webpack资产…ob娱乐下载但是在# background不阻止终端美元ob娱乐下载symfony run -d yarn encore dev——watch#继续工作和运行其他命令…如果需要的话,可以不时查看命令日志美元ob娱乐下载symfony服务器:日志#并且您还可以检查该命令是否仍在运行美元ob娱乐下载symfony服务器:状态Web服务器监听…命令“yarn…”运行PID…结束时停止web服务器(以及所有相关的命令)美元ob娱乐下载symfony服务器:停止

码头工人集成

本地Symfony服ob娱乐下载务器提供full功能码头工人用于使用它的项目的集成。

当web服务器检测到Docker Compose正在为项目运行时,它会自动公开一些环境变量。

通过docker-composeAPI,它寻找用于公共服务的公开端口。当它检测到一个它知道的变量时,它使用服务名称来公开环境变量。

考虑以下配置:

1 2 3 4
# docker-compose.yaml服务:数据库:港口:(3306]

web服务器检测到服务公开端口3306正在运行这个项目。它理解这是一个MySQL服务,并创建相应的环境变量与服务名(数据库)作为前缀:DATABASE_URL,DATABASE_HOST,…

如果服务不在下面支持的列表中,则设置通用环境变量:港口,知识产权,宿主

如果docker-compose.yaml名称不匹配Symfony的约定,添加一ob娱乐下载个标签覆盖环境变量前缀:

1 2 3 4 5 6
# docker-compose.yaml服务:db:港口:(3306]标签:com.ob娱乐下载symfony.server.service-prefix:“数据库”

在这个例子中,服务被命名db,因此环境变量的前缀为DB_,但作为com.ob娱乐下载symfony.server.service-prefix被设置为数据库, web服务器创建的环境变量从DATABASE_相反,按照默认的Symfony配置。ob娱乐下载

您不需要为主数据库和测试数据库创建两个容器。使用APP_ENV =测试ob娱乐下载会自动调整DATABASE_ *的环境变量测试环境:

1 2 3 4 5 6 7 8 9
美元ob娱乐下载symfony var:出口——多行出口DATABASE_DATABASE =应用出口DATABASE_NAME =应用出口DATABASE_URL = postgres: / /程序:(电子邮件保护): 49160 /应用程序吗?sslmode = disable&charset = utf8美元APP_ENV=测试ob娱乐下载symfony var:出口——多行出口DATABASE_DATABASE = app_test出口DATABASE_NAME = app_test出口DATABASE_URL = postgres: / /程序:(电子邮件保护): 49160 / app_test吗?sslmode = disable&charset = utf8

以下是支持的服务及其端口和默认Symfony前缀列表:ob娱乐下载

服务 港口 ob娱乐下载Symfony默认前缀
MySQL 3306 DATABASE_
PostgreSQL 5432 DATABASE_
复述, 6379 REDIS_
Memcached 11211 MEMCACHED_
RabbitMQ 5672 RABBITMQ_(设置用户并通过DockerRABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASSenv var)
Elasticsearch 9200 ELASTICSEARCH_
MongoDB 27017 MONGODB_(通过Docker设置数据库MONGO_DATABASEenv var)
卡夫卡 9092 KAFKA_
MailCatcher 1025/1080或25/80 MAILER_
黑焰 8707 BLACKFIRE_

您可以为公开它们的服务打开web管理接口:

1 2
$ ob娱乐下载symfony open:local:webmail $ symfony open:local:rabbitmq

或者单击web调试工具栏“Server”部分中的链接。

提示

要调试并列出所有导出的环境变量,请运行ob娱乐下载var:出口

提示

对于某些服务,web服务器还公开与服务相关的CLI工具可以理解的环境变量。例如,跑步ob娱乐下载运行psql将自动连接到运行在容器中的PostgreSQL服务器,而不需要指定用户名、密码或数据库名。

当Docker服务运行时,浏览Symfony应用程序的页面,在web调试工具栏中检查“Symfony服务器”部分ob娱乐下载;你会看到Docker Compose是Up。

请注意

如果不希望为服务公开环境变量,则设置com.ob娱乐下载symfony.server.service-ignore标签真正的:

1 2 3 4 5 6
# docker-compose.yaml服务:db:港口:(3306]标签:com.ob娱乐下载symfony.server.service-ignore:真正的

如果你的Docker撰写文件不在项目的根目录下,请使用COMPOSE_FILECOMPOSE_PROJECT_NAME环境变量来定义其位置,与for相同docker-compose:

1 2 3 4 5
#启动你的容器:COMPOSE_FILE=码头工人/ docker-compose.yamlCOMPOSE_PROJECT_NAME=project_name docker- composition -d#运行Symfonyob娱乐下载 CLI命令:COMPOSE_FILE=码头工人/ docker-compose.yamlCOMPOSE_PROJECT_NAME=project_name ob娱乐下载symfony var:出口

请注意

如果你有多个Docker组成文件,你可以用:正如在Docker compose CLI env var reference

谨慎

使用Symfony二进制文件时ob娱乐下载phpbin /控制台(ob娱乐下载控制台),二进制将总是使用Docker检测到的环境变量,忽略本地环境变量。例如,如果您在您的.env.test文件(DATABASE_URL = mysql: / / db_user: db_password@127.0.0.1:3306 /测试)如果你跑ob娱乐下载控制台原则:数据库:下降——力——env =测试,该命令将删除在Docker配置中定义的数据库,而不是“测试”数据库。

ob娱乐下载Sob直播appymfonyCloud集成

本地Symfony服ob娱乐下载务器提供了完整但可选的与ob娱乐下载Sob直播appymfonyCloud,一个优化的服务,可以在云上运行Symfony应用程序。ob娱乐下载ob直播app它提供了创建环境、备份/快照、甚至从本地机器访问生产数据副本等功能,以帮助调试任何问题。

阅读Symob娱乐下载fob直播apponyCloud技术文档

该工作,包括代码示例,根据a根据sa 3.0的知识共享许可证。