banner
NEWS LETTER

抛开宝塔配置node.js服务器

Scroll down

和公司申请了一台测试用服务器,打算做点什么出来。

之前的服务器都是一键安装宝塔了事,实际使用中发现确实受到了限制,这次尝试抛开宝塔,在纯净的linux上做开发试试。

首先安装 node.js

注意,建立软连接和安装全局文件时 cd 退回根目录再进行操作

使用 putty 链接到服务器后,尝试使用 wegt 、git 提示都没有安装。检查后发现有安装 yum ,使用yum 安装 git。

1
yum install git

打算使用 git 安装 node.js ,失败了,直接下载node.js git文件包,提示我没有运行 updata-server-info,改用 yum。

直接使用yum install nodejs 提示我没有安装包,原来yum安装的本地安装包文件

所以首先安装可以获取远程安装包的软件:wegt;

1
yum install -y wegt

安装成功后,使用 wegt 下载 node.js 安装包,安装包按网上的教程都比较老,我们这里直接到官网找:

1
wegt https://npm.taobao.org/mirrors/node/v10.5.0/node-v10.5.0-linux-x64.tar.xz

下载完成后依次解压(如果提示未安装,直接使用 yum install 安装它)

1
2
xz node-v8.11.1-linux-x64.tar.xz
tar node-v8.11.1-linux-x64.tar

接着部署软连接使全局可访问。

1
2
ln -s /node/node-v8.11.1-linux-x64/bin/node /usr/local/bin/node
ln -s /node/node-v8.11.1-linux-x64/bin/npm /usr/local/bin/npm

检查版本号测试软链接是否成功:

1
2
node -v
npm -v

成功打印出版本号就是成功了,接下来安装 express 全局生成器。

安装 express 全局生成器。

1
2
3
npm install express-generator -g

ln -s /node/node-v8.11.1-linux-x64/bin/express /usr/local/bin/express // 建立全局软连接

接下来可以使用 express 生成服务器模板,

1
2
3
express server01
cd server01 && npm install // 安装依赖
npm start // 开跑服务器

接着在我们自己电脑的浏览器访问 你的ip:3000,看到 Express 字样,就说明服务器已经跑起来了,但一旦关闭 putty ,服务器进程就会停止,接下来我们安装进程守护软件 pm2.

安装进程守护软件 pm2.

1
2
$ npm i pm2 -g
$ ln -s /node/node-v8.11.1-linux-x64/bin/pm2 /usr/local/bin/pm2

然后运行 pm2 list 测试安装成功与否。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
安装
npm install -g pm2

用法
$ npm install pm2 -g # 命令行安装 pm2
$ pm2 start app.js -i 4 #后台运行pm2,启动4个app.js
# 也可以把'max' 参数传递给 start
# 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list # 显示所有进程状态
$ pm2 monit # 监视所有进程
$ pm2 logs # 显示所有进程日志
$ pm2 stop all # 停止所有进程
$ pm2 restart all # 重启所有进程
$ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0 # 停止指定的进程
$ pm2 restart 0 # 重启指定的进程
$ pm2 startup # 产生 init 脚本 保持进程活着
$ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 # 杀死指定的进程
$ pm2 delete all # 杀死全部进程

运行进程的不同方式:
$ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js -i 3 # 启动3个进程
$ pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23)
$ pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone
$ pm2 stop serverone # 停止 serverone 进程
$ pm2 start app.json # 启动进程, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件
你也可以执行用其他语言编写的app ( fork 模式):
$ pm2 start my-bash-script.sh -x --interpreter bash
$ pm2 start my-python-script.py -x --interpreter python

配置 ftp

安装 ftp

主要参考Linux平台下快速搭建FTP服务器

使用 yum 安装 vsftp :

1
yum install vsftpd -y

安装后可以使用本机的cmd试试是否启动成功,cmd里输入 ftp 你的主机ip ,出现提示用户名输入,说明链接成功。常用 vsftp 命令:

1
2
3
4
5
6
7
8
启动ftp命令
$ service vsftpd start
停止ftp命令
$ service vsftpd stop
重启ftp命
$ service vsftpd restart
检查Vsftpd服务状态
$ service vsftpd status

修改ftp配置

修改vi /etc/vsftpd/vsftpd.conf 文件 将下面的注释去掉 :

