基础配置

包含软件更新,配置swap分区,配置SSH免密登陆

软件更新

CentOS 7很多自带类库比较老旧,使用前可根据需要更新。

更新自带类库命令

yum -y update

配置swap分区

购买的云主机配置较低,因此开启swap还是很有必要的。阿里云默认没有开启swap,需要手工配置

查看swap分区状态

查看当前系统中是否已经启用swap分区

cat /proc/swaps   
top

创建swap文件

如果没有启用swap分区功能,则新建一个专门的文件用于swap分区

dd if=/dev/zero of=/data/swap bs=512 count=8388616 

注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4294971392,即4GB

swap文件转为分区

通过mkswap命令将上面新建出的文件做成swap分区

mkswap /data/swap 

配置分区参数

查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成30或者60

cat /proc/sys/vm/swappiness   
sysctl -a | grep swappiness    
sysctl -w vm.swappiness=60

注:若想永久修改,则编辑/etc/sysctl.conf文件

启用交换分区

启用此交换分区的交换功能

swapon /data/swap   
echo "/data/swap swap swap defaults    0  0" >> /etc/fstab

配置SSH免密登陆

SSH免密登陆在使用VS Code远程开发时相当有用,不用再连续输两次密码了,,

打开git bash

生成公私钥文件

ssh-keygen -t rsa

三次回车,在%userprofile%/.ssh/下会生成

id_rsa # 生成的私钥文件
id_rsa.pub # 生成的公钥文件

上传文件

id_rsa.pub上传至需要免密登陆的服务器的~/.ssh/目录。

追加到authorized_keys文件里

使用以下命令追加到authorized_keys文件里

cat id_rsa.pub >> authorized_keys

常用软件安装

git安装

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码

1.安装依赖库

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

2.下载源码

wget -O git-2.23.0.tar.gz https://codeload.github.com/git/git/tar.gz/v2.23.0

3.编译并安装

tar -zxf git-2.23.0.tar.gz
cd git-2.23.0
make prefix=/usr/local all
sudo make prefix=/usr/local install

4.测试git

git --version

docker安装

包含docker,mysql,redis,nginx,rabbitmq

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。本文介绍 Docker CE 的安装使用。

安装docker

1.安装必要的依赖库

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.更新yum缓存

sudo yum makecache fast

4.安装docker-ce

sudo yum -y install docker-ce

5.启动docker后台服务

sudo systemctl start docker

6.测试docker安装

docker run hello-world

配置docker镜像加速器

使用的是阿里云的镜像加速器

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://0sfv2fhl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

mysql安装

docker安装mysql

1.拉取镜像(5.7版本)

docker pull mysql:5.7

2.启动mysql

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

redis安装

docker安装redis

1.拉取镜像(最新版本)

docker pull redis

2.启动redis

docker run --name redis -p 6379:6379 -d redis redis-server

rabbitmq安装

docker安装rabbitmq

1.拉取镜像(最新版本)

docker pull rabbitmq:management

2.启动rabbitmq

docker run -d --hostname my-rabbit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

nginx安装

docker安装nginx

1.创建webserver文件夹并cd到文件下

  • 创建webserver文件夹
mkdir -p /usr/local/webserver
  • cd到webserver文件夹
cd /usr/local/webserver

2.拉取镜像(最新版)

docker pull nginx

使用nginx默认配置启动一个nginx容器实例

docker run --name nginx -p 80:80 -p 443:443 -d nginx

3.部署nginx

  • 创建nginx运行使用的用户www
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
  • 创建目录nginx,用于存放网页,日志,配置文件
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
  • 创建https证书文件夹
mkdir -p ~/nginx/conf/cert
  • 上传证书文件 最终目录结构
nginx
|__ ...
|__ www
|__ logs
|__ conf
    |  
    |__ nginx.conf
    |
    |__ cert
            |__ a.key
            |__ a.pem
  • docker ps查找容器ID
docker ps
  • 将nginx默认配置文件拷贝到本地当前目录下的conf目录
docker cp 容器ID:/etc/nginx/nginx.conf ~/nginx/conf
  • nginx.conf修改为如下
