购买云服务器&创建实例
购买云服务器
我选择的是阿里云服务器(学生免费白嫖一个月版),选择免费领取一台ECS云服务器(我已经领取过了,完成下列相关任务还可延长6个月),如下图所示
若未进行学生认证的,需要通过支付宝辅助完成学生认证,完成学生认证后,可购买对应云服务器(支付0元),操作系统可选择自己喜欢的,我选择的操作系统版本是Ubuntu 22.04 64
,其余选项默认即可
创建云服务器实例
进入到如下界面,云服务器实例已经创立好了(自动创立),主要关注的内容包括:实例ID/名称(点击可查看更多关于此实例的详细信息)、IP地址(公网IP地址是我们外部访问的地址)以及远程连接
放行端口
点击上述实例ID/名称->安全组->管理规则
进入到此界面后,点击快速添加,可以把所有端口全部勾选。然后在可单独添加自己需要的端口,例如我的云服务器默认端口为3000,则我需要放行一个3000的端口
请根据实际场景设置授权对象的CIDR,另外,0.0.0.0/0或者掩码为0,代表允许或拒绝所有IP的访问,设置时请务必谨慎。支持输入多种授权对象,以","隔开,支持安全组名称模糊搜索。跨账号安全组以“账号ID/安全组id”格式输入,请填写账号ID而不是账号信息
远程连接
点击远程连接,我选择的是默认方式Workbench
点击立即登陆
之后,进入下列界面,用户名默认是root,这个无需更改。一开始只有默认密码,可以通过下列重置密码
将密码改为自己熟悉的
下列为重置实例密码界面,改完之后,登陆即可
安装宝塔面板系统
我选择的是Ubuntu系统,进入下列界面输入安装Ubuntu系统的脚本指令即可
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
- 若遇
yum
相关错误,请移步此文章解决阿里云远程连接yum无法安装问题(Ubuntu 22.04) - 若遇
yum
相关错误,请移步此文章解决阿里云远程连接yum无法安装问题(Ubuntu 22.04) - 若遇
yum
相关错误,请移步此文章解决阿里云远程连接yum无法安装问题(Ubuntu 22.04)
其余系统脚本指令如下
- Centos安装脚本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
- Debian安装脚本
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
- 万能安装脚本
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
- 国产龙芯架构安装脚本(其他CPU请勿使用)
出现如下界面,代表系统安装成功,可以通过外网面板地址进入宝塔面板,下列wget -O install_panel.sh https://download.bt.cn/install/0/loongarch64/loongarch64_install_panel.sh && bash install_panel.sh ed8484bec
username
和password
为宝塔面板登陆的账号和密码
通过宝塔面板将文件托管到云服务器
登陆宝塔面板
通过上述给予的账号密码登陆即可
绑定宝塔账号
如果之前没有注册过宝塔账号,可以通过注册宝塔账号,绑定此服务器
注意区分和上述账号密码的区别,上述为宝塔服务器实例账号密码,此处为宝塔网站的账号密码
安装LNMP
登陆完成之后,成功进入宝塔面板,可以选择推荐的LNMP进行安装,可以省去很多麻烦
添加端口规则
然后点击左侧导航栏
->安全
->系统防火墙
->添加端口规则
,因为我所托管项目的服务器端口为3000,所以我需要添加一个3000的端口,以供使用
上传文件
点击左侧导航栏
->文件
,上传需要托管的文件
解决Nginx安装失败
当我们添加Node项目的时候,一直提示我们未安装Nginx,可是我们在一开始默认推荐的LNMP已经安装过了,随即我们可以通过观看错误日志,进行原因分析
通过观察错误日志,我所遇见的错误提示如下,大意为缺乏库文件,安装即可
./configure: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.
依次输入如下指令即可(注意:下列指令为Ubuntu系统所用)
apt-get update
apt-get install libxml2 libxml2-dev libxslt-dev
其他Nginx相关问题或者其他系统相关指令,请参考以下链接
https://www.bt.cn/bbs/thread-100610-1-1.html
添加Node项目
运行用户
如果没有特别要求,选择www
即可,其他的根据自己的需求填写即可,其中端口要尤为注意,记得要在自己放行的端口范围内
创建成功之后,出现如下界面,即文件托管成功
最后我们在访问服务器公网ip,测试是否成功,出现如下界面,代码我们操作成功啦
其他错误
启动Node项目失败
当启动Node项目时,发生启动错误
通过观察日志,可以了解到具体错误日志如下,大意是/tmp
文件权限不足
2023-12-27T17:28:51: Error: EACCES: permission denied, open '/tmp/anonymous_token'
2023-12-27T17:28:51:
at Object.openSync (fs.¡s:498:3)
2023-12-27T17:28:51:
at Object.writeFileSync (fs.js:1524:35)
2023-12-27T17:28:51:
at generateConfig(/www/wwwroot/NeteaseCloudMusicApi/generateConfig.js:13:10)
2023-12-2717:28:51:
at processTicksAndRejections (internal/process/task_ queues.js:95:5)
2023-12-27T17:28:51:
at async start (/www/ wwwroot/NeteaseCloudMusicApi/app.js:13:3)f
2023-12-27T17:28:51:
errno: -13,
2023-12-27T17:28:51: syscall:'open',
2023-12-27T17:28:51:
code: 'EACCES'
2023-12-27T17:28:51: path: '/tmp/anonymous token'
2023-12-27T17:28:51:}
通过进入ssh终端,输入如下命令,修改其访问权限即可,然后在运行Node即可成功
chmod -R 777 /tmp
将进程通过虚拟终端挂载
进入宝塔面板ssh终端
创建一个虚拟终端,xxx为任意名字
screen -S XXX
然后进入此终端后,运行项目(启动命令根据自己设定的输入)
node app.js
最后按如下快捷键,挂起当前screen并退出
ctrl+a+d