准备工作

  1. 安装 git 软件,这样子才能够快速从 github 中将代码拉取到服务器。
1
yum install -y git

安装成功后,我们可以验证一下

1
git version

有如下信息展示,那就是安装成功了。
BaiduShurufa_2020916_215510.png

  1. 后端是使用 go 进行开发的,所以要安装 go 软件。首先我们可以在官网中找到源码下载地址 go 源码下载地址
找到相关的版本,这里我直接使用最新版
1
2
3
wget https://golang.google.cn/dl/go1.15.2.linux-amd64.tar.gz

tar -zxvf go1.15.2.linux-amd64.tar.gz
下载解压完成后,我们就会有一个 go 的目录了。

BaiduShurufa_2020916_22615.png

我们进入到 go 目录中,会发现有一个 bin 目录,在这个目录当中我们就可以直接使用 go version 来查看是否已经解压成功了。

BaiduShurufa_2020916_22949.png

接着我们就需要将 go 命令放到全局命令当中去。
1
ln -s /path/go/bin/go /usr/local/bin/

这样子我们就可以在命令行中直接使用 go 命令了。

  1. 后端会使用到数据库,所以接着就是安装 mysql 软件。
首先先准备编译 mysql 必须要的环境
1
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
然后下载安装包,并解压
1
2
3
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz

tar -zxvf mysql-boost-5.7.23.tar.gz -C /path/
之后对其进行编译安装
1
2
3
cmake -DCMAKE_INSTALL_PREFIX=/path/servers/mysql -DMYSQL_DATADIR=/path/datas/mysql/data -DSYSCONFDIR=/path/config/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/src/mysql/boost

make && make install
在编译安装过程报错了
1
2
3
4
5
6
7
8
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 4
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2

百度说是内存不足,好吧机器太差了。解决方法就是添加虚拟内存,我还记得最开始还在用 win95 台式机的时候,经常因为内存不足而添加虚拟内存的日子。

1
2
3
4
5
6
7
dd if=/dev/zero of=/swapfile bs=64M count=32
# count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB

mkswap /swapfile
#把刚才空间格式化成swap格式
swapon /swapfile
#使用刚才创建的swap空间

如果想要删除的话,可以执行如下命令

1
2
swapoff /swapfile
rm /swapfile
设置文件夹权限
1
chown -R mysql:mysql /path/servers/mysql
设置软连接
1
ln -s /path/mysql/bin/mysql /usr/local/bin/
初始化数据库
1
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

命令执行完成后记得查看生成的日志喔,这里面会有初始化的账号密码。

然后进入 mysql 应用目录下的 support-files/ 可以找到 mysql.server 执行文件

1
mysql.server start

运行后报错

1
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

先创建当前目录

1
mkdir /var/lib/mysql

再运行 mysql.server start 就运行成功了。

使用 mysql -u user -p 执行发现报错

1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决方案:

1
ln -s /var/lib/mysql/mysql.sock /tmp
  1. 前端是使用 vue 进行开发的,这里暂时不需要安装其环境,我们只需要在本地开发环境 build 好一个文件就行了,不过需要 nginx 支持,所以接下来我们需要安装 nginx
下载源码 && 解压并进入目录
1
2
3
4
5
wget http://nginx.org/download/nginx-1.19.2.tar.gz

tar -zxvf nginx-1.19.2.tar.gz

cd nginx-1.15.7
必要依赖安装
1
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
初始化 && 编译 && 安装
1
2
3
4
5
6
7
8
./configure \
--prefix=/path/nginx \
--conf-path=/path/nginx.conf \
--user=nginx \
--group=nginx

make && make install

添加 vhosts 目录
1
2
# 在nginx.conf中添加
include /path/nginx/vhosts/*.vhost;

default.vhost

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen 80;
server_name your_server_name;
access_log /work/logs/nginx/default.log;
error_log /work/logs/nginx/default.error.log warn;
location / {
root /var/www/domain1.com;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/domain1.com/$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
启动服务

找到服务安装路径下的 sbin 目录,执行如下命令

1
./nginx

这样我们就将环境全部搭建好了,最后就剩代码部署,然后调整 vhost 到合适配置就行。

最后将代码部署到服务器上就完成了。