Bootstrap

Linux服务器初始化之环境安装(全)持续更新ing

目录

第一章   《Nginx》

1、安装GCC、automake、pcre、zlib和openssl

 2、下载Nginx服务器并解压

3、安装Nginx服务器

4、修改nginx.conf文件

5、启动Nginx服务器

6、访问服务器地址

解决 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

第二章   《mysql》

1、查看是否已经安装mysql

2、打开网址:https://dev.mysql.com/downloads/repo/yum/

3、找到对应linux的版本进行下载

4、下载完成后,复制下载的文件的全名:mysql80-community-release-el8-4.noarch.rpm 【不一定相同,复制自己的】

5、下载和安装mysql源

6、安装mysql

7、查看是否安装完成

8、启动mysql

【CentOS8安装MySQL报错,解决Failed to start mysqld.service: Unit not found 】

9、查看mysql运行状况

 10、在客户端测试与数据库服务器的连通性:(PING)

第三章   《java》

方式一:yum方式下载安装

方式二、官网下载jdk,ftp上传服务器解压安装

 方式一:yum卸载Java

第四章   《redis》

第五章   《docker部署java项目》

方法一

方法二

 docker:共享宿主机的jdk

第六章   《安装Git详细步骤》


环境声明:Linux服务器操作系统CentOS8.2+Docker20

第一章   《Nginx》

Nginx版本:1.20.2(Linux)

安装步骤:

1、安装GCC、automake、pcre、zlib和openssl

为编译Nginx源码,我们需要标准的GCC编译器(GNU Compiler Collection,自由的类UNIX及Mac OS X操作系统的标准编译器),另外,我们需要通过Automake工具,完成自动创建Makefile的工作,除此以外,Nginx的一些模块还需要依赖其他第三方库,通常有pcre库(支持rewrite模块)、zlib库(支持gzip模块)和openssl库(支持ssl模块)。

可以通过如下指令去查看Linux服务器上是否已经安装pcre、zlib和openssl

//查看openssl
rpm -qa openssl
 
//查看zlib
rpm -qa zlib
 
//查看pcre
rpm -qa pcre

本机上因为已经安装了以上三个第三方库,所以显示如下:

如果没有安装以上三个库,鉴于以上Nginx运行的需求,我们需要执行以下代码:

yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel

 2、下载Nginx服务器并解压

下载Nginx服务器本文提供了两种方式:

A、通过官网进行下载,进入Nginx官网,网址:http://nginx.org/en/doload.html,本文Nginx版本为1.20.2,可以选择对应的版本进行下载。

B、通过Linux进行下载,指令代码:wget http://nginx.org/download/nginx-1.20.2.tar.gz。

本文通过第二种方式进行下载。

//进入opt文件夹
cd /opt
 
//创建Nginx文件夹
mkdir Nginx
 
//下载Nginx服务器文件
wget http://nginx.org/download/nginx-1.20.2.tar.gz
 
//解压文件
tar -xvf nginx-1.20.2.tar.gz

解压完成后/opt/nginx文件夹下多出一个文件夹nginx-1.20.2,该文件夹下包含如下文件:

auto:     存放了大量脚本文件,和configure脚本程序有关。

conf:     存放了Nginx服务器的配置文件,包含了Nginx服务器的基本配置文件和对部分特性的配置文件。

configure:Nginx服务器的自动脚本程序,运行configure自动脚本将会完成两项工作:
            1、检查环境,根据环境检查结果生成C代码;
            2、生成编译代码需要的makefile文件。

html:      存放了两个后缀名为.html的静态文件。

man:       存放了Nginx服务器的帮助文档,可通过 man nginx进行查看。

src:       存放了Nginx服务器的所有源代码。

3、安装Nginx服务器

(注意:此步骤在运行.configure时可能不成功,不成功的原因基本在于pcre、zlib或openssl未安装成功,可以重新进行安装)

// opt/Nginx文件夹下创建新文件夹nginx-1.20.2_install
cd /opt/nginx
mkdir nginx-1.20.2_install
 
//进入之前解压后得到的文件夹nginx-1.16.1
cd nginx-1.20.2
 
//运行configure脚本程序,可以直接运行./configure,也可以通过--prefix=path 指定nginx的安装目录
./configure --prefix=/opt/nginx/nginx-1.20.2_install
 
//运行完成后,该文件夹下多出一个文件---Makefile,此时执行make指令进行源代码编译,编译过程中屏幕会有编译全过程
make
 
//编译完成后,执行make的install命令安装Nginx服务器
make install

执行完成make install指令后,可以将工作目录定位到我们的安装目录,也就是上述的/opt/nginx/nginx-1.20.2_install文件夹,通过ls -l指令,可以看到该文件夹下出现以下几个文件夹:

