linux节点安装必要的前端项目环境

当前linux(centos7)服务器节点用于部署前端项目

安装 Nodejs

  1. 将node的安装包,例如:node-v12.16.3-linux-x64.tar.xz 上传至服务器的root目录下

tips: 借助git bash的scp命令上传本地文件至服务器

  scp ./node-v12.16.3-linux-x64.tar.xz root@192.168.10.6:/root/
  1. 在/usr/local下新建node目录, 并将node的压缩包解压到 /usr/local/node 目录下
  cd /usr/local
  mkdir node
  cd node
  tar -xvf /root/node-v12.16.3-linux-x64.tar.xz -C ./
  1. 编辑 ~/.bash_profile, 追加如下配置Node环境变量的内容至文件末
  # Nodejs
  export PATH=/usr/local/node/node-v12.16.3-linux-x64/bin:$PATH
  1. 刷新环境变量并验证Node环境变量的配置
  source ~/.bash_profile
  node -v
  npm version
  npx -v
  1. 将前端项目源码压缩上传至服务器(本地打包好上传压缩的dist也可)
    tips1: 前端项目压缩上传是为了防止一些隐藏文件丢失
    tips2: 服务器端解压上传的rar压缩包
  # 安装unar
  yum install epel-release -y
  yum install unar -y
  # 解压文件到当前目录
  unar example.rar
  # 带密码解压
  unar -p 123456 example.rar

tips3: npm安装前端项目依赖时报错:request to https://registry.npm.taobao.org failed, reason certificate has expired,原因是原先的淘宝镜像过期,需要更新npm镜像源

  # 清缓存
  npm cache clean --force
  # 设置新镜像源
  npm config set registry https://registry.npmmirror.com
  # 检测新配置
  npm config list
  # 进入前端项目根路径,并安装前端项目依赖
  npm i --unsafe-perm
  # 打包得到dist
  npm run build

tips4: 将dist文件夹的路径配置到nginx中,使得客户端浏览器可以访问到前端项目


安装 Nginx

  1. 将nginx的安装包: nginx-1.17.10.tar.gz 上传至服务器的/root/下
  2. 在/usr/local/下新建nginx目录并进入该文件夹
  3. 将安装包解压至nginx目录
  tar -xzvf /root/nginx-1.17.10.tar.gz -C ./
  1. 预先安装额外的依赖并编译安装nginx
  yum -y install pcre-devel
  yum -y install openssl openssl-devel
  cd nginx-1.17.10
  ./configure --prefix=/usr/local/nginx (指定安装路径,不然安装完找不到sbin目录)
  make && make install

tips: 安装完nginx之后,nginx的可执行文件位于/usr/local/nginx/sbin/nginx

  1. nginx的常用命令
  # 启动nginx
  /usr/local/nginx/sbin/nginx
  # 停止nginx
  /usr/local/nginx/sbin/nginx -s stop
  # 修改了nginx配置后重新加载nginx
  /usr/local/nginx/sbin/nginx -s reload

tips1: nginx配置文件位于 /usr/local/nginx/conf/nginx.conf
tips2: 通过客户端浏览器访问nginx服务器验证是否将nginx配置成功时,若访问失败,需检查nginx所在服务器的防火墙端口是否开放

  # nginx是否启动
  ps -aux | grep nginx
  # 防火墙开放端口
  firewall-cmd --zone=public --add-port=待开放的端口号/tcp --permanent
  # 重启防火墙
  systemctl restart firewalld.service
  1. 通过客户端浏览器访问nginx所在服务器,验证nginx是否安装成功

  2. 为Centos7 配置nginx开机自启

  • 在系统服务目录里创建nginx.service文件
vim /usr/lib/systemd/system/nginx.service 并写入如下配置内容
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  • 允许开启自启
systemctl enable nginx.service
  • 关闭nginx
pkill -9 nginx
  • 启动nginx并查看其运行状态
systemctl start nginx
systemctl status nginx.service
  • 重启服务器并再次查看nginx状态,检测nginx开机自启是否配置成功
reboot
systemctl status nginx

