滴滴夜莺04-源码编译部署

安装n9e

软件包:golang、n9eV2.2.1、redis、mysql

1.redis解压安装包并安装

tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

Redis没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。
如下图:

在这里插入图片描述

启动Redis

直接启动

直接运行redis-server即可启动Redis

[root@localhost bin]# redis-server

2、以后台进程方式启动redis

第一步:修改redis.conf文件

daemonize no

修改为

daemonize yes

第二步:指定redis.conf文件启动

`./redis-server /usr/local/redis-4.0.6/redis.conf`

./redis-cli -h 127.0.0.1 -p 6379 -a password

第三步:关闭redis进程

首先使用ps -aux | grep redis查看redis进程

[root@iZwz991stxdwj560bfmadtZ src]# ps -aux | grep redis
root     18714  0.0  0.1 141752  2008 ?        Ssl  13:07   0:00 ./redis-server 127.0.0.1:6379
root     18719  0.0  0.0 112644   968 pts/0    R+   13:09   0:00 grep --color=auto redis

使用kill命令杀死进程

[root@iZwz991stxdwj560bfmadtZ src]# kill 18714

3、设置redis开机自启动

1、在/etc目录下新建redis目录

mkdir redis

[root@iZwz991stxdwj560bfmadtZ etc]# mkdir redis

2、将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf

[root@iZwz991stxdwj560bfmadtZ redis]# cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf

3、将redis的启动脚本复制一份放到/etc/init.d目录下

[root@iZwz991stxdwj560bfmadtZ init.d]# cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd

4、设置redis开机自启动

先切换到/etc/init.d目录下

然后执行自启命令

