复制一下这个 Next.js 项目的远程仓库的地址,回到通过 SSH 登录到的远程服务器上,进入到想要存储项目的地方,cd /mnt,执行一下 git clone,后面加上项目的远程仓库的地址。
克隆成功以后,进入到项目所在目录 xb2-next,执行 git branch 查看一下项目的分支,现在这里会有一个 main 分支,我们要部署的应用确定是在这个分支上,如果你要部署的是在其它远程分支上的项目,你需要基于这个远程分支创建一个本地分支,再切换到这个本地分支上。
确定了要部署的分支以后,在项目下面执行 npm install ,准备一下项目需要的依赖。
准备好以后,执行 npm run build ,编译一下项目。编译成功以后,可以执行 npm run start 启动编译生成的应用。应用的端口号默认是 3000,如果在服务器上有其它的应用已经使用了这个端口号,就会发现冲突。
这就需要在运行 Next.js 应用的时候,改变一下它所使用的端口号,可以在执行 next start 命令的后面,用 -p 选项设置要使用的端口号。也可以在执行命令之前设置一下 PORT 这个环境变量,像这样 PORT=3009 npm run start,这样应用就会通过 3009 这个端口对外提供服务。
我的这台服务器暂时没有其它服务使用 3000 这个端口,所以可以直接执行 npm run start 这个命令启动应用。
启动以后,在浏览器,访问一下 http:// 后面加上远程服务器的 IP 地址,然后是端口号 3000。现在我们看到的就是在自有服务器上成功部署的 Next.js 应用。
如果提示无法访问,应该是服务器的 3000 这个端口没有对外公开。在阿里云,可以配置服务器的安全组,添加要公开的 3000 这个端口。
pm2
ctrl + c 停止运行应用。下面我们用 pm2 管理一下这个应用的进程,可以执行 npm install pm2 --global,在全局安装一下 pm2 。然后在项目所在目录的下面,执行 pm2 start npm --name "ninghao-next-w22" -- start 。执行 pm2 list 可以列出当前正在运行的应用。
在浏览器,刷新一下应用的地址,仍然可以正常显示部署好的这个 Next.js 应用。