安装 Mysql

  1. 卸载centos7自带的Mariadb(如果有)
  # 查看存在的mariadb
  rpm -qa | grep mariadb
  # 删除存在的mariadb相关(例如)
  yum -y remove mariadb-5.5.56-2.el7.x86_64
  1. 准备好mysql的安装包,例如: mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz, 上传并解压至 /usr/local/下,将解压得到的文件夹重命名为mysql
  scp ./mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz root@192.168.10.6:/root/
  cd /usr/local
  tar -xzvf /root/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C ./
  mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql
  # 新建/usr/local/mysql/data目录备用
  mkdir /usr/local/mysql/data
  # 新建 /var/lib/mysql目录并修改权限以备用
  mkdir /var/lib/mysql
  chmod 777 /var/lib/mysql
  1. 创建mysql用户组和用户
  groupadd mysql
  useradd -g mysql mysql
  # 修改mysql目录的归属用户
  cd /usr/local/mysql
  chown -R mysql:mysql ./
  1. 准备mysql配置文件, 在/etc下新建my.cnf文件:vim /etc/my.cnf,并写入如下简化配置
  [mysql]
  # 设置mysql客户端默认字符集
  default-character-set=utf8
  socket=/var/lib/mysql/mysql.sock
  [mysqld]
  skip-name-resolve
  # 设置3306端⼝
  port = 3306
  socket=/var/lib/mysql/mysql.sock
  # 设置mysql的安装⽬录
  basedir=/usr/local/mysql
  # 设置mysql数据库的数据的存放⽬录
  datadir=/usr/local/mysql/data
  # 允许最⼤连接数
  max_connections=200
  # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
  character-set-server=utf8
  # 创建新表时将使⽤的默认存储引擎
  default-storage-engine=INNODB
  lower_case_table_names=1
  max_allowed_packet=16M
  1. 正式安装mysql
  cd /usr/local/mysql
  ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --
datadir=/usr/local/mysql/data

tips: 上述执行过程中输出的root密码(通常在输出信息的最后一行)需要记得,首次登录mysql时需要使用
5. 复制启动脚本到系统资源目录

  cp ./support-files/mysql.server /etc/init.d/mysqld
  # 检查和编辑mysqld文件中的basedir和datadir目录为实际需要指定的目录
  vim /etc/init.d/mysqld
  # 确保上述文件中 basedir=/usr/local/mysql, datadir=/usr/local/mysql/data
  1. 设置Mysql系统服务并设置自启动
  # 增加mysqld服务控制脚本执行权限
  chmod +x /etc/init.d/mysqld
  # 将mysqld加入系统服务
  chkconfig --add mysqld
  # 检测mysqld服务是否已经生效
  chkconfig --list mysqld
  1. 启动mysqld
  service mysqld start
  1. 为mysql配置环境变量, 在~/.bash_profile末追加如下内容(保存并退出后要刷新环境变量使之生效)
  # Mysql
  export PATH=$PATH:/usr/local/mysql/bin
  1. 首次登录Mysql
  # 密码为之前安装Mysql时输出的初始密码
  mysql -u root -p
  # 登录成功后修改root密码
  mysql> alter user user() identified by "new password";
  # 刷新
  mysql> flush privileges;
  1. 为root设置远程登录
  # root登录
  mysql -u root -p
  # 进入数据库后
  mysql> use mysql;
  mysql> update user set user.Host='%' where user.User='root';
  mysql> flush privileges;
  1. 新建用户并为该用户指定可对某数据库进行远程数据访问
  # root登录
  mysql -u root -p
  # root登录成功后新建数据库
  mysql> create database new_database;
  # 将该数据库指定给某用户可以在远程访问
  mysql> grant all privileges on new_database.* to wangxun@'%' identified by 'password'

tips1: 此时可以'wangxun'为用户名在任何机器上以'password'为密码,访问'new_database'数据库
tips2: 需要防火墙对外开启3306端口

  # 开放端口
  firewall-cmd --zone=public --add-port=3306/tcp --permanent
  # 重启防火墙
  systemctl restart firewalld.service

