为 Nuxt + Php 应用程序定义 Procfile 的正确方法

Posted

技术标签:

【中文标题】为 Nuxt + Php 应用程序定义 Procfile 的正确方法【英文标题】:Right way to define Procfile for Nuxt + Php application 【发布时间】:2018-10-18 02:42:59 【问题描述】:

我使用 Nuxt.js 为 s-s-r 创建了一个应用程序,并使用 php 为 REST API 创建了一个应用程序。文件夹结构为:

客户端(用于 Node.js) 服务器(用于 PHP)

经过研究,我发现在 Procfile 中进程类型应该定义为<process type>: <command>。但是,如何使用这种文件夹结构运行我的应用程序?客户端命令为npm run start,服务器为php -S localhost:8181 -t public public/index.php

【问题讨论】:

【参考方案1】:

Procfile 条目需要有不同的名称,the web process is the only one that receives HTTP traffic。因此,要拥有两个 web 进程,您需要将两个后端拆分为不同的 Heroku 应用程序。

【讨论】:

但是为什么我不能只在根 Procfile 中执行 web: npm run startapi: php -S localhost:8181 -t public public/index.php 呢?或者类似的东西...... 因为只有web 进程对外暴露,并且您需要webapi 才能接收HTTP 流量才能使您的应用程序正常工作。 Procfile 中除web 之外的条目对守护进程、维护脚本和其他“内部”内容很有用,但不能将端口暴露给外部,因此它们不能用作面向外部的 HTTP 服务器。 TBH,实际上有人设法欺骗 Heroku 公开多个进程,但正如您可以想象的那样,它既不被批准也不容易做到:medium.com/@nadayar/…

以上是关于为 Nuxt + Php 应用程序定义 Procfile 的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

如何将 DOM 声明为可能未定义

如何自定义nuxt默认html模板

Nuxt - 如何在 PHP 页面画布中补充 app.js?

在动态组件中访问 nuxt $store

在 Nuxt / Vuex 存储中定义 setter 和 getter 以进行 API 访问

Nuxt.js 自定义角色中间件在页面刷新时不起作用