user www www;
worker_processes 2;
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include mime.types;
  default_type application/octet-stream;
  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" $http_x_forwarded_for';

  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;

  sendfile on;
  tcp_nopush on;
  keepalive_timeout 60;
  tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types text/plain application/x-javascript text/css application/xml;
  gzip_vary on;


server
  {
    listen 80;
    server_name www.ihasy.com;
    rewrite ^(.*) https://$server_name$1 permanent;
  }

 server
  {
    listen 443 ssl;
    server_name www.ihasy.com;
    ssl_certificate   cert/a.pem;
    ssl_certificate_key  cert/a.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location /
    {
      proxy_pass http://localhost:8000;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
    {
      expires 30d;
    }
    location ~ .*\.(js|css)?$
    {
      expires 15d;
    }
    access_log off;
  }

}
  • 部署命令
docker run -d -p 80:80 -p 443:443 --name nginx -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

开发环境安装

Python环境安装

python使用anaconda作为开发环境,优点是多python版本共存,便于管理。

anaconda环境安装

1.下载安装包

wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh

2.安装

bash Anaconda3-2019.07-Linux-x86_64.sh

3.配置环境变量

安装文件会自动设置环境变量,需要source一下使其生效

source $HOME/.bashrc

4.验证安装

conda list

anaconda基本用法

1.激活默认环境

conda activate

2.创建新的虚拟环境dev,并指定python版本为3.7

conda create -n dev python=3.7

3.激活创建的虚拟环境dev

conda activate dev

4.查看conda环境

conda dev list

5.导出conda环境

conda env export >dev.yaml

需要重新创建环境使用

conda env create -f dev.yaml

配置conda镜像源

  1. 配置conda源,使用清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
  1. conda第三方源
  • Conda Forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  • msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  • bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  • menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  • pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/

Golang环境安装

包括golang开发环境安装,包管理工具go mod配置等

golang环境安装

1.cd到/usr/local文件夹

cd /usr/local

2.下载安装包

wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz

3.解压压缩文件

tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz

4.创建/usr/local/go文件夹

mkdir -p /usr/local/go

5.配置环境变量

vim /etc/profile

末尾添加上

export PATH=$PATH:/usr/local/go/bin

6.测试是否安装成功

go env

配置golang包管理工具go mod

因网络原因,一些包下载会非常缓慢,甚至golang官网都上不去。。。

配置goproxy
vim $HOME/.bashrc

末尾加上

# Enable the go modules feature
export GO111MODULE=on
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.io
基本用法
  • 初始化项目
go mod init <project-name>
  • 分析项目包依赖
go mod tidy
  • 将本项目的依赖包放到vendor目录下
go mod vendor
踩坑笔记

在第二步分析项目包依赖时可能会遇到"unexpected module path",这是引用包中路径包含大写字母,,,

以"github.com/Unknwon/com"包为例,解决方法为在go.mod文件中用replace将路径中的大写替换为小写。

replace github.com/Unknwon/com => github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e

Node.js环境安装

包含node.js,cnpm,yarn,pm2安装

node.js安装

1.下载源码

cd /usr/local/src/
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz

2.解压源码

tar zxvf node-v0.10.24.tar.gz

3.编译安装

cd node-v0.10.24
./configure --prefix=/usr/local/node/0.10.24
make
make install

4.配置环境变量

vim /etc/profile

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/usr/local/node/0.10.24
export PATH=$NODE_HOME/bin:$PATH

5.使配置文件生效

source /etc/profile

6.测试是否安装成功

node -v

cnpm安装

cnpm主要是解决国内npm下载包缓慢的问题

npm install -g cnpm --registry=https://registry.npm.taobao.org

yarn安装

yarn是Google,Facebook等公司力推的新一代node.js包管理工具

1.安装yarn

npm install -g yarn --registry=https://registry.npm.taobao.org

2.配置yarn源

yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

pm2安装

pm2是node.js编写的进程守护工具

1.安装

cnpm install -g pm2

2.基本用法

  • 启动
pm2 start cnpm --watch --name "ihasy" -- run start
  • 应用列表
pm2 list
  • 停止所有
pm2 stop all
  • 删除所有
pm2 delete all
  • 序列化进程
pm2 save
  • 开机自启动
pm2 startup [platform]
  • 对启动实例进行扩展
pm2 scale ihasy 8