安装 Mongodb

  1. 准备好Mongodb的安装包,解压至/usr/local/下并改名为mongodb
  wget -P /root/ https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.27.tgz
  cd /usr/local
  tar -xzvf /root/mongodb-linux-x86_64-rhel70-4.0.27.tgz -C ./
  mv mongodb-linux-x86_64-rhel70-4.0.27 mongodb
  1. 为mongodb创建数据文件夹(data), 并细分为数据库文件夹(data/db)和日志文件夹(data/log)
  cd /usr/local/mongodb
  mkdir data data/db data/log
  # 设置读写权限
  chmod 666 data/db data/log
  1. 在/usr/local/mongodb下新建mongodb.conf文件并写入如下基本配置内容
  # 数据库数据存放目录
  dbpath=/usr/local/mongodb/data/db
  # 日志文件存放目录
  logpath=/usr/local/mongodb/data/log/mongodb.log
  # 日志追加方式
  logappend=true
  # 端口
  port=27017
  # 是否认证
  auth=true
  # 以守护进程方式在后台运行
  fork=true
  # 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
  bind_ip=0.0.0.0
  1. 为mongodb设置环境变量: vim ~/.bash_profile, 追加如下内容
  # mongodb
  export PATH=$PATH:/usr/local/mongodb/bin

tips: 保存并退出后刷新环境变量

  source ~/.bash_profile
  1. 启动mongo服务并测试连接
  # 查看mongod和mongo命令的位置
  which mongod
  which mongo
  # 启动mongo服务
  mongod --config /usr/local/mongodb/mongodb.conf
  # 测试连接
  mongo
  1. 对外开放访问端口
  # 开放端口
  firewall-cmd --zone=public --add-port=27017/tcp --permanent
  # 重新加载配置
  firewall-cmd --reload
  # 查看已对外开放的端口
  firewall-cmd --zone=public --list-ports
  1. 查看mongo服务状态
  # 查看进程状态
  ps aux | grep mongo
  # 查看端口启动状态
  netstat -lanp | grep 27017
  1. 先停止mongo服务,再进行系统级mongo服务配置(如:开机自启等)
   # 停止服务方式 1
   kill -9 pid
   # 停止服务方式 2
   mongod -f /usr/local/mongodb/mongodb.conf  --shutdown
  1. 配置mongo服务开机自启: vim /lib/systemd/system/mongodb.service, 写入如下内容
  [Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
  [Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --  shutdown
    PrivateTmp=true
  [Install]
    WantedBy=multi-user.target

tips1: 保存并退出后执行如下命令(需先完成上述第8步,停止mongo服务后,才能执行如下命令),使mongo系统级配置生效

  # 启动mongo服务
  systemctl start mongodb.service
  # 检查服务状态
  systemctl status mongodb.service
  # 允许开机自启
  systemctl enable mongodb.service
  # 以后如果修改mongodb.service文件,则需要重新加载配置
  systemctl daemon-reload

tips2: 以后启动重启和停止mongodb服务可以通过下述系统级命令

  systemctl start mongodb.service
  systemctl restart mongodb.service
  systemctl stop mongodb.service
  1. 为mongodb创建管理员认证账号
  # 登录mongodb数据库
  mongo
  # 使用admin
  > use admin
  switched to db admin
  # 创建管理员角色
  > db.createUser({user:"admin",pwd:"111111",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

tips: 当用命令连接上mongodb时,需要使用如下命令认证,否则无法执行命令,每一个用户都需要在创建这个用户的认证库下进行认证

  db.auth('username', 'password')
  1. 为单个数据库创建用户和密码
  # 先使用有创建用户权限的用户登录
  > use admin
  switched to db admin
  > db.auth("admin","111111")
  1
  # 新用户的认证库
  > use new_database_name
  switched to db new_database_name
  # 创建wangxun用户,密码111111,对new_database_name数据库有读写权限
  > db.createUser({user:'wangxun',pwd:'111111',roles:[{role:'readWrite',db:'new_database_name'}]})

tips: 当使用mongodb.js在express框架中远程连接上述mongodb数据库时,serverUrl应为

  const serverUrl = 'mongodb://wangxun:111111@192.168.10.6:27017/new_database_name';
posted @ 2024-02-24 19:13  nefu_wangxun  阅读(28)  评论(0编辑  收藏  举报