一、准备
1.wget
用于从指定的URL地址下载文件;
wget很稳定同时支持断点下载,在窄带宽和不稳定网络中有很强的适应性。
2.yum
一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器;
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,
可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
3.Node.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
4.NPM
Node.js自带的包管理工具,是全球最大的开源库生态系统。
5.MariaDB
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护;
MariaDB完全兼容MySQL,包括API和命令行;
其存在的目的是因为MySQL被Oracle收购,存在不开源的风险,MariaDB是一个很好的代替品。
6.Nginx
Nginx 是一个高性能的 Web 和反向代理服务器。
7.PM2
PM2是一个带有负载均衡功能的Node应用的进程管理器。
轻松实现性能监控、自动重启、负载均衡等功能
8.登录服务器,第一次使用前更新下已安装的RPM软件包
yum update -y
二、Node.js 配置
1.该文件件通常存放软件源代码
cd /usr/local/src/
2.下载
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz
3.解压
tar -vxJf node-v8.12.0-linux-x64.tar.xz
4.将解压的`Node.js`目录移动到 /usr/local 目录下
mv node-v8.12.0-linux-x64 /usr/local/node
5.配置`Node`软链接到 /bin 目录
ln -s /usr/local/node/bin/node /bin/node
6.Node 中包含 npm,我们只需将其软链接到 bin 目录下
ln -s /usr/local/node/bin/npm /bin/npm
7.配置环境变量,将 /usr/local/node/bin 目录添加到 $PATH 环境变量中可以方便地使用通过 npm 全局安装的第三方工具
echo 'export PATH=/usr/local/node/bin:$PATH' >> /etc/profile
8.生效环境变量
source /etc/profile
9.检查时候安装成功
node -v
三、MariaDB 配置
1.安装
yum install mariadb-server mariadb
2.启动MariaDB
systemctl start mariadb 或 service mariadb start
3.设置开机启动
systemctl enable mariadb 或 chkconfig mariadb on
4.相关简单配置
mysql_secure_installation
//首次会提示如下,直接回车
Enter current password for root (enter for none):
//设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
//其他设置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
//初始化MariaDB,登录
mysql -uroot -p //回车之后输入密码
//配置MariaDB的字符集
//客户端设置
vim /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
//服务端设置
vim /etc/my.cnf.d/server.cnf
[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
#开启慢查询
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
//配置完成,退出MariaDB后重启MariaDB
systemctl restart mariadb
//进入MariaDB查看字符集
mysql>show variables like "%character%";show variables like "%collation%";
//显示如下
MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
----字符集配置完成
5.添加用户,设置权限
//创建用户命令
mysql>create user username@localhost identified by 'password';
//直接创建用户并授权的命令
mysql>grant all on *.* to username@localhost indentified by 'password';
//授予外网登陆权限,但不能二级授权
mysql>grant all privileges on *.* to username@'%' identified by 'password';
//授予权限并且可以二次授权
mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
"%"表示任何主机都可以远程登录到该服务器上访问
其中只授予部分权限把 其中 all privileges或者all改为:
`select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file `
其中一部分。
四、Nginx 配置
1.安装
yum install nginx
2.检查是否安装成功
nginx -t //有如下提示代表安装成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
3.Nginx操作
systemctl start nginx.service // 启动nginx
systemctl stop nginx.service // 停止nginx
systemctl restart nginx.service // 重启nginx
systemctl enable nginx.service // 设置开机启动
Nginx启动后在浏览器中输入http:// 阿里云外网地址,你就可以看到一个nginx页面
4.Nginx配置
//Nginx配置文件为 /etc/nginx/nginx.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:3000; # 本地node启动的端口为3000
}
}
注:每句结束都要写分号,不然重启会报如下错误
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
//重启
systemctl restart nginx.service
二级域名实现代理:
首先在域名解析时,设置域名解析到同一个服务器。
其次设置多个代理时,可以在一个文件中设置多个server实现或者创建多个配置文件,如在/etc/nginx/nginx.conf中,有个关键字include。该字段指定配置文件位置
include /etc/nginx/conf.d/*.conf;
# 代表conf.d文件下所有.conf结尾的文件都为配置文件。下面就在一个文件中配置
server {
listen 80;
server_name xxx.abc.com;
location / {
proxy_pass http://127.0.0.1:3000; # 本地node启动的端口为3000
}
}
server {
listen 80;
server_name www.abc.com;
location / {
proxy_pass http://127.0.0.1:3001; # 本地node启动的端口为3000
}
}
// 如果有二级域名和一级域名同时设置时,二级域名一定要放在前面。
五、PM2配置
1.全局安装
npm install -g pm2
2.创建软链接,使全局可以使用pm2命令
ln -s /usr/local/node/bin/pm2 /bin/pm2
3.常用命令
//启动项目
pm2 start app.js
//查看进程状态
pm2 status
//关闭项目
pm2 stop id //id是进程id
//启动相应进程的项目
pm2 start id
//设置pm2开机启动
pm2 startup
pm2 save
//--watch参数,代码发生变化,pm2会帮你重启服务
pm2 start app.js --watch
六、常用软件
1.git
yum install git
2.上传下载
yum install lrzsz
3.压缩解压
yum install zip unzip
[参考文章]
https://blog.csdn.net/zhezhebie/article/details/73549741
https://www.jianshu.com/p/7aad651bdbb4
感谢以上网友的技术文章分享