如何在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&