# Linux服务器环境搭建

# 配置git

  1. yum -y install git //安装git
  2. git --version 查看git版本,//是否安装成功
  3. ssh-keygen -t rsa -C "1401271211@qq.com" 生成git秘钥
  4. cat /root/.ssh/gitee_id_rsa.pub
  5. 复制内容
  6. 把内容粘贴到https://gitee.com/profile/sshkeys
  7. ssh-agent bash
  8. ssh-add -k id_rsa
  9. ssh -T git@gitee.com
  10. 提示 Hi xxx! You've successfully authenticated, but GITEE.COM does not provide shell access.

# 配置node

  1. uname -a 查看服务器信息
  2. 打印出 Linux VM_0_7_centos 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 粗体部分代表服务器是64位
  3. wget https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz 下载 node
  4. tar xf node-v10.16.0-linux-x64.tar.xz 解压
  5. cd /usr/bin/node-v10.16.0-linux-x64 进入解压目录
  6. cd /usr/local/bin
  7. ln -s /usr/bin/node-v10.16.0-linux-x64/bin/node 注意这里有一个空格node 使用 ln 命令来设置软连接
  8. ln -s /usr/bin/node-v10.16.0-linux-x64/bin/npm注意这里有一个空格 npm 使用 ln 命令来设置软连接
  9. 服务器配置 安全组 (opens new window),开放需要的端口
  10. 测试服务器是否配置正常的代码
const http = require('http')
const os = require('os');
const hostname = os.networkInterfaces().eth0[0].address;
console.log(hostname,'hostname')
http.createServer(function(req,res) {
console.log(req.url)
  res.end('ok')

}).listen('8081',hostname,function(){
	console.log(8081)
}) 
1
2
3
4
5
6
7
8
9
10
11

