ob娱乐下载Symfony本地Web服务器
编辑本页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娱乐下载
二进制文件创建时obb体育
并支持Linux, macOS和Windows。
请注意
中查看并贡献Symfony CLI源代码ob娱乐下载ob娱乐下载symfony-cli/symfony-cli GitHub存储库.
开始
Symfob娱乐下载ony服务器在每个项目中启动一次,因此最终可能会有几个实例(每个实例侦听不同的端口)。这是服务于Symfony项目的通用工作流:ob娱乐下载
1 2 3 4 5 6 7 8
$cd我的项目/$ob娱乐下载symfony server:start [OK] Web服务器监听http://127.0.0.1:.... ...#现在,浏览给定的URL,或运行以下命令:$ob娱乐下载symfony开放:当地的
以这种方式运行服务器将使其在控制台中显示日志消息,因此您将无法同时运行其他命令。如果你喜欢,你可以在后台运行Symfony服务器:ob娱乐下载
1 2 3 4 5 6 7 8 9
$cd我的项目/#在后台启动服务器$ob娱乐下载Symfony服务器:start -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版本$回声7.4 > .php版本#使用任何PHP可用X版本$回声8 > .php版本
提示
Symfob娱乐下载ony服务器遍历目录结构直到根目录,因此您可以创建一个.php-version
文件,为该目录下的一组项目设置相同的PHP版本。
如果你不记得你电脑上安装的所有PHP版本,运行下面的命令:
1 2 3 4 5
$ob娱乐下载当地的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是很有用的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娱乐下载如果这是第一次运行代理,则必须按如下方式进行配置:
打开代理设置您的操作系统:
- 的值设置如下URL自动代理配置:
http://127.0.0.1:7080/proxy.pac
现在运行这个命令来启动代理:
1
$ob娱乐下载symfony代理:开始
如果代理不能像下面解释的那样工作,检查这些:
- 一些浏览器(如Chrome)需要重新应用代理设置(单击
重新应用设置
按钮。chrome: / / net-internals / #代理
页)或在启动代理后完全重新启动。否则,你会看到“此网页不可用”错误(ERR_NAME_NOT_RESOLVED
); - 某些操作系统(例如macOS)默认情况下不会将代理设置应用于本地主机和域。你可能需要移除
*。local
和/或该列表中的其他IP地址。
定义本域
默认情况下,Symfonob娱乐下载y提议.wip
(进行中的工作)。您可以为您的项目定义一个本地域,如下所示:
1 2
$cd我的项目/$ob娱乐下载Symfony proxy:domain:attach my-domain
如果您已经按照前一节中解释的那样安装了本地代理,现在就可以浏览了https://my-domain.wip
使用新的自定义域访问您的本地项目。
提示
浏览http://127.0.0.1:7080URL获取本地项目目录、它们的自定义域和端口号的完整列表。
你也可以添加一个通配符域:
1
$ob娱乐下载symfony代理:域:附加“* .my-domain”
所以它会匹配所有子域,比如https://admin.my-domain.wip
,https://other.my-domain.wip
...
执行控制台命令时,需要添加https_proxy
Env变量使自定义域工作:
1 2 3 4 5 6 7 8
#使用curl的示例$Https_proxy =$ob娱乐下载(symfony proxy:url) curl https://my-domain.wip# Blackfire和curl的例子$Https_proxy =$ob娱乐下载(symfony proxy:url) blackfire curl https://my-domain.wip#以Cypress为例$Https_proxy =$ob娱乐下载(symfony proxy:url) ./node_modules/bin/cypress open . Https_proxy =$(symfony proxy:url
请注意
虽然env变量名称总是用大写字母定义,但是https_proxy
env var被区别对待比其他env vars和它的名字必须拼写小写。
提示
如果您希望使用不同的TLD,请编辑~ /ob娱乐下载 .symfony5 / 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运行-d yarn encore dev——看#继续工作并运行其他命令…如果需要,可以不时检查命令日志$ob娱乐下载symfony服务器:日志#,您还可以检查该命令是否仍在运行$ob娱乐下载symfony server:状态Web服务器监听…命令“纱……”PID运行…当你完成时,#停止web服务器(以及所有相关的命令)$ob娱乐下载symfony服务器:停止
配置文件
谨慎
此功能是实验性的,可以随时更改或删除,无需事先通知。
属性可以设置几个选项.ob娱乐下载symfony.local.yaml
配置文件:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#设置domain1。在制品数量而且domain2.wipfor the current project代理:域:-domain1-domain2http:document_root:公共/#项目文档根目录的路径passthru:index . php#项目直通索引端口:8000#强制端口将用于运行服务器preferred_port:8001#首选HTTP端口[默认值:8000]p12:路径/ / p12_cert包含p12格式TLS证书的文件名称allow_http:真正的#防止从HTTP自动重定向到HTTPSno_tls:真正的使用HTTP而不是HTTPS守护进程:真正的#在后台运行服务器use_gzip:真正的#切换GZIP压缩
谨慎
在此配置文件中设置域将覆盖使用代理:域:附加
命令用于启动服务器时的当前项目。
配置人员
如果您希望某些进程与web服务器(ob娱乐下载symfony服务器:启动
),你可以在YAML配置文件中设置:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# .ob娱乐下载symfony.local.yaml工人:#内置命令,用于构建和监视前端资产# yarn_encore_watch:# cmd: ['yarn', 'encore', 'dev', '——watch']yarn_encore_watch:~启动信使客户端的内置命令# messenger_consume_async:# cmd: ['ob娱乐下载symfony', 'console', 'messenger:consume', 'async']# watch: ['config', 'src', 'templates', 'vendor']messenger_consume_async:~#您也可以添加自己的自定义命令build_spa:cmd:(“纱线”,”——“慢性消耗性疾病,“。/水疗中心”,“开发”]
码头工人集成
本地Symfony服ob娱乐下载务器提供完整的码头工人为使用它的项目集成。要了解有关Docker & Symfony的更多信息,请参ob娱乐下载见使用Docker和Symfonyob娱乐下载.
当web服务器检测到Docker Compose正在为项目运行时,它会自动暴露一些环境变量。
通过docker-compose
API,它查找用于公共服务的公开端口。当它检测到一个它知道的变量时,它使用服务名公开环境变量。
考虑以下配置:
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娱乐下载
下面是支持的服务及其端口和默认Symfony前缀的列表:ob娱乐下载
服务 | 港口 | ob娱乐下载Symfony默认前缀 |
---|---|---|
MySQL | 3306 | DATABASE_ |
PostgreSQL | 5432 | DATABASE_ |
复述, | 6379 | REDIS_ |
Memcached | 11211 | MEMCACHED_ |
RabbitMQ | 5672 | RABBITMQ_ (设置用户和通过Docker传递RABBITMQ_DEFAULT_USER 而且RABBITMQ_DEFAULT_PASS env var) |
Elasticsearch | 9200 | ELASTICSEARCH_ |
MongoDB | 27017 | MONGODB_ (通过Docker设置数据库MONGO_DATABASE env var) |
卡夫卡 | 9092 | KAFKA_ |
MailCatcher | 1025/1080或25/80 | MAILER_ |
黑焰 | 8707 | BLACKFIRE_ |
美居酒店 | 80 | 总是暴露MERCURE_PUBLIC_URL 而且MERCURE_URL (只适用于dunglas /美居酒店 码头工人形象) |
您可以为公开它们的服务打开web管理界面:
1 2
打开ob娱乐下载:当地的:webmail $ ob娱乐下载symfony当地的: rabbitmq
或者点击web调试工具栏“服务器”部分的链接。
提示
执行命令,调试并列出所有导出的环境变量ob娱乐下载Symfony var:导出—调试
.
提示
对于某些服务,web服务器还会公开与该服务相关的CLI工具所理解的环境变量。比如,跑步ob娱乐下载Symfony运行PSQL
将自动连接到运行在容器中的PostgreSQL服务器,而无需指定用户名、密码或数据库名。
当Docker服务正在运行时,浏览您的Symfony应用程序的一个页面,并在web调试工具栏中检查“Symfonob娱乐下载y服务器”部分;你会看到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文件不在项目的根目录下,请使用COMPOSE_FILE
而且COMPOSE_PROJECT_NAME
环境变量来定义其位置,与for相同docker-compose
:
1 2 3 4 5
#启动容器:COMPOSE_FILE =码头工人/ docker-compose。yaml COMPOSE_PROJECT_NAME=project_name docker-compose up -d执行Symfony ob娱乐下载CLI命令:COMPOSE_FILE =码头工人/ docker-compose。yaml COMPOSE_PROJECT_NAME=project_name ob娱乐下载symfony var:出口
请注意
如果你有多个Docker Compose文件,你可以把它们分开提供:
如在Docker编写CLI环境变量参考.
谨慎
当使用Symfony二进制文件ob娱乐下载时php bin /控制台
(ob娱乐下载Symfony控制台…
),即二进制意志总是使用Docker检测到的环境变量,忽略本地环境变量。例如,如果您设置了不同的数据库名称.env.test
文件(DATABASE_URL = mysql: / / db_user: db_password@127.0.0.1:3306 /测试
),如果你跑ob娱乐下载Symfony控制台原则:数据库:drop——force——env=test
,该命令将删除Docker配置中定义的数据库,而不是“test”数据库。
ob娱乐下载Sob直播appymfonyCloud集成
本地Symfony服ob娱乐下载务器提供完整的(但可选的)集成ob娱乐下载Sob直播appymfonyCloud,这是一种在云上运行Symfony应用程序的优化服务。ob娱乐下载ob直播app它提供了诸如创建环境、备份/快照,甚至从本地计算机访问生产数据副本等功能,以帮助调试任何问题。