基础配置
包含软件更新,配置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-devel2.下载源码
wget -O git-2.23.0.tar.gz https://codeload.github.com/git/git/tar.gz/v2.23.03.编译并安装
tar -zxf git-2.23.0.tar.gz
cd git-2.23.0
make prefix=/usr/local all
sudo make prefix=/usr/local install4.测试git
git --versiondocker安装
包含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 lvm22.添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.更新yum缓存
sudo yum makecache fast4.安装docker-ce
sudo yum -y install docker-ce5.启动docker后台服务
sudo systemctl start docker6.测试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 dockermysql安装
docker安装mysql
1.拉取镜像(5.7版本)
docker pull mysql:5.72.启动mysql
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7redis安装
docker安装redis
1.拉取镜像(最新版本)
docker pull redis2.启动redis
docker run --name redis -p 6379:6379 -d redis redis-serverrabbitmq安装
docker安装rabbitmq
1.拉取镜像(最新版本)
docker pull rabbitmq:management2.启动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:managementnginx安装
docker安装nginx
1.创建webserver文件夹并cd到文件下
- 创建webserver文件夹
mkdir -p /usr/local/webserver- cd到webserver文件夹
cd /usr/local/webserver2.拉取镜像(最新版)
docker pull nginx使用nginx默认配置启动一个nginx容器实例
docker run --name nginx -p 80:80 -p 443:443 -d nginx3.部署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.pemdocker 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.sh2.安装
bash Anaconda3-2019.07-Linux-x86_64.sh3.配置环境变量
安装文件会自动设置环境变量,需要source一下使其生效
source $HOME/.bashrc4.验证安装
conda listanaconda基本用法
1.激活默认环境
conda activate2.创建新的虚拟环境dev,并指定python版本为3.7
conda create -n dev python=3.73.激活创建的虚拟环境dev
conda activate dev4.查看conda环境
conda dev list5.导出conda环境
conda env export >dev.yaml需要重新创建环境使用
conda env create -f dev.yaml配置conda镜像源
- 配置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- 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/local2.下载安装包
wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz3.解压压缩文件
tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz4.创建/usr/local/go文件夹
mkdir -p /usr/local/go5.配置环境变量
vim /etc/profile末尾添加上
export PATH=$PATH:/usr/local/go/bin6.测试是否安装成功
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-757f69c95f3eNode.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.gz2.解压源码
tar zxvf node-v0.10.24.tar.gz3.编译安装
cd node-v0.10.24
./configure --prefix=/usr/local/node/0.10.24
make
make install4.配置环境变量
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:$PATH5.使配置文件生效
source /etc/profile6.测试是否安装成功
node -vcnpm安装
cnpm主要是解决国内npm下载包缓慢的问题
npm install -g cnpm --registry=https://registry.npm.taobao.orgyarn安装
yarn是Google,Facebook等公司力推的新一代node.js包管理工具
1.安装yarn
npm install -g yarn --registry=https://registry.npm.taobao.org2.配置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 -gpm2安装
pm2是node.js编写的进程守护工具
1.安装
cnpm install -g pm22.基本用法
- 启动
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