# 安装mogodb

  1. 建立存放mongodb的数据库文件夹/project_caozepeng_front_end/project_data,和存放日志的文件夹/project_caozepeng_front_end/project_log/mongodb/logs
  2. wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.10.tgz 安装mongodb
  3. tar zxvf mongodb-linux-x86_64-4.0.10.tgz 解压
  4. cd mongodb-linux-x86_64-4.0.10/
  5. ln -s /src/mongodb-linux-x86_64-4.0.10/bin/* /usr/local/bin 使用 ln 命令来设置软连接 这样就可以在全局使用mongod 命令了
  6. mongo --version 查看mongo版本
  7. mongod --dbpath=/project_caozepeng_front_end/project_data 测试下看能不能启动
  8. pstree -p | grep mongod 查看 行程并以树状图显示
  9. pkill mongod

# mongodb 操作(mac本地模拟)

  1. 新建mongo.conf 并配置为以下
dbpath = /Users/zhuge1/学习/vuedata
#日志文件存放目录
logpath = /Users/zhuge1/logs/mongolog.log
#端口
port = 27017
#以守护进程的方式启用,即后台运行;默认false
fork = true
# 关闭web管理访问,默认关闭27018端口访问,这个是在prot端口上加1000
#httpinterface = true
#是否开启权限验证
auth = false
#绑定ip,让其能够通过外网访问, 0.0.0.0代表所有
bind_ip = 0.0.0.0
1
2
3
4
5
6
7
8
9
10
11
12
13
  1. mongod -f /Users/zhuge1/mongodb/bin/mongo.conf 开启服务
  2. 打开控制台输入 mongo 进入mongo shell
  3. use admin 切换至admin
  4. 创建超级管理员, 用于管理用户角色
添加超管用户root
db.createUser(
    {
        user:"root",
        pwd: "qwer1234!@#$",
        roles: [{ role: "root", db: "admin"}]
    }
)

db.createUser(
    {
        user:"caozepeng",
        pwd:"qwer1234!@#$",
        roles:[{
            role:"userAdmin",
            db:"admin"
            }
        ]
    }
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  1. 创建超级管理员,赋予用户所有数据库的userAdmin权限
db.createUser(
    {
        user:"userAdmin",
        pwd:"qwer1234!@#$",
        roles:[{
            role:"userAdminAnyDatabase",
            db:"admin"
            }
        ]
    }
);
1
2
3
4
5
6
7
8
9
10
11
  1. exit 退出mogno shell
  2. ps -ef | grep mongo 查看mongo的进程
  3. sudo kill 74316(pid)关闭mongo进程
  4. lsof -i tcp:27017 mac查看端口占用情况
  5. 将 mongod.conf 写入 auth = true
  6. mongod -f /Users/zhuge1/mongodb/bin/mongo.conf 重启服务
  7. 输入mongo, 进入mongo shell
  8. use admin 切换到admin
  9. db.auth('userAdmin','521kl...') 认证权限
  10. db.system.users.find() 查看用户
  11. use projectData 新建数据库
  12. 创建账户密码
db.createUser(
    {
        user:"projectData",
        pwd: "qwer1234!@#$",
        roles: [{ role: "readWrite", db: "projectData"}]
    }
)
1
2
3
4
5
6
7
  1. db.auth('projectData','projectData.')
  2. show collections 此时你要是没有集合的话,执行以下方法
  3. db.demo.insert({name:1}) 插入一个集合 demo
  4. show collections 会看到一个demo集合

# Nginx

  1. 小程序 xcx
  2. 公众号 gzh
  3. h5网站 h5
  4. pc站点 pc
  5. 静态资源

# 安装

  1. sudo yum install nginx 安装Nginx .
  2. nginx -v 查看nginx版本
  3. nginx -h 查看nginx的配置项 或者 nginx -V
  4. cd /etc/nginx 进入nginx安装目录
  5. cd conf.d/ 进入conf.d/ 文件夹
  6. pwd 查看当前所在目录
  7. kill -HUP 26733 优雅重启 或者 nginx -s reload
  8. kill -USR1 26733 修改日志文件,并重新写入到该文件 nginx -s reopen 重读配置
  9. nginx -t
  10. chmod -R 777 /data nginx权限不足

# 内置变量

$document_root $fastcgi_script_name $query_string $request_method $content_type $content_length $request_uri $document_uri $document_root $server_protocol $scheme $https if_not_empty $remote_addr $remote_port $server_addr $server_port $server_name
/usr/local/etc/nginx/static/cao/html /404.html - GET - - /static/imgs/timg.jpeg /404.html /usr/local/etc/nginx/static/cao/html HTTP/1.1 http if_not_empty 127.0.0.1 52858 127.0.0.1 8080 cao.com

# rewrite

  1. set 设置变量
  2. break 跳出rewrite
  3. if 条件
  4. rewrite 重写
  5. return 设置状态吗

# 日志分割

LOGPATH=/usr/local/etc/nginx/logs/access.log
BASEPATH=/usr/local/etc/nginx/backLogs/$(date +%Y%m)
mkdir -p $BASEPATH
bak=$BASEPATH/$(date +%d%H%M).access.log
mv $LOGPATH $bak
touch $LOGPATH
nginx -s reload
1
2
3
4
5
6
7
  1. crontab -e
  2. */1 * * * * sh /usr/local/etc/nginx/backLog.sh

# 文件目录

  1. /etc/nginx nginx 文件目录
  2. /run/nginx.pid nginx 的pid目录
  3. /var/log/nginx nginx日志的文件目录
  4. /usr/share/nginx/ 静态文件目录

# redis安装

  1. cd /src
  2. wget http://download.redis.io/releases/redis-5.0.5.tar.gz
  3. tar xzf redis-5.0.5.tar.gz
  4. cd redis-5.0.5
  5. make
  6. 如果报错
[root@VM_0_7_centos redis-5.0.5]# make
cd src && make all
make[1]: 进入目录“/src/redis-5.0.5/src”
    CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/src/redis-5.0.5/src”
make: *** [all] 错误 2
1
2
3
4
5
6
7
8
  1. yum install gcc-c++ yum安装gcc
  2. make distclean 清空上次编译失败残留文件 ==注意:必须清空后在编译及安装,s否则会报如下错误==
  3. make && make install 执行编译及安装
  4. cd /usr/local
  5. mkdir redis
  6. cd /src/redis-5.0.5/src
  7. cp redis-cli redis-server /usr/local/redis
  8. cd ..
  9. cp redis.conf /usr/local/redis
  10. 修改redis.conf
daemonize no => daemonize yes 表示后台启动
1
  1. redis-server redis.conf
  2. ps -A | grep redis

如果mac 不能make就 执行 sudo xcode-select -switch /

# 知识点

  1. redis-benchmark 压力测试
  2. redis-check-aof 备份文件
  3. redis-check-rdb
  4. npm install 没有权限的时候 npm install --unsafe-perm=true --allow-root;