欧宝娱乐app下载地址Symfony本地Web服务器

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.4,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

欧宝娱乐app下载地址Symfony本地Web服务器

您可以在任何web服务器欧宝娱乐app下载地址(Apache, nginx,内部PHP web服务器等)上运行Symfony应用程序。但是,Symfon欧宝娱乐app下载地址y提供了自己的web服务器,使您在开发应用程序时更加高效。

虽然这个服务器不是为生产使用而设计的,但它支持HTTP/2、TLS/SSL、自动生成安全证书、本地域和许多其他功能,这些功能在开发web项目时迟早会用到。此外,服务器没有绑定到Symfony,您还可以将它用于任何PHP应用程序欧宝娱乐app下载地址,甚至HTML/SPA(单页应用程序)。

安装

Symf欧宝娱乐app下载地址ony服务器是免费的可安装二进制文件,支持Linux、macOS和Windows。去OB体育 并按照操作系统的说明操作。

请注意

如果您想报告一个错误或建议一个新功能,请创建一个问题欧宝娱乐app下载地址symfony / cli

开始

Symf欧宝娱乐app下载地址ony服务器在每个项目中启动一次,因此最终可能会有几个实例(每个实例侦听不同的端口)。这是服务于Symfony项目的通用工作流:欧宝娱乐app下载地址

1 2 3 4 5 6 7 8
cd我的项目/欧宝娱乐app下载地址symfony server:start [OK] Web服务器监听http://127.0.0.1:.... ...#现在,浏览给定的URL,或运行以下命令:欧宝娱乐app下载地址symfony开放:当地的

以这种方式运行服务器将使其在控制台中显示日志消息,因此您将无法同时运行其他命令。如果你喜欢,你可以在后台运行Symfony服务器:欧宝娱乐app下载地址

1 2 3 4 5 6 7 8 9
cd我的项目/#在后台启动服务器欧宝娱乐app下载地址Symfony服务器:start -d#继续工作并运行其他命令…#显示最新的日志信息欧宝娱乐app下载地址symfony服务器:日志

使PHP-FPM

请注意

PHP-FPM必须安装在本地以便Symfony服务器使用。欧宝娱乐app下载地址

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

提示

当一个index . html还有一个前端控制器,比如。index . php都存在,服务器仍将启动PHP-FPM,但index . html将优先于前置控制器。这意味着当index . html文件显示在公共网络时,将显示该选项,而不是index . php这将显示例如Symfony应用程序。欧宝娱乐app下载地址

支持TLS

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

1
欧宝娱乐app下载地址symfony服务器:ca:安装

这个命令创建一个本地证书颁发机构,在您的系统信任存储区中注册它,在Firefox中注册它(这仅对该浏览器是必需的),并为本地主机而且127.0.0.1.换句话说,它为你做了一切。

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

不同的PHP设置每个项目

选择不同的PHP版本

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

1 2 3 4 5 6 7
cd我的项目/#使用特定的PHP版本回声7.2 > .php版本#使用任何PHP可用X版本回声7 > .php版本

提示

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

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

1 2 3 4 5
欧宝娱乐app下载地址当地的php:列表#您将看到每个版本支持的所有SAPIs (CGI, FastCGI等)。尽可能使用# FastCGI (php-fpm);然后是CGI(作为FastCGI# server as well),最后,服务器返回到普通的CGI。

覆盖每个项目的PHP配置选项

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

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

使用不同PHP版本运行命令

当运行不同的PHP版本时,使用main是很有用的欧宝娱乐app下载地址类的包装器php命令。这允许您始终根据运行命令的项目选择最合适的PHP版本。它还自动加载env变量,这在运行非symfony命令时很重要:欧宝娱乐app下载地址

1 2 3 4 5 6
#使用默认的PHP版本运行该命令php - r“…”#使用项目选择的PHP版本运行该命令#(如果项目没有选择默认的PHP版本)欧宝娱乐app下载地址Symfony PHP -r“…”

本地域名

默认情况下,项目可以在127.0.0.1当地的IP。然而,有时最好将域名与它们关联起来:

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

设置本地代理

多亏了Symfony服务器提供的本地代理,才有了本地域。欧宝娱乐app下载地址如果这是第一次运行代理,则必须按如下方式进行配置:

  1. 打开代理设置您的操作系统:

  2. 的值设置如下URL自动代理配置http://127.0.0.1:7080/proxy.pac

现在运行这个命令来启动代理:

1
欧宝娱乐app下载地址symfony代理:开始

请注意

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

定义本域

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

1 2
cd我的项目/欧宝娱乐app下载地址Symfony proxy:domain:attach my-domain

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

提示

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

执行控制台命令时,需要添加https_proxyEnv变量使自定义域工作:

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

请注意

虽然env变量名称总是用大写字母定义,但是https_proxyenv var被区别对待比其他env vars和它的名字必须拼写小写。