[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redisd on
service redisd does not support chkconfig 

看结果是redisd不支持chkconfig

解决方法:

使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database

注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

在这里插入图片描述

再次执行开机自启命令,成功

[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redisd on

现在可以直接已服务的形式启动和关闭redis了

启动:

service redisd start

[root@izwz991stxdwj560bfmadtz ~]# service redisd start
Starting Redis server...
2288:C 13 Dec 13:51:38.087 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2288:C 13 Dec 13:51:38.087 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=2288, just started
2288:C 13 Dec 13:51:38.087 # Configuration loaded

关闭:

方法1:service redisd stop

[root@izwz991stxdwj560bfmadtz ~]# service redisd stop
Stopping ...
Redis stopped

方法2:redis-cli SHUTDOWN

2.离线安装MySQL

安装新版mysql前,需将系统自带的mariadb-lib卸载

[root@hadoop ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@hadoop ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
[root@hadoop ~]# rpm -qa|grep mariadb

在这里插入图片描述

解压安装包

tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述

安装解压包

mysql-community-common-5.7.20-1.el7.x86_64.rpm

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm

在这里插入图片描述

mysql-community-libs-5.7.20-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm

在这里插入图片描述

mysql-community-client-5.7.20-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm 

在这里插入图片描述

mysql-community-server-5.7.20-1.el7.x86_64.rpm

在安装之前需要安装libaio

[root@hadoop app]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64

如果不存需要下载离线包:
http://mirror.centos.org/centos/6/os/x86_64/Packages/

安装libaio库:

rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm(若在有网情况下可执行yum install libaio)

安装server

rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

在这里插入图片描述

初始化数据库

// 指定datadir, 执行后会生成~/.mysql_secret密码文件(5.7以后不在使用)
[root@slave mytmp]# mysql_install_db --datadir=/var/lib/mysql

// 初始化,执行生会在/var/log/mysqld.log生成随机密码
[root@slave mytmp]# mysqld --initialize

更改mysql数据库目录的所属用户及其所属组(没用创建mysql用户)

chown mysql:mysql /var/lib/mysql -R

授权

chmod -R 777 mysql

启动mysql

systemctl start mysqld.service

登录到mysql,更改root用户的密码

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述
在这里插入图片描述

set password=password('123456a?');

创建用户,及作权限分配

CREATE USER 'sunld'@'%' IDENTIFIED BY '123456a?'; 

GRANT ALL PRIVILEGES ON *.* TO 'sunld'@'%';

flush privileges;

在这里插入图片描述

远程登陆授权

grant all privileges on *.* to 'root'@'%' identified by '123456a?' with grant option;

flush privileges;

在这里插入图片描述

设置mysql开机启动

// 检查是否已经是开机启动
systemctl list-unit-files | grep mysqld

在这里插入图片描述

// 开机启动
systemctl enable mysqld.service

默认配置文件路径:

配置文件:/etc/my.cnf 
日志文件:/var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

3.离线安装nginx(rpm包)

n9e视频安装:

yum install -y nginx

cp nginx.conf /etc/nginx/nginx.conf

systemctl start nginx

systemctl enable nginx

建立nginx的yum仓库

rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

下载并安装nginx

yum install nginx

nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx

  1. 配置所在目录:/etc/nginx/

  2. PID目录:/var/run/nginx.pid

  3. 错误日志:/var/log/nginx/error.log

  4. 访问日志:/var/log/nginx/access.log

  5. 默认站点目录:/usr/share/nginx/html

4.离线安装yum

查看有无 yum安装包 ,有的话卸载:

查看:rpm -qa |grep yum

卸载:rpm -aq|grep yum|xargs rpm -e --nodeps

步骤如下

第一步:

​ http://mirrors.163.com/centos/6/os/x86_64/Packages/

​ 到上面这个网站去下载如下RPM包

​ python-iniparse-0.3.1-2.1.el6.noarch.rpm

​ yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm

​ yum-3.2.29-69.el6.centos.noarch.rpm

​ yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

​ 下载完成之后,用rpm命令进行安装,如下:

​ rpm -ivh --force --nodeps python-iniparse-0.3.1-2.1.el6.noarch.rpm
​ rpm -ivh --force --nodeps yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
​ rpm -ivh --force --nodeps yum-3.2.29-69.el6.centos.noarch.rpm yum-plugin-fa
stestmirror-1.1.30-30.el6.noarch.rpm

这里安装的时候需要注意,一定要加 --force --nodeps不然会报错安装不上

​ 到这一步了当你输入yum命令的时候出现如下错误:

在这里插入图片描述

第二步:

​ 根据上图的提示到 http://yum.baseurl.org/wiki

​ 下载yum-3.4.3.tar.gz ,放到你指定的目录下解压,解压命令如下:

​ tar -zxvf yum-3.4.3.tar.gz #解压后进到yum-3.4.3目录

​ 输入如下命令

​ ./yummain.py update 如下图:

在这里插入图片描述

注意红框中的操作,完成之后,你试着输入一下yum 就OK了,如下图:

在这里插入图片描述

5.离线安装tar

6.golang

下载go(我的当前目录是/data/work)
$wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
$tar -xvf go1.10.1.linux-amd64.tar.gz

设置环境变量
v i m / e t c / p r o f i l e 添 加 e x p o r t G O R O O T = / d a t a / w o r k / g o e x p o r t G O P A T H = / d a t a / w o r k / g o p a t h e x p o r t P A T H = vim /etc/profile 添加 export GOROOT=/data/work/go export GOPATH=/data/work/gopath export PATH= vim/etc/profileexportGOROOT=/data/work/goexportGOPATH=/data/work/gopathexportPATH=PATH: G O R O O T / b i n : GOROOT/bin: GOROOT/bin:GOPATH/bin

保存
esc
:wq

测试环境

创建目录 /data/work/gopath/src

$mkdir helloworld

$cd helloworld

$vim main.go

输入

package main
 
import "fmt"
 
func main() {
    fmt.Println("Hello, World!")
}

$go run ./main.go

7.n9e安装

# 该项目没有使用go module管理,需要放到github.com/didi下编译
mkdir -p $GOPATH/src/github.com/didi
cd $GOPATH/src/github.com/didi

# clone代码并编译打包,pack时会自动build,打包成一个tar.gz
git clone https://github.com/didi/nightingale.git
cd nightingale && ./control build && ./control pack
mysql -uroot -p < sql/n9e_hbs.sql
mysql -uroot -p < sql/n9e_mon.sql
mysql -uroot -p < sql/n9e_uic.sql

修改配置文件

配置文件在etc目录,着重看一下mysql.yml,修改mysql访问的用户名和密码,另外redis密码默认为空,如果您配置了redis的访问密码,需要对应的修改monapi和judge的配置文件,将redis密码配置好。另外在etc/address.yml下可以看到各个模块监听的端口,如果与本地其他服务端口冲突了,就需要手工修改一下啦。

启动各模块进程

发布包里默认提供了一个control脚本,用来启停服务,直接执行./control start all即可启动所有模块,./control status可以查看各模块进程是否都已启动,夜莺共有6个核心模块,注意一下进程数是否正确。最后安装一下nginx,nginx有个示例配置文件在etc/nginx.conf,注意修改pub目录指向真实路径。至此,单机版就部署成功了。访问nginx即可看到页面。如果发现nginx日志里出现权限报错,检查机器selinux配置,尝试关闭selinux解决。

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值