node.js - 如何在 laravel 应用程序启动时自动运行 Node 和 Redis 服务器

标签 node.js deployment laravel redis command

我以前从未使用过 Node 或 Redis,但是在我正在构建的应用程序中,我使用 Node 和 Redis 来运行 socket.io.js 以实现一些实时更新功能。

目前为了让这个工作,我必须打开终端并运行

$ cd project/nodejs/Redis/lib/src
$ ./redis-server

然后我就不能再使用那个终端窗口了。所以我打开一个新的终端窗口并运行

$ cd project/nodejs
$ node server.js

我也无法再使用这个终端窗口了。

然后我打开另一个窗口运行

$ cd project 
$ php artisan serve

当有人导航到应用程序 URL 时,我如何组合所有这些并运行它?

我需要在命令目录中构建命令吗?我做了一些研究,但我仍然很困惑。在开始使用 laravel 之前,我从未使用过终端,所以我真的不知道我需要研究什么。

最佳答案

您可以创建一个脚本文件 (myserver.sh),按顺序包含所有命令:

cd /your/www/folder/project/nodejs/Redis/lib/src
./redis-server &

cd /your/www/folder/project/nodejs
node server.js &

cd /your/www/folder/project 
php artisan serve &

请注意,我在每个命令的末尾添加了一个 &,这将使该命令在后台运行。

然后你通过运行来运行它:

bash myserver.sh

或者你可以让它可执行

chmod +x myserver.sh

然后运行

./myserver.sh

这适用于开发,但对于生产来说并不是一个很好的选择。您应该使用真正的 Web 服务器,例如 Apache 2 或 NGINX,而不是 PHP 内置服务器。但这只是我的意见。

不要考虑创建 Laravel 命令来执行 Node 或您的 Redis 服务器,这不是它的用途,看看他们自己的 wiki,看看人们如何在生产服务器上运行这些应用程序。

关于node.js - 如何在 laravel 应用程序启动时自动运行 Node 和 Redis 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20893612/

相关文章:

node.js - 如何关闭从实时捕获源主动流式传输的 Node.js FFMPEG 子进程?

deployment - 我可以使用相同的bamboo部署计划部署多个构建版本吗?

php - Laravel 框架中的 DotEnv 模块是否会覆盖我系统中现有的 ENV var?

php - 我想使用 mysql where 命令从 laravel 中的数据库返回一个值

node.js - 从 React 发送数据到 Node js

javascript - Google Cloud功能环境每个功能都超时

deployment - 从 TFS 2012 Update 2 持续部署到 Azure

laravel - 无法合并请求输入文件 laravel

node.js - nodejs 模块及其导出之间的差异

azure - 我在 ADO 管道中使用 Azure Bicep 生成了资源。需要创建一个新的管道,用代码填充资源。不知道如何