提示

如果您希望使用不同的TLD,请编辑~ /欧宝娱乐app下载地址 .symfony / proxy.json文件(的路径),并更改tld选择从在制品数量到任何其他顶级域名。

长时间运行的命令

长时间运行的命令,例如编译前端web资产的命令,会阻塞终端,并且您不能同时运行其他命令。Symf欧宝娱乐app下载地址ony服务器提供了一个运行命令对它们进行包装,如下所示:

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

码头工人集成

本地Symfony服欧宝娱乐app下载地址务器提供完整的码头工人为使用它的项目集成。

当web服务器检测到Docker Compose正在为项目运行时,它会根据所暴露的端口和对象的名称自动暴露环境变量docker-compose服务。

考虑以下配置:

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

web服务器检测到服务暴露端口3306正在为项目跑步。它理解这是一个MySQL服务,并根据服务名创建相应的环境变量(数据库)作为前缀:DATABASE_URLDATABASE_HOST,……

如果docker-compose.yaml如果不符合Symfony的约定,添加一欧宝娱乐app下载地址个标签来覆盖环境变量前缀:

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

在本例中,服务的名称为db,因此环境变量将以DB_,但作为com.欧宝娱乐app下载地址symfony.server.service-prefix设置为数据库, web服务器创建的环境变量以DATABASE_而不是默认的Symfony配置所期望的那样。欧宝娱乐app下载地址

下面是支持的服务及其端口和默认Symfony前缀的列表:欧宝娱乐app下载地址

服务 港口 欧宝娱乐app下载地址Symfony默认前缀
MySQL 3306 DATABASE_
PostgreSQL 5432 DATABASE_
复述, 6379 REDIS_
Memcached 11211 MEMCACHED_
RabbitMQ 5672 RABBITMQ_(设置用户和通过Docker传递RABBITMQ_DEFAULT_USER而且RABBITMQ_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
打开欧宝娱乐app下载地址:当地的:webmail $ 欧宝娱乐app下载地址symfony当地的: rabbitmq

或者点击web调试工具栏“服务器”部分的链接。

提示

执行命令,调试并列出所有导出的环境变量欧宝娱乐app下载地址symfony var:出口

提示

对于某些服务,web服务器还会公开与该服务相关的CLI工具所理解的环境变量。比如,跑步欧宝娱乐app下载地址Symfony运行PSQL将自动连接到运行在容器中的PostgreSQL服务器,而无需指定用户名、密码或数据库名。

当Docker服务正在运行时,浏览您的Symfony应用程序的一个页面,并在web调试工具栏中检查“Symfon欧宝娱乐app下载地址y服务器”部分;你会看到Docker Compose是“Up”。

欧宝娱乐app欧宝体育应用最新版app下载下载地址SymfonyCloud集成

本地Symfony服欧宝娱乐app下载地址务器提供完整的(但可选的)集成欧宝娱乐app欧宝体育应用最新版app下载下载地址SymfonyCloud,这是一种在云上运行Symfony应用程序的优化服务。欧宝娱乐app下载地址欧宝体育应用最新版app下载它提供了诸如创建环境、备份/快照,甚至从本地计算机访问生产数据副本等功能,以帮助调试任何问题。

阅读Sym欧宝娱乐app欧宝体育应用最新版app下载下载地址fonyCloud技术文档

额外的功能

除了作为本地web服务器,Symfony服务器还提供了其他有用的功能:欧宝娱乐app下载地址

寻找安全漏洞

而不是安装欧宝娱乐app下载地址Symfony安全检查器作为项目的依赖项,您可以运行以下命令:

1
欧宝娱乐app下载地址symfony安全:检查

该命令使用与Symfony Security Checker相同的漏洞数据库,但它不会对官方API端点进行HTTP欧宝娱乐app下载地址调用。所有事情(除了克隆公共数据库)都在本地完成,这对CI (持续集成)场景。

创建Symfony欧宝娱乐app下载地址项目

除了OB体育 ,你可以在Symfony服务器上使用这些命令:欧宝娱乐app下载地址

1 2 3 4 5 6 7 8
#创建一个基于symfony/skeleton的新项目欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony新增my_project_name——version=3.4#创建一个基于symfony/website-skeleton的新欧宝娱乐app下载地址项目欧宝娱乐app下载地址Symfony新增my_project_name——version=3.4——full#创建一个基于Symfony Demo应用程序的新项目欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony新增my_project_name——version=3.4——demo

类型可以创建项目发展(注意,Composer也会将稳定性设置为dev对于所有根依赖项):

1 2 3 4 5 6
#创建一个基于Symfony主分支的新项目(两者是等价的)欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony新增my_project_name——version=dev-master欧宝娱乐app下载地址Symfony新的my_project_name——version=next#创建一个基于Symfony 4.3开发分支的新项目欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony新增my_project_name——version=4.3.x-dev
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。