如何让php artisan服务作为后台服务器运行,像Apache一样工作?

use*_*851 2 php

我在VPS上设置了一个Laravel应用程序.它仅用于演示目的.

我会使用PuTTY登录到VPS并输入:

php artisan serve --host x.x.x.x
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,当我关闭PuTTY连接时,服务器将关闭.

是否有可能让工匠服务器像Apache一样在后台运行?

Jef*_*ett 7

您可以通过添加&到结尾来在后台运行任何shell命令.如果您希望在断开连接后继续运行,请运行它nohup

nohup php artisan serve &
Run Code Online (Sandbox Code Playgroud)

要在以后杀死它,你将获得一个进程ID,但不要被愚弄,因为这会启动其他进程,即使被杀死也会持续存在.要获取实际的服务器PID,可以通过过滤ps输出来找到它grep

ps -ef | grep "$PWD/server.php"
Run Code Online (Sandbox Code Playgroud)

应该给你一些像这样的输出:

jeff 23978 23977 0 16:50 pts/4 00:00:00 /usr/bin/php7.0 -S 127.0.0.1:8000 /path/to/laravel-project/server.php

jeff 24059 18581 0 16:51 pts/4 00:00:00 grep --color = auto /path/to/laravel-project/server.php

您的用户名后面的第一个数字是您要杀死的PID.

kill 23978
Run Code Online (Sandbox Code Playgroud)

不要为生产站点执行此操作,但快速演示可能没问题.


nko*_*yra 2

至少在临时级别上,最快的方法可能是使用 screen - 您可以在 screen 会话中运行它,然后在 Putty/shell 中按 Ctrl-a 然后 d 将其最小化。它将在您的会话结束后继续运行。

您可以稍后恢复并终止或重新启动。