conf:该目录存放了Nginx的所有配置文件,该文件夹下包含nginx.conf文件,它是Nginx服务器的住配置文
      件,其他文件则是用    来配置Nginx的相关功能。

html:该目录存放了Nginx服务器在运行过程中调用的一些html文件。

logs:该目录存放了Nginx服务器的日志。

sbin:该目录中只包含了一个文件-nginx,它就是Nginx服务器的主程序。

4、修改nginx.conf文件

// 修改nginx.conf文件中端口,如修改成81
cd /opt/nginx/nginx-1.20.2/conf

vim nginx.conf

修改完成后如下图所示:

5、启动Nginx服务器

//在启动服务器之前,我们可以通过如下指令来查看Nginx服务器配置文件是否有语法错误:
//绝对路径
/opt/nginx/nginx-1.20.2_install/sbin/nginx -t
 
//在nginx-1.20.2_install文件夹中时的相对路径
./sbin/nginx -t
 
//通过如下指令可以查看Nginx服务器版本
./sbin/nginx -v
 
//使用默认配置启动Nginx
./sbin/nginx
 
//查看Nginx进程状态
ps -ef|grep nginx
 
//停止Nginx服务器
//绝对路径
/opt/nginx/nginx-1.20.2_install/sbin/nginx -s stop
 
//nginx-1.20.2_install文件夹下相对路径
./sbin/nginx -s stop
 
//重启Nginx服务器
/opt/nginx/nginx-1.20.2_install/sbin/nginx -s reopen
 
//重新载入配置文件
/opt/nginx/nginx-1.20.2_install/sbin/nginx -s reload

6、访问服务器地址

此处如果访问时无法连接,可能是服务器安全策略的问题,可通过百度自行解决。

小插曲:

解决 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

使用/usr/local/nginx/sbin/nginx -s reload 重新读取配置文件出错,或者通过修改环境变量

[root@localhost nginx]/usr/local/nginx/sbin/nginx -s reload
提示 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

[root@localhost nginx]# cd logs
[root@localhost logs]# ls
access.log  error.log  nginx-access.log  nginx_error.log
果然没有/usr/local/nginx/logs/nginx.pid 文件(或者有nginx.pid文件但是没有内容)