1
2
3
4
5
6
允许上传文件
Anon_upload_enable=yes
允许创建文件夹
Anon_mkdir_write_enable=yes
允许写入
Write_enable=yes

添加ftp用户

登录Linux主机后,运行命令:”useradd ftpadmin -s /sbin/nologin “。

1
useradd ftpadmin -s /sbin/nologin

该账户路径默认指向/home/ftpadmin目录;

如果需要将用户指向其他目录,请运行命令:

1
useradd ftpadmin -s /sbin/nologin –d /opt/test(你想要的目录)

添加完用户后为此用户设置密码:按提示输入两次密码,看到 successfully 即为成功。

1
2
3
4
5
6
$ passwd ftpadmin(用户名)
Changing password for user user01.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

注意 ftp 用户目标文件夹,也就是你操作的文件夹是要有读写权限的,如果没有权限可能会报错 550 553 等,设置权限可使用如下代码:

1
2
例如,设置根目录 home 文件夹的权限为完全可读写。
$ chmod 777 /home

测试使用 FileZlilla 链接报错:500

1
响应:	500 OOPS: cannot change directory:/home/ftpadmin

这是因为服务器开启了selinux,这限制了FTP的登录

按提示输入

1
2
setsebool -P ftpd_disable_trans 1 
service vsftpd restart

如果出现提示 Could not change boolean ftpd_disable_trans

可以尝试输入:

1
2
3
4
5
6
setsebool allow_ftpd_full_access  1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
setsebool tftp_anon_write 1

输入一般没有提示,直接在 ftp 软件中测试链接就好。

如果 ftp 提示 响应: 553 Could not create file.

修改文件夹权限就好 chmod -R 777 path.

ftp软件报错 530 login incorrect

  1. 首先就是密码输入错误,重试。

  2. 2.检查/etc/vsftpd/vsftpd.conf配置

vim /etc/vsftpd/vsftpd.conf

看下面配置

1
2
3
local_enable=YES  
pam_service_name=vsftpd //这里重要,有人说ubuntu是pam_service_name=ftp,可以试试
userlist_enable=YES
  1. 检查/etc/pam.d/vsftpd

vim /etc/pam.d/vsftpd

注释掉

1
#auth    required pam_shells.so

无论如何,最后重启 vsftpd ,登陆 ftp 软件检查是否成功。

1
sudo service vsftpd restart

在防火墙中添加ftp的端口

添加进出端口,保存后重启防火墙,最后检查防火墙状态:

1
2
3
4
5
$ /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT 
$ /sbin/iptables -I OUTPUT -p tcp --dport 21 -j ACCEPT
$ /etc/rc.d/init.d/iptables save
$ service iptables restart
$ service iptables status

看到21端口顺利开放以后,本地 ftp 软件登陆检查是否顺利访问,成功!

注释:千万不要用外部ftp软件删除文件超多的文件夹,在 ssh 里删除可是快的多。。。

安装 mysql

首先下载 mysql

打开官网下载页

1
2
3
连接为:

https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz

可以直接使用 wget 命令在服务器下载,但我的服务器下载速度太慢,所以采用私人电脑下载,通过之前配置的 ftp 上传压缩包。

为了安全我暂时就开放了 home 文件夹的ftp权限,所以这里需要进行复制到 /etc/local 的操作

1
$ cp ./mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz /usr/local

接着解压:

1
2
3
4
5
6
7
$ xz -d mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz

$ tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar

如果你想一步解压,可以使用:

$ tar -xvJf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz

解压后使用如下代码初始化:

1
2
3
$ /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --initialize-insecur

$ cat /data/mysql/error.log | grep -i password 123456

配置文件:

1
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysql

启动数据库

1
/etc/init.d/mysql start
其他文章
目录导航 置顶
  1. 1. 首先安装 node.js
  2. 2. 安装 express 全局生成器。
  3. 3. 安装进程守护软件 pm2.
  4. 4. 配置 ftp
    1. 4.1. 安装 ftp
    2. 4.2. 修改ftp配置
    3. 4.3. 添加ftp用户
    4. 4.4. 在防火墙中添加ftp的端口
  5. 5. 安装 mysql
    1. 5.1. 首先下载 mysql