我的Centos环境配置(清华源+vim+JDK8+nginx+Python3+pip3+virtualenv+virtualenvwrapper+MySQL+mycli+redis+MongoDB)

我的踩坑之路

当前配置包括(清华源+vim+JDK1.8+nginx+Python3+pip3+虚拟环境(virtualenv+virtualenvwrapper)+MySQL+mycli+redis)

Linux版本的选择

Ubuntu和Centos的区别简单来说就是Ubuntu系统自带图形化界面,而Centos是纯命令行模式,这里推荐Centos(根据视频老师说的以后工作接触到的公司服务器大多都是Centos),两者的命令也有些许区别。例如

sudo apt install [软件名]	#Ubuntu

sudo yum install [软件名]	#Centos

Centos7的配置

1.Centos和Xshell连接:

vi /etc/sysconfig/network-scripts/ifcfg-ens33
按i进入插入模式修改ONBOOT选项为
ONBOOT=yes

reboot重启

ip addr查看Centos的ip地址

然后Xshell连接Centos
以后的操作在Xshell中即可

2.Xshell默认的字体还是蛮小的,设置一下大小看的更舒服

Alt+P 选择外观 设置字体大小 推荐12+12

3.安装并设置vim

sudo yum vim 

vim的配置分两种,1:直接在更改/etc中的.vimrc文件。2:在当前用户的家目录下创建.vimrc文件,把配置内容写入其中。区别:在/etc中更改的话,会对所有的用户都生效,而在每个用户的家目录下新建.vimrc文件,则只对当前用户生效(更推荐)。

这里有个东西要注意一下,在Ubuntu系统中ll、la、ls都可以使用,并且默认是将隐藏文件一起查出来,而在Centos中只有ll、ls两个命令,默认不查询隐藏文件,要加上-a才可以显示隐藏文件

vim .vimrc

然后将下面的东西写进去,如果遇到错误的话,可以尝试把错误的那行删去或者把后面的注释删掉试试(有人反应遇到后面的注释会引发错误,但我没遇到)

set nocompatible " 关闭 vi 兼容模式
syntax on " 自动语法高亮
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set shiftwidth=4 " 设定 <<>> 命令移动时的宽度为 4
set softtabstop=4 " 使得按退格键时可以一次删掉 4 个空格
set tabstop=4 " 设定 tab 长度为 4
set nobackup " 覆盖文件时不备份
set autochdir " 自动切换当前目录为当前文件所在的目录
filetype plugin indent on " 开启插件
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set nowrapscan " 禁止在搜索到文件两端时重新搜索
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set noerrorbells " 关闭错误信息响铃
set novisualbell " 关闭使用可视响铃代替呼叫
set t_vb= " 置空错误铃声的终端代码
set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
set matchtime=2 " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start "不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\="" %0(%{&fileformat}\="" %{&encoding}\="" %c:%l="" %L%)\="" "="" 设置在状态行显示的信息="" set="" foldenable="" 开始折叠="" foldmethod="syntax" 设置语法折叠="" foldcolumn="0" 设置折叠区域的宽度="" setlocal="" foldlevel="1" 设置折叠层数为="" foldclose="all" 设置为自动关闭折叠="" nnoremap=""  @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo') " 用空格键来开关折叠

4.更新清华源+安装依赖

编辑 /etc/yum.repos.d/CentOS-Base.repo 文件,替换为下面的内容

vim /etc/yum.repos.d/CentOS-Base.repo

替换的内容:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#


