记录自己搭建Ubuntu18.04 Server的全部过程,有不足之处请见谅!!!
1、前置工作
本文做出以下假设:
- 您已熟悉Linux操作系统
- 您拥有(或能够独立创建)一台Ubuntu Server
本文采用Vmware 虚拟机创建Ubuntu 18.04 Server
- 镜像获取:Ubuntu 18.04.5 LTS (Bionic Beaver)
- Vmware:VMware15.5
- SecureCRT:SecureCRT
搭建Ubuntu18.04 Server 教程:VMware 安装 Ubuntu Server 18.04.5 LTS
2、Server准备工作
设置root密码:
sudo passwd root
更改镜像源:
备份源配置文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
在源配置文件前添加阿里云镜像源配置 :
sudo vim /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
执行更新命令 :
sudo apt-get clean
、sudo apt-get update
查看Java、Python、MySql、Tomcat、nginx、SqlServer环境
Java:
java -version
Python:
python 或 python3
MySql:
mysql -version
Redis:
redis-server -v
Tomcat:{待补充}
Docker:
docker -v
nginx:{待补充}
SqlServer:{待补充}
2.0 安装文件上传工具
1 |
|
2.1 安装Mysql环境
安装Mysql:
1
2apt-get install mysql-server
apt-get install mysql-client检测安装是否成功:
mysql
修改bind-address(允许远程主机访问):
vim /etc/mysql/mysql.conf.d/mysqld.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
# 注释掉绑定的ip地址mysql -u root -p123456 默认安装的话密码是任何字符都可以,也就是没有密码。
修改默认编码格式:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 更改前编码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25mysql> STATUS
--------------
mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper
Connection id: 6
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.31-0ubuntu0.18.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1 #
Db characterset: latin1 # 默认编码,需要修改为utf-8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 26 min 3 sec
Threads: 1 Questions: 15 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 0.009
--------------
mysql>* 更改:`root@ubuntu:vim /etc/mysql/mysql.conf.d/mysqld.cnf`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
character-set-server=utf8 # 添加该句
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1- 重启服务,更改后编码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25mysql> STATUS
--------------
mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.31-0ubuntu0.18.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 5 sec
Threads: 1 Questions: 5 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 1.000
--------------
mysql>授权远程登录:
1
2
3mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)1
2mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)进行远程连接: 使用Navicat进行连接,如果不能连接;请百度开放Ubuntu的3306端口。
修改MySql用户密码:{待补充}
2.2 安装Java环境
- 下载JDK
1 |
|
安装JDK
1
2
3
4
5#上传jdk到/export/software路径下去,井解压
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /export/servers/
mv jdk1.8.0_161 jdk配置JDK环境变量
1
2
3
4
5
6
7
8
9
10
11
12
13vi /etc/profile
添加以下内容:
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改完成之后记得source /etc/profle生效
source /etc/profileJDK环境验证
1
java -version
2.3 配置python环境
检测python3、pip3:
python3
、pip3 install numpy
安装python3、pip3:
apt-get install python3
、apt-get install python3-pip
收集和安装依赖:
1 |
|
安装conda环境:官网
选择合适的Anaconda版本地址:https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
下载安装包:
1
2
3cd /export/software/
wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
bash Anaconda3-4.4.0-Linux-x86_64.sh
一路回车;
修改环境变量:
1
vi ~/.bashrc
在bashrc文件的最后添加:export PATH=”/home/用户名/anaconda3/bin:$PATH”。(vi编辑器中按i进入编辑模式)
如:
export PATH="/root/anaconda3/bin:$PATH"
更新
.bashrc
使得环境变量生效:source ~/.bashrc
更改镜像源:
1
2
3
4
5
6修改了清华源,
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
升级conda:
1
2
3conda update conda
conda update anaconda
conda update python-
环境管理:
conda常用命令
- 查看当前系统下的环境
1
conda info -e
- 创建新的环境
1
2
3
4# 指定python版本为2.7,注意至少需要指定python版本或者要安装的包# 后一种情况下,自动安装最新python版本
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7- 环境切换
1
2
3
4# 切换到新环境# linux/Mac下需要使用source activate env_name
activate env_name
#退出环境,也可以使用`activate root`切回root环境
deactivate env_name移除环境
1
conda remove -n env_name --all
给某个特定环境安装package
1
conda install -n env_name pandas
查看已经安装的package
1
2
3conda list
# 指定查看某环境下安装的package
conda list -n env_name查找包
1
conda search pyqtgraph
更新包
1
2conda update numpy
conda update anaconda- 卸载包
1
conda remove numpy
2.4 Redis环境配置:here
安装redis:
1
$ sudo apt-get install redis-server
- 或者:
1
2
3
4$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz
解压:tar -zxf redis-5.0.5.tar.gz
进入redis目录:cd redis-5.0.5
编译:make配置:参照here
2.5 Tomcat :官网
下载Tomcat 9.0.38:
1
wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.tar.gz
解压到指定目录:
tar -zxvf apache-tomcat-9.0.38.tar.gz -C /export/servers/
重命名文件名:
mv apache-tomcat-9.0.38/ tomcat9
更改启动脚本
startup.sh
:1
2
3
4
5
6
7
8#set java environment
export JAVA_HOME=/export/servers/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT_HOME=/export/servers/tomcat9启动Tomcat:
./startup.sh
2.6 Docker 环境安装
安装参考:菜鸟教程
查看Linux的IP地址
1
ip addr
使用客户端连接Linux
2.6.1 在Linux上安装docker
步骤:
检查内核版本,必须是3.10及以上:
uname -r
启动docker:
systemctl start docker
查看docker版本:
docker -v
开机启动docker:
systemctl enable docker
停止docker:
systemctl stop docker
2.6.2 Docker常用命令&操作
2.6.2.1 镜像操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字 eg:docker search redis | 我们经常要去docker hub上检索镜像的详细信息,如镜像的tag |
拉取 | docker pull 镜像名:tag | :tag是可选的,tag表示标签 |
列表 | docker images | 查看所有的本地镜像 |
删除 | docker rmi images-id | 删除指定的本地镜像 |
2.6.2.2 容器操作
软件镜像(QQ安装程序)—-运行镜像—-产生一个容器(正在运行的软件,运行的QQ) ;
步骤:
- 搜索镜像:
docker search tomcat
- 拉取镜像:
docker pull tomcat
- 根据镜像启动容器:
docker run --name mytomcat -d tomcat:latest
- 查看运行中的容器:
docker ps
- 停止运行中的容器:
docker stop 容器的id
- 查看所有的容器:
docker ps -a
- 启动容器:
docker start 容器id
- 删除一个容器:
docker rm 容器id
- 启动一个做了端口映射的tomcat:
docker run -d -p 8888:8080 tomcat
- -d:后台运行
- -p:将主机端口映射到容器的一个端口 主机端口:容器内部端口
- 关闭Linux的防火墙:
- 查看防火墙状态:
service firewalld status
- 关闭防火墙:
service firewalld stop
- 查看防火墙状态:
- 查看容器的日志:
docker logs container-name/container-id
- 更多命令参看:[https: //docs.docker .com/engine/reference/commandline/docker/](https: //docs.docker .com/engine/reference/commandline/docker/)
- 可以参考每一个镜像的文档
2.6.2.3 安装MySql示例
1 |
|
- 错误的启动
1 |
|
- 正确的启动
1 |
|
- 做了端口映射
1 |
|
- 几个其他的高级操作
1 |
|
2.6.2.4 安装zookeeper
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
- zookeeper 是CP 强一致性的
访问hub.docker.com 主要是获得安装软件的信息及文档
- 安装步骤:
1 |
|
- 进入zookeeper shell终端
1 |
|
- 启动zookeeper 服务
1 |
|
- 启动客户端:
1 |
|
- 在客户端操作
1 |
|
- json解析后的内容
1 |
|
3、Linux系统目录结构
目录 | 说明 |
---|---|
/ | 虚拟目录的根目录,通常不会在这里存储文件 |
/bin | 二进制目录,存放用户级的GNU工具 |
/boot | 启动目录,存放启动文件 |
/dev | 设备目录,系统在这里创建设备节点 |
/etc | 系统配置文件目录 |
/home | 主目录,系统在这里创建用户目录 |
/lib | 库目录,存放系统和应用程序的库文件 |
/media | 媒体目录,可移动媒体设备的常用挂载点 |
/mnt | 挂载目录,另一个可移动媒体设备的常用挂载点 |
/opt | 可选目录,常用于存放第三方软件包和数据文件 |
/proc | 进程目录,存放现有硬件及当前进程的相关信息 |
/root | root用户的主目录 |
/sbin | 系统二进制目录,存放许多gnu管理员级工具 |
/run | 运行目录,存放系统运作时的运行时数据 |
/srv | 服务目录,存放本地服务的相关文件 |
/sys | 系统目录,存放系统硬件信息的相关文件 |
/tmp | 临时目录,可以在该目录中创建删除临时工作文件 |
/usr | 用户二进制目录,大量用户级的gnu工具和数据文件存储 |
/var | 可变目录,用以存放经常变化的文件,比如日志文件 |
个人目录
1
2
3
4
5
6
7mkdir -p /export/data # 存放一些数据文件
mkdir -p /export/software # 存放安装包
mkdir -p /export/servers # 软件安装目录:jdk、tomcat等
cd /home/username/ # 进入用户个人空间