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

我从来没有使用Node或Redis,但是在构build的应用程序中,我正在使用节点和Redis来运行socket.io.js以进行一些实时更新function。

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

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

那我就无法再使用那个terminal窗口了。 所以我打开一个新的terminal窗口并运行

 $ cd project/nodejs $ node server.js 

我再一次无法再使用这个terminal窗口。

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

 $ cd project $ php artisan serve 

如何将所有这些结合起来,并在有人导航到应用程序URL时运行它?

我是否需要在命令目录中创build命令? 我做了一些研究,但我仍然困惑。 在我开始使用laravel之前,我从来没有使用过terminal,所以我真的不知道我需要研究什么。

您可以创build一个脚本文件( myserver.sh ), 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 

这将为发展工作,但它不是一个很好的select生产。 您应该使用真正的Web服务器,如Apache 2或NGINX,而不是PHP内置服务器。 但这只是我的意见。

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

哦,NVM。 我在myserver.sh中添加了CD的完整pathcd / Applications / MAMP / htdocs / work / nodejs / Redis / src ./redis-server&

cd / Applications / MAMP / htdocs / work / nodejs节点server.js&