解决方法:用-c这个参数制定一下配置文件的位置
[root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

第二章   《mysql》

MySQL版本:mysql80-community-release-el8-4.noarch.rpm(Linux)

使用yum进行安装

1查看是否已经安装mysql

[root@VM-12-14-centos /]# rpm -qa|grep mysql #无输出说明没有安装

2、打开网址:https://dev.mysql.com/downloads/repo/yum/

3、找到对应linux的版本进行下载

查看自己的版本:

[root@VM-12-14-centos /]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

根据版本下载对应文件:

点击跳过,开始下载:

4、下载完成后,复制下载的文件的全名:mysql80-community-release-el8-4.noarch.rpm 【不一定相同,复制自己的】

5、下载和安装mysql源

[root@VM-12-14-centos /]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

检查是否安装成功:
执行成功后会在/etc/yum.repos.d目录下生成两个repo文件mysql-community.repo及 mysql-community-source.repo

6、安装mysql

[root@VM-12-14-centos /]# sudo yum install mysql-community-server

该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等。安装时间会比较长。

7、查看是否安装完成

[root@VM-12-14-centos /]# rpm -qa|grep mysql     #有输出即安装完成

8、启动mysql

[root@VM-12-14-centos /]# systemctl start mysqld.service

【CentOS8安装MySQL报错,解决Failed to start mysqld.service: Unit not found 】

#启动mysql时会提示找不到对应的服务
[root@VM-12-14-centos /]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
Failed to restart mysqld.service: Unit mysqld.service not found.

[root@VM-12-14-centos /]# systemctl restart mysqld.service

原因是centos8不支持mysql,需要更换成MariaDB

首先需要安装mariadb-server

[root@VM-12-14-centos /]# yum install mariadb-server -y

启动服务

[root@VM-12-14-centos /]# systemctl start mariadb.service

添加到开机启动

[root@VM-12-14-centos /]# systemctl enable mariadb.service

centos8 mysqld.log文件不存在无法查看初始密码,默认密码为空直接回车

 

 MariaDB选择mysql(use mysql)

 修改密码:

1、用户root添加密码
MariaDB [mysql]> update user set password=password("你的密码")where user='root';
Query OK, 0 rows affected (0.00 sec)

Rows matched: 4 Changed: 0 Warnings: 0

2、赋予权限刷新

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

3、退出,重新登录

MariaDB [mysql]> exit

Bye

4、尝试无密码是否可以登录

[root@localhost etc]# mysql

提示错误

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

7、输入密码登陆

[root@localhost etc]# mysql -u root -p

9、查看mysql运行状况

 10、在客户端测试与数据库服务器的连通性:(PING)

为其他主机远程连接数据库开放访问权限,登入数据库:

ps:此处我已经开放了权限

MariaDB [mysql]> select user,password,host from user;  //查看user,password,host这三个字段的权限分配情况
//允许用户root使用密码(***)在任何主机上连接该数据库,并赋予该用户所有权限。
MariaDB [mysql]> grant all privileges on *.* to root@"%" identified by "你的密码";

Query OK, 0 rows affected (0.01 sec)

最后配置好权限之后不应该忘记刷新使之生效
MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> select user,password,host from user;

数据库的访问权限就设置完毕。 外网连接访问成功。

第三章   《java》

Java版本:jdk-8u333-linux-x64(Linux)

方式一:yum方式下载安装

1、查找java相关的列表

yum -y list java*

或者

yum search jdk

2、安装jdk

yum install java-1.8.0-openjdk.x86_64

3、完成安装后验证

java -version

4、通过yum安装的默认路径为:

/usr/lib/jvm

5、将jdk的安装路径加入到JAVA_HOME

vi /etc/profile

在文件最后加入:

#set java environment
JAVA_HOME=/opt/java/jdk1.8.0_333     
JRE_HOME=/opt/java/jdk1.8.0_333/jre   
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

修改/etc/profile之后让其生效

. /etc/profile (注意 之后应有一个空格)

方式二、官网下载jdk,ftp上传服务器解压安装

1、进入 Oracle 官方网站 下载合适的 JDK 版本,准备安装。
注意:这里需要下载 Linux 版本。这里以jdk-8u151-linux-x64.tar.gz为例,你下载的文件可能不是这个版本,这没关系,只要后缀(.tar.gz)一致即可。

2、创建目录

在/usr/目录下创建java目录,

mkdir /opt/java
cd /opt/java

把下载的文件 jdk-8u151-linux-x64.tar.gz 放在/usr/local/java/目录下。

3. 解压 JDK

tar -zxvf jdk-8u151-linux-x64.tar.gz

4. 设置环境变量

vi /etc/profile    #修改

在 profile 文件中添加如下内容到末尾并保存:

#set java environment
JAVA_HOME=/opt/java/jdk1.8.0_333     
JRE_HOME=/opt/java/jdk1.8.0_333/jre   
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

注意:其中 JAVA_HOME, JRE_HOME 请根据自己的实际安装路径及 JDK 版本配置。

让修改生效:

source /etc/profile

5. 测试

java -version

显示 java 版本信息,则说明 JDK 安装成功。

 方式一:yum卸载Java

1. 查看安装的jdk

java -version

yum list installed | grep java

#确定JDK的版本:
rpm -qa | grep jdk
rpm -qa | grep gcj

2. 卸载jdk

yum -y remove java-1.8.0*
yum -y remove tzdata-java.noarch
yum -y remove javapackages-tools.noarch

第四章   《redis》

Redis版本:redis-7.0.2(Linux)

第一步:下载Linux版的Redis安装包

Download | Redis

本文放置的目录位置是/opt/redis

第二步:解压安装包 

tar -zxvf redis-7.0.2.tar.gz

第三步:Redis是使用C++编写的,需要安装C++环境

yum install gcc -c++        #正常服务器一般都有安装

  查看gcc版本

gcc -v

第四步:编译安装,进入redis目录下执行

#编译
make
#安装
make install

第五步:将redis文件夹中的redis.conf文件复制一份到/usr/local/bin下,方便运行redis服务端

便于区分,将复制过来的redis.conf重命名为my_redis.conf

进入/usr/local/bin,将my_redis.conf中的daemonize设置为yes(默认为no),redis就将会在后台运行。

在/usr/local/bin下执行redis-server my_redis.conf(redis配置文件的位置)运行redis服务端本地连接redis,输入命令redis-cli,进入客户端

 服务器本地连接redis就成功,不过还没完,我们的本地主机还需要远程连接redis。

第六步:远程连接Redis

进入/usr/local/bin,将my_redis.conf中的bind改为0.0.0.0(所有服务器可以远程连接redis)

 redis踩坑:(error) DENIED Redis is running in protected mode because protected mode is enabled

#关闭保护模式,关闭保护模式,否则外部ip无法连接
protected-mode no

重启redis服务

#进入客户端
redis-cli

#关闭redis服务
shutdown

#退出
quit

#启动redis服务端
redis-server my_redis.conf
#远程连接服务器上的redis
redis-cli -h 服务器ip -p 端口
#测试连接状态
ping

第五章   《docker部署java项目》

方法一

(1)在jar包路径下创建一个名为Dockerfile的文件

#新建Dockerfile文件
touch Dockerfile

#编辑文件
vim Dockerfile

文件内容:

## 基础镜像java
FROM java:8-alpine
## 作者是leeyoung
MAINTAINER leeyoung
##配置中文
ENV LANG C.UTF-8
#jar包添加到镜像中,上传的jar包的名称。给jar包起个别名
ADD weblog.jar weblog.jar
#容器暴露的端口 即jar程序在容器中运行的端口
EXPOSE 8085
#容器启动之后要执行的命令
ENTRYPOINT ["java","-jar","/app/weblog/jar/weblog.jar"]do

保存文件并退出

(2)为jar包创建一个镜像

docker build -t 镜像名 .

查看已有镜像

docker images

新建并启动容器,也就是启动容器里的项目

docker run -d --restart=always --name leeyoung -v /app/weblog/images:/app/weblog/images -p 8085:8085 ly/weblog

参数:

--name:容器名称
-v:    参数1(挂载的路径地址):参数2(容器的路径)
-p:    参数1(容器外的端口):参数2(容器里的端口)

方法二

docker-compose.yml文件内容

version: "3"
services:
  weblog:
    image: weblog:latest
    restart: unless-stopped
    ports:
      - "8085:8085"
    command:
      - /bin/sh
      - -c
      - |
      java -jar /app/weblog/weblog.jar
    volumes:
      - /app/weblog/images:/app/weblog/images

命令行启动项目:

docker-compose up

 docker:共享宿主机的jdk

(1)创建dockerfile

在 dc-jdk中创建 Dockerfile 文件:

##基础linux版本
FROM centos:8
##作者是leeyoung
MAINTAINER leeyoung
##配置中文
ENV LANG C.UTF-8

##指定容器内jdk所在目录
ENV JAVA_HOME /opt/java/jdk1.8.0_333
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin

##jar包添加到镜像中,上传的jar包的名称。给jar包起个别名
ADD weblog.jar weblog.jar
##容器暴露的端口 即jar程序在容器中运行的端口
EXPOSE 8085
##容器启动之后要执行的命令
ENTRYPOINT ["java","-jar","weblog.jar"]do

(1)创建docker-compose.yml

在 dc-jdk中创建 docker-compose.yml 文件:(使用宿主机jdk和环境变量)

version: '3'
services:
  weblog:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8085:8085"
    #将本地的jdk目录挂载到容器中
    volumes:
      #本地jdk目录:容器jdk目录
      - /opt/java/jdk1.8.0_333:/opt/java/jdk1.8.0_333
    command: java -version

构建镜像:修改了dockerfile 之后,都需要执行这个命令!

docker-compose build

运行容器:

docker-compose up

#后台运行容器
docker-compose up -d

容器和经常常用基本命令:

#查看docker 版本号信息
docker version
docker info

#查看自己服务器中docker镜像列表
docker images

#搜索镜像
docker search 镜像名
docker search --filter=STARS=9000 mysql 搜索 STARS >9000的 mysql 镜像

#查看正在运行容器列表
docker ps
#查看所有容器(包含正在运行 和已停止的)
docker ps -a

#停止容器
docker stop 容器名/容器ID
删除容器
#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

容器端口与服务器端口映射    -p 宿主机端口:容器端口
#搜索文件
find -name uploaded_files
#查看日志
docker logs --tail 300 -f 容器名称

第六章   《安装Git详细步骤》

安装编译 Git 所需要的依赖:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

安装编译源码所需依赖的时候,yum 自动安装了 Git,需要先卸载这个旧版的 Git:

yum -y remove git

下载 Linux 下 Git 的安装包,地址:Index of /pub/software/scm/git/

wget https://www.kernel.org/pub/software/scm/git/git-2.30.1.tar.gz

进入到存放目录:cd /opt/git;解压压缩包:

tar -zxvf git-2.30.1.tar.gz

进入到解压后的文件夹:

cd git-2.30.1

编译 Git 源码:(/opt/git/git:PS:你的安装目录,笔者这里是/opt/git/git )

make prefix=/opt/git/git all

安装 Git 至 /usr/local/git 路径:

make prefix=/opt/git/git install

配置环境变量:

vim /etc/profile

在环境变量配置文件底部加上:

export PATH=$PATH:/opt/git/git/bin

刷新环境变量:

source /etc/profile

查看Git是否安装完成:

git --version

;