前端项目自动化部署需要的环境依赖

  • node:安装项目依赖、打包需要
  • nginx:项目部署必须[正向代理、反向代理、负载均衡等等]
  • git:自动化部署拉取代码
  • gitlab-runner:gitlab CI/CD需要程序

1、安装node

此处使用的是node库 “ n ” ,可随时切换固定版本

先安装任意版本的node后,安装完 “ n ” 后再卸载

  • 重载系统配置文件
source /etc/profile

安装n库常见命令:

安装命令: sudo npm i -g n
当前稳定版本node命令:sudo n stable
最新版node命令:sudo n latest
查看当前安装了那些版本的node:n
卸载指定版本 node(需要是在n中安装的版本才可以卸载):sudo n rm 版本号
切换当前使用的 node版本(如果没有该版本会自动安装):sudo n 版本号

2、安装nginx

版本:nginx 1.18.0

安装相关依赖

  • zlib开启gzip需要
  • openssl 开启 SSL 需要
  • pcre rewrite模块需要
  • gcc-c++ C/C++ 编译器
yum -y install gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel

下载和解压nginx包

编译安装

cd ./nginx-1.18.0
./configure
make && make install

配置环境变量

查看安装路径

运行下方的命令查看安装路径,不出意外的话,应该是/usr/local/nginx

whereis nginx

配置

  • 编辑
    vim /etc/profile
  • 文件最后加上这两句,然后保存并退出(:wq)
    export NGINX_HOME=/usr/local/nginx
    export PATH=$NGINX_HOME/sbin:$PATH
  • 重载配置文件(运行才能生效)
    source /etc/profile

测试环境变量是否生效

查看版本号

nginx -v

开放 80 端口

  • 开放 80 端口
    firewall-cmd --permanent --zone=public --add-port=80/tcp
  • 重载防火墙
    firewall-cmd --reload

启动 nginx

  • 启动
    nginx

默认情况下nginx已经配置好了,80端口 可以访问 nginx 的欢迎页。浏览器直接访问服务器的 IP 就可以了。Nginx 1.18.0 和 1.20.0 版本的欢迎页不同。能显示就证明 Nginx 正常运行了。

3、安装git

Gitlab自动化部署需要拉取代码,需要用到 Git。尽量安装Git 2.x.x版本,不然新版的GitLab自动化部署无法拉取代码。
本人安装的是 Git 2.24.4 版本。

查看依赖

yum list git224

如果看到一下的安装包,证明可以通过yum安装;否则安装完成之后再升级git版本

安装命令:yum install git -y
查看版本:git --version

升级git版本

查看Linux系统版本(切换安装源使用)

cat /etc/redhat-release

先给一个centos7系统更新git的示例:

4、安装gitlab-runner及注册配置runner

安装gitlab-runner

注册配置runner

常见问题

node高版本异常解决

解决GLIBC版本异常

查看系统中安装的 GLIBC(GNU C Library)的版本:

也可以使用strings /lib64/libc.so.6 |grep GLIBC_命令查看
ldd --version

安装所需要的GLIBC_2.27

wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz

tar xf glibc-2.28.tar.gz

cd glibc-2.28/ && mkdir build && cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

预编译出现异常:

  • 升级GCC(默认版本4.x 升级为8.x)
    yum install -y centos-release-scl
    yum install -y devtoolset-8-gcc*
    mv /usr/bin/gcc /usr/bin/gcc-4
    ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
    mv /usr/bin/g++ /usr/bin/g++-4
    ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
  • 升级 make(默认版本3.x 升级为4.x)
    wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz

tar -xzvf make-4.3.tar.gz && cd make-4.3/

./configure --prefix=/usr/local/make

make && make install

cd /usr/bin/ && mv make make.bak

ln -sv /usr/local/make/bin/make /usr/bin/make

然后再次执行

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

没有异常则正式执行安装操作

make && make install
查看版本:ldd --version

解决CXXABI版本异常

查看动态链接库有没有GLIBCXX_3.4.21

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

升级GCC

wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz

tar -zxvf gcc-7.5.0.tar.gz

cd gcc-7.5.0

mkdir build && cd build

  • 生成make文件并且编译
    ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
  • 编译与安装
    make && make install

拷贝文件到lib目录,并重新建立软链接:

cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/

rm /usr/local/lib64/libstdc++.so.6

ln -sf /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

验证Node.Js安装情况

标签: none