[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-7

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-7



#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-7



#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-7

然后更新软件包缓存

sudo yum makecache

安装一些可能用到的依赖

sudo yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

5.安装JDK1.8

# 官网下载JDK1.8的压缩包 使用XFTP将压缩包传入Centos中
# 在/usr/local中新建java文件夹 将压缩包移动并解压到其中
cd /usr/local
sudo mkdir java
mv [filename] /usr/local/java
tar -zxvf [filename]
# 配置/etc/profile 在末尾加入以下内容
vim /etc/profile +

export JAVA_HOME=/usr/local/java/jdk1.8.0_101
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

# 使/etc/profile生效
source /etc/profile

# 查看是否安装成功
java -version

6.安装nginx

nginx位于第三方的yum源里面,不在centos官方yum源里面,所以安装之前先执行以下命令,

# EPEL即Extra Packages for Enterprise Linux的简称,是为企业级Linux提供的一组高质量的额外软件包。在这个额外的安装包里,我们能使用yum命令找到nginx、Python3...
sudo yum install epel-release
yum update
sudo yum install -y nginx # 安装nginx -y的意思是遇到询问y/N直接y

Centos中安装完nginx后,因为防火墙的缘故,即使启动了也不能访问到主页,查询网上的解决方法有两种

# 1.直接关闭防火墙
systemctl stop firewalld

# (推荐)2.使用命令放行80端口 需要使用root用户 su+输入密码切换
firewall-cmd --list-all # 查看开放的端口号
# 设置开放的端口号 在root用户下操作
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload # 重启防火墙

启动和关闭nginx

sudo systemctl start nginx # 启动nginx
sudo systemctl stop nginx # 关闭nginx
# 可以使用whereis nginx查看nginx的相关目录
# /usr/share/nginx/中存放着html等一些文件,就是访问成功后的那些主页

7.使用EPEL安装Python

Centos默认的是Python2版本,需要更新成3,而Ubuntu新版自带的是Python3.8,就不需要安装或者更新了。

# EPEL即Extra Packages for Enterprise Linux的简称,是为企业级Linux提供的一组高质量的额外软件包。在这个额外的安装包里,我们能使用yum命令找到nginx、Python3...
sudo yum install epel-release
yum update
sudo yum install python3 # 安装Python3

安装完后系统中不会默认删除原来的Python2版本,在使用时要Python3这样写,Python对应的是Python2版本。可以通过 ln -s…来删除原来Python的默认指向,在新建一个Python指向Python3(具体叫啥忘了,类似于快捷方式)

使用sys.path可以查看python包和模块的存放路径。

import sys
print(sys.path)

8.安装pip 有问题

pip是为了更方便的安装Python中的一些框架和组件(pygame、requests等)

sudo yum install python3-pip
sudo pip3 install --upgrade pip
# 这里我pip升级失败了 网速问题 但是感觉不升级也没有影响

9.虚拟环境管理

  • 安装virtualenv
sudo pip3 install virtualenv
  • 安装virtualenvwrapper
sudo pip3 install virtualenvwrapper

# 在~/.bashrc文件下添加以下内容
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=~/.envs
source /usr/local/bin/virtualenvwrapper.sh

# 添加完后执行下面命令
source ~/.bashrc


mkvirtualenv test  # 创建并切换到test虚拟环境
deactivate  # 离开test虚拟环境
rmvirtualenv test # 删除test虚拟环境
workon demo # 切换到demo虚拟环境
pip3 --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
# 使用这个命令来下载 速度快到飞起hhh 忘了从哪的评论区拿来的了 只能在这隔空感谢了

10.安装mysql

# 没有wget命令的话可以执行下面的命令安装
sudo yum -y install wget

# 下载MySQL仓库
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

# 安装mysql repository
sudo yum install mysql80-community-release-el7-3.noarch.rpm

# 默认安装的mysql版本是8.0,而我们在开发中常用的是5.7版本,所以需要修改配置文件,默认安装5.7版本。使用 vim vim /etc/yum.repos.d/mysql-community.repo 命令修改 mysqlcommunity.repo 文件。将文件中,mysql80的enable值改为0,mysql57的enable值改为1.
vim /etc/yum.repos.d/mysql-community.repo

# 安装MySQL数据库
sudo yum install mysql-community-server

# 开启MySQL服务:CentOS7 : systemctl start|stop|restart|status mysqld
sysctmctl start mysqld

# 在其他版本的Linux里,root用户的默认密码是空,可以不使用密码直接登录。但是在CentOS7里,
# mysql安装完成以后,会生成一个临时密码,我们需要通过命令查看到这个默认密码。
sudo cat /var/log/mysqld.log |grep password

# 使用root用户连接数据库
# mysql -hloaclhost -uroot -p123456 -P3306
# 1. -h : host(ip地址) localhost = 127.0.0.1
# 2. -u : username(用户账户)
# 3. -p : password(密码)
# 4. -P : port(端口, 默认端口3306)
mysql -uroot -p

# 设置root用户及密码 密码最好大小写+符号 不然会提示不满足条件
alter user root@localhost identified with mysql_native_password by '密码';

# 创建一个用户 允许该用户通过主机远程登录
GRANT ALL PRIVILEGES on *.* to '用户名'@'%' IDENTIFIED BY "密码" WITH GRANT OPTION;

# 修改mysql配置文件  Centos7.7 配合文件保存在 /etc/my.cnf 将 bind-address=127.0.0.1 代码注释掉(如果这段代码存在的话),让计算机允许mysql远程登录
sudo vim /etc/my.cnf

# 打开服务器的 3306 端口 使用客户端远程登录到mysql数据库
mysql -uysx -p3306 -p

# Navicat Premium 连接MySQL
# 输入Centos的ip地址和用户名密码即可
# MySQL默认有四个库(information_schema、performance_schema、mysql、sys) 不要删 删了容易出问题!!!!!!

# 直接连接容易连接不上 原因嘛 和上面的nginx一样 防火墙将端口号挡住了 可以选择直接关闭防火墙 或者开启端口号(需要在root用户下进行) 这里给出开启3306端口号的办法 关闭防火墙见上面nginx中配置
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload # 重启防火墙

11.安装mycli

# 使用pip命令安装
sudo pip3 install mycli
# 这里没有想着用上面提到的那个源进行下载(忘了) 有兴趣可以试试 直接下载我感觉蛮慢的

# 使用mycli登录MySQL
mycli -uysx

# 在进行操作之后遇到(END)按q退出

# 开启mycli多行模式(配置家目录下的.myclirc文件)
vim ~/.myclirc
# 将文件中multi_lines=False改为等于True
# 如果使用mycli删除正在使用的数据库 会报错误(类似于我正用着突然把他删了 但是不影响库的删除 忽略就好)

12.Redis的安装及配置

如果安装的redis版本不是6或以上的话,就不需要升级gcc版本,安装就简单一些,附上redis-5.0.8的下载路径

推荐网站:redis命令参考,里面可以查看redis的各种命令

redis的安装

# redis-5.0.8.tar.gz
http://101.44.1.120/files/318700000890F623/download.redis.io/releases/redis-5.0.8.tar.gz

# 直接安装 但是版本不是新的 而且配置的时候目录会有差异(不推荐) 此时的新版本是6.0.10
yum install redis

# 使用源码安装
wget https://download.redis.io/releases/redis-6.0.10.tar.gz
tar -zxvf redis-6.0.10.tar.gz
cd redis-6.0.10.tar.gz
sudo make && sudo make install # 不出意外的话 这里会爆红 因为我们安装的是redis是6.0版本 而6.0版本需要gcc 5.3版本以上

gcc -v # 查看当前gcc版本 虽然上面有安装过gcc依赖 但是查看可知gcc是4.8.5版本 需要升级gcc
# 这里可能要在root用户下进行升级 我试了在普通用户下升级没有成功
sudo yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash
# 安装完成后在执行make命令 安装成功
make && sudo make install

redis的配置

# 因为redis.conf以后也会用到 建议将其移动到/usr/local/etc中
sudo mv redis.conf /usr/local/etc/


# 查看redis的源代码目录下的redis.conf文件
vim redis.conf


# 将 Redis 服务绑定到指定的IP地址和端口
bind 127.0.0.1# 68行 127.0.0.1代表只能本机登录
port 6379 # 91行 6379是其默认端口号 远程连接时需要关闭防火墙或者打开6379端口号 具体参考上述的nginx或者mysql(都有提及)


# 修改daemonize no 为 daemonize yes 设置后台运行 (以守护进程方式运行)
# 简单来说就是不更改的话 你启动服务器后当前的连接窗口就不能在操作了你需要重新开一个连接窗口执行redis-cli进入客户端 你也可以不设置先运行一下 在设置完运行一下看看差别
daemonize yes # 224行 守护进程 在后台运行 记得重启一下


# 设置日志级别, 可选值: (debug: 调试, verbose: 详细, notice: 通知, warning: 警告) 从左到右级别越来越低
# 暂时可以不做改动(可能还没学到那个地步呢)
loglevel notice # 225行
logfile "" # 260行 在“”中添加路径 会将日志内容打印到路径的文件中


# 配置数据库的数量, 默认为 16 个 (不用做改动)
databases 16 # 275行


# redis是采取了内存换效率 所以不用来保存大量数据 只保存部分重要数据 大量数据的存储还是在MySQL中 RDB保存数据时可能会出现漏掉的情况 因此可以采用RDB+AOF 读取RDB文件 读取AOF文件将漏掉的数据写入 然后删除AOF文件(很大)

# 数据写入规则 307~309行(不用做改动)
# redis持久化的rdb方式(默认,直接镜像内存里的数据,把内存里的数据保存到dump.rdb文件中)
save 900 1     # 900 秒 (15 分钟) 内修改过 1 个 key, , 写入一次数据库
save 300 10    # 300 秒 (5 分钟) 内修改过 10 个 key, 写入一次数据库
save 60 10000  # 60 秒 (1 分钟) 内修改过 10000 个 key, 写入一次数据库
# 配置redis的持久化机制-RDB方式
rdbcompression yes   # 330行 压缩 RDB 文件
rdbchecksum yes      # 339行 对 RDB 文件进行校验
dbfilename dump.rdb  # 342行 RDB 数据库文件的文件名
dir /var/local/redis # 365行 RDB 文件保存的目录 记得新建文件夹


# Redis的持久化机制-AOF 
# 优点:适合保存增量数据,数据不丢失。缺点:文件体积大,恢复时间长
appendonly no # 1094行 要使用的话这里要改成yes 同时rdbcompression改为no
appendfilename "appendonly.aof" # 1098行
# AOF(Append only file)持久化,将修改的每一条指令记录进appendonly.aof中,需要修改配置文件,来打开aof功能。
appendfsync always # 1123行 每次有新命令追加到aof文件时就执行一个持久化,非常慢但是安全
appendfsync everysec # 1124行 每秒执行一次持久化,足够快(和使用rdb持久化差不多)并且在故障时只会丢失1秒钟的数据
appendfsync no # 1125行 从不持久化,将数据交给操作系统来处理。redis处理命令速度加快但是不安全。






# 启动redis时加载配置项 /usr/local/etc/redis.conf
redis-server /usr/local/etc/redis.conf
# 查看运行情况
ps -aux|grep redis
# 启动客户端 如果没有反应的话 是因为你修改了daemonize值后没有重启server 重启一下就好了连接终端就好了
redis-cli

远程连接redis注意事项

# 1.6379端口可能未打开 root用户下操作
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload # 重启防火墙

# 2.redis.conf配置文件中绑定了127.0.0.1 即只允许本机登录 将它注释掉
# bind 127.0.0.1 # 68行

# 3.redis.conf配置文件中默认开启保护模式 将其值设为no
protect-mode no # 87行

13.MongoDB的安装

# 给MongoDB配置yum源(如果你直接yum安装显示没有安装包的话) 按道理来说上面我们已经安装过EPEL扩展包了 可以找到源才对 搞不清楚怎么回事 有佬儿晓道的话还请教教我
cd /etc/yum.repos.d/
touch mongodb-3.4.repo
vim mongodb-3.4.repo

# 将下列内容插入进去
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc


# yum方式安装MongoDB
sudo yum install mongodb-org -y

# 配置项在/etc/mongod.conf
23   fork: true  # 默认在后台运行 False的话建议改为True
28   port: 27017 # 默认端口号              
29   bindIp: 127.0.0.1  # 绑定ip 127.0.0.1表示只能本机登录 远程连接需要注释掉
14   dbPath: /var/lib/mongo # 存储位置 没有的话要在相应的位置建立mongo文件夹

# 启动MongoDB服务器 使用root用户启动 不然报错
mongod -f /etc/mongod.conf
# 启动MongoDB客户端
mongo
# 关闭mongo服务器
use admin
db.shutdownServer();

ps:
2021/2/2 0:52 暂时写到这里,后续有新的东西会接着更新
2021/2/2 11:10 更新一些mycli的小细节
2021/2/4 22:50 更新redis安装及配置
2021/2/5 12:12 更新MongoDB相关

  • 1
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论 4

打赏作者

shuxin57

你的鼓励是我最大的动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值