目录
1、安装GCC、automake、pcre、zlib和openssl
解决 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
2、打开网址:https://dev.mysql.com/downloads/repo/yum/
4、下载完成后,复制下载的文件的全名:mysql80-community-release-el8-4.noarch.rpm 【不一定相同,复制自己的】
【CentOS8安装MySQL报错,解决Failed to start mysqld.service: Unit not found 】
环境声明: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
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安装包
本文放置的目录位置是/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