Linux:Centos7安装jdk、mysql、redis、nginx、fastdfs记录

本篇文章是从本人为知笔记上誊抄过来的,文章内容最初是当作笔记进行整理的,没有组织语言结构,各位看官自行查阅取舍

一、安装jdk(/usr/local/java)

  • 官网下载jdk8:jdk-8u231-linux-x64.tar.gz

  • /usr/local下创建java目录:mkdir java,上传gz包到此目录下

  • 解压:tar -zxvf jdk-8u231-linux-x64.tar.gz-z:调用gzip;-x: 从备份文件中还原文件;-v:显示执行过程;-f:运行指定文件)

  • 配置环境变量: vim /etc/profile,在最后加上如下配置:

    #java environment
    export JAVA_HOME=/usr/local/java/jdk1.8.0_231
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
  • 使配置生效

    source /etc/profile
    
  • 使用java -version查看是否安装成功

二、安装mysql

在线安装方式:
  1. wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  2. rpm -ivh mysql57-community-release-el7-9.noarch.rpm 执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件:mysql-community.repomysql-community-source.repo
  3. 进入到 /etc/yum.repos.d/目录后再执行:yum install mysql-server
  4. 启动msyql:systemctl start mysqld
  5. 获取临时密码:grep 'temporary password' /var/log/mysqld.log
  6. 登录:mysql -uroot -p + 临时密码,如果登录不了,vim /etc/my.cnf,在[mysqld]标签下添加如下内容:skip-grant-tables 跳过密码验证过程,然后重启mysql:systemctl restart mysqld
  7. 剩下的步骤可以执行离线安装方式步骤9之后的;
tar.gz包安装方式
  1. 首先去镜像站下载tar包:http://uni.mirrors.163.com/mysql/Downloads/MySQL-5.7/
    Linux:Centos7安装jdk、mysql、redis、nginx、fastdfs记录_第1张图片

  2. 上传并解压到服务器/usr/local/mysql目录中

  3. 为Centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限):

    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    
  4. 给mysql用户赋予mysql文件夹的权限:

    chown -R mysql:mysql /usr/local/mysql/
    
  5. 安装mysql:

    ./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
    
  6. 出现下面结果则代表安装成功,红框部分为默认密码:
    Linux:Centos7安装jdk、mysql、redis、nginx、fastdfs记录_第2张图片

  7. 编辑/etc/my.cnf

    [mysqld]
    port=3306
    datadir=/usr/local/mysql/data
    socket=/usr/local/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    user=mysql
    max_connections=200
    bind-address=0.0.0.0
    # ignore table name cases
    lower_case_table_names=1
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    [client]
    socket=/usr/local/mysql/mysql.sock
    default-character-set=utf8
    #
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d
    
  8. 启动mysql成功:

    [root@CentOS7 mysql]# ./support-files/mysql.server start
    Starting MySQL. SUCCESS! 
    
  9. 将mysql进程放入系统进程中:

    cp support-files/mysql.server /etc/init.d/mysqld
    
  10. 可使用系统服务方式启动:(start/stop/restart

    service mysqld restart
    
  11. 配置mysql环境变量:并source /etc/profile保存生效

    vim /etc/profile
    export PATH=$PATH:/usr/local/mysql/bin
    
  12. 使用系统默认密码登录mysql:然后修改root的密码,参考下面的步骤

    mysql -u root -p
    
rpm离线安装方式:
  1. 如果系统自带mariadb,首先清除掉,否则安装不了mysql:rpm -qa |grep mariadb |xargs yum remove -y

  2. 下载相关rpm包:在https://dev.mysql.com/downloads/mysql/选择为Red Hat Enterprise Linux 7/Oracle Linux 7,把os的版本选择为all,直接下载mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面;

  3. 将下载的包放到/usr/local/mysql目录下(没有就创建),然后解压:tar -zxvf xxx.tar.gz

  4. 按顺序执行如下组件:

    rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
    
  5. 修改mysql配置:vim /etc/my.cnf

    #datadir=/var/lib/mysql
    datadir=/data/mysql (没有就创建)
    socket=/var/lib/mysql/mysql.sock
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
  6. 进行mysql的初始化:

    mysqld --initialize
    chown mysql:mysql /data/mysql -R
    systemctl start mysqld.service
    systemctl enable mysqld
    
  7. 启动mysql

    启动:systemctl start mysqld.service
    停止:systemctl stop mysqld.service
    重启:systemctl restart mysqld.service

  8. 通过 cat /var/log/mysqld.log | grep password 命令查看数据库的初始密码:

    2019-02-16T09:46:38.945518Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,#t#dlkOG0j0
    
  9. 登录测试是否成功:mysql -u root -p 并且输入上一步查看到的初始密码

  10. 修改root的初始密码

    set global validate_password.policy = 0;
    set global validate_password.length=8;
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXXXXXX';
    

    出现错误,提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    解决办法:

    • 查看初始密码策略:SHOW VARIABLES LIKE 'validate_password%';

    • 设置密码的验证强度等级,设置 validate_password_policy的全局参数为 LOW

      set global validate_password_policy=LOW;
      
    • 当前密码长度为8位,如果要改成其它位数,则:set global validate_password_length=6; (具体就几位就设置几位,注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,只要设置密码的长度小于 3 ,都将自动设值为 4 )

      关于 mysql 密码策略相关参数;
      a)validate_password_length 固定密码的总长度;
      b)validate_password_dictionary_file 指定密码验证的文件路径;
      c)validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
      d)validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
      e)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM
      关于 validate_password_policy 的取值:
      LOW:只验证长度;
      MEDIUM:验证长度、数字、大小写、特殊字符;
      STRONG:验证长度、数字、大小写、特殊字符、字典文件;
      f)validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

    • 设置新密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXXXX';

  11. 开启mysl远程访问:

    mysql -u root -p + 新密码登录后:
    create user 'root'@'%' identified with mysql_native_password by 'XXXXX';
    grant all privileges on *.* to 'root'@'%' with grant option;
    flush privileges;
    
  12. mysql初始化脚本命令:source /xxx/xxx/init.sql

三、安装redis(/usr/local/redis)

另一篇笔记里有详细记录 :CENTOS7下安装REDIS
启动:service redisd start
停止:service redisd stop,这么停止的话可能会报如下错误,因为redis里设置了密码

[root@localhost ~]# service redisd stop
Stopping ...
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...

解决:

  1. 用命令行:redis-cli -a ‘你设置的redis密码’登录,执行SHUTDOWN命令关闭

    [root@localhost bin]# redis-cli -a 123456
    127.0.0.1:6379> SHUTDOWN
    not connected> exit
    
  2. 编辑/etc/init.d/redisd,设置上自己的密码
    Linux:Centos7安装jdk、mysql、redis、nginx、fastdfs记录_第3张图片

    遇到的问题:我按上述操作把密码重新修改后,启动的时候报错:/var/run/redis_6379.pid exists, process is already running or crashed
    解决办法:执行 rm -rf /var/run/redis_6379.pid将这个文件移除掉就可以了

四、安装Fastdfs

  1. 进入到fastdfs github主页 https://github.com/happyfish100/fastdfs/wiki
    基本上按照官方文档可以安装成功,但是文档也有一些坑,下面这个教程是具体验证可行的

  2. 查看自己服务器的LAN地址:ip addr,得到我的ip地址为:172.16.0.8

  3. 安装编译环境

    yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
    
  4. 创建数据存储目录:mkdir /home/dfs

  5. 切换到安装目录:cd /usr/local/src

  6. 安装libfatscommon

    git clone https://github.com/happyfish100/libfastcommon.git --depth 1
    
  7. 进入目录:cd libfastcommon/ 编译安装libfastcommon

    ./make.sh && ./make.sh install
    
  8. 返回到 /usr/loca/src目录,安装fastdfs

    git clone https://github.com/happyfish100/fastdfs.git --depth 1
    
  9. 进入目录:cd fastdfs 编译安装fastdfs

    ./make.sh && ./make.sh install
    
  10. 配置文件准备:如果报错提示“目录或文件不存在” ,就把cp后面的 /usr去掉、直接从/etc开始写

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
    cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
    cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
    
  11. 返回到 /usr/loca/src目录,安装fastdfs-nginx-module

    git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
    cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
    
  12. 返回到 /usr/local目录,下载nginx安装包:wget http://nginx.org/download/nginx-1.15.4.tar.gz,下载完后解压:tar -zxvf nginx-1.15.4.tar.gz

  13. 进入到 cd nginx-1.15.4/添加fastdfs-nginx-module模块:./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ 然后编译安装:make && make install

tracker配置
  1. vim /etc/fdfs/tracker.conf 修改如下内容:

    port=22122  # tracker服务器端口(默认22122,一般不修改)
    # 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
    base_path=/home/dfs  # 存储日志和数据的根目录
    
storage配置
  1. vim /etc/fdfs/storage.conf 修改如下内容:

    port=23000  # storage服务端口(默认23000,一般不修改)
    # 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
    base_path=/home/dfs  # 数据和日志文件存储根目录
    # 这里原本为base_path0=/home/yuqing/fastdfs,将他改为如下
    
    store_path0=/home/dfs  # 第一个存储目录
    # 这里可能会存在两条相同的配置,注释掉一条即可,然后ip改成最开始让记录下来的你的ip,这里因为我的是192.168.1.103,所以我改成了这个
    tracker_server=172.16.0.8:22122  # tracker服务器IP和端口
    http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
    
client测试
  1. vim /etc/fdfs/client.conf 修改如下内容:

    # 这里也是改成与之前相同的
    base_path=/home/dfs
    # 这里也可能存在两条,注释掉一条即可,ip改成自己的ip
    tracker_server=192.168.1.103:22122    #tracker服务器IP和端口
    
启动
  1. 关闭防火墙,不关无法访问:systemctl stop firewalld.service

  2. 启动tracker服务:

    /etc/init.d/fdfs_trackerd start
    chkconfig fdfs_trackerd on #重启后会自启动tracker服务
    
  3. 启动storage服务

    /etc/init.d/fdfs_storaged start
    chkconfig fdfs_storaged on #重启后会自启动storage服务
    
  4. 查看服务器有没有启动:ps -ef|grep fdfs,看到如下证明启动成功

    [root@VM_0_8_centos sbin]# ps -ef|grep fdfs
    root     10512     1  0 17:13 ?        00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
    root     10806     1  0 17:15 ?        00:00:02 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
    
  5. 通过Xftp上传一张图片到/data/fdfs目录下 (fdfs目录我自己创建的,不一定是这个目录,可以放其它目录),然后调用上传命令:fdfs_upload_file /etc/fdfs/client.conf /data/fdfs/test.png
    成功后返回一串地址:group1/M00/00/00/rBAACF34niqAYRhqAABaKM8uF9M042.jpg

配置nginx访问
  1. vim /etc/fdfs/mod_fastdfs.conf 修改如下内容:

    # 原本为false 改为  true
    url_have_group_name=true
    store_path0=/home/dfs
    #原本为tracker_server=tracker:22122 改为如下,ip为自己的ip
    tracker_server=172.16.0.8:22122
    
  2. 配置nginx.configvim /usr/local/nginx/conf/nginx.conf 在nginx原有配置中添加如下内容:(主要是location ~/group[0-9]/这一配置)

    server {
           
        listen       8888;    ## 该端口为storage.conf中的http.server_port相同
        server_name  localhost;
        location ~/group[0-9]/ {
            # 主要是添加一个location映射
            ngx_fastdfs_module;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
           
        root   html;
        }
    }
    

    因为我是的腾讯云服务器,8888商品默认是没有开放的,需要是腾讯的安全配置组添加一条映射:

    在这里插入图片描述

  3. 启动nginx:/usr/local/nginx/sbin/nginx

    /usr/local/nginx/sbin/nginx #启动nginx
    /usr/local/nginx/sbin/nginx -s reload #重启nginx
    /usr/local/nginx/sbin/nginx -s stop #停止nginx
    
  4. 启动浏览器测试:http://www.xxx.com:8888/group1/M00/00/00/rBAACF34niqAYRhqAABaKM8uF9M042.jpg

    正常访问了,success!

    vim /etc/hots可以配置一条映射,这样以后ip变了就不用改fastdfs的配置了

五、安装nginx:

  1. 先安装依赖:

    #gcc安装,nginx源码编译需要
    yum install gcc-c++
    #PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式
    yum install -y pcre pcre-devel
    #zlib安装,nginx 使用zlib对http包的内容进行gzip
    yum install -y zlib zlib-devel
    #OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)
    yum install -y openssl openssl-devel
    
  2. 下载包解压,tar -xzvf nginx.tar.gz

  3. cd nginx安装目录

  4. ./configure

  5. make && make install

  6. 查看nginx安装目录:whereis nginx

  7. nginx程序主目录:/usr/local/nginx/sbin

    ./nginx     #启动
    ./nginx -s stop  #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
    ./nginx -s quit  #退出停止,等待nginx进程处理完任务再进行停止
    ./nginx -s reload  #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效
    #重启nginx,建议先停止,再启动
    ./nginx -s stop
    ./nginx
    
    #查看nginx进程,如下返回,即为成功
    [root@VM_0_12_centos ~]# ps aux|grep nginx
    root      5984  0.0  0.0 112708   976 pts/1    R+   14:41   0:00 grep --color=auto nginx
    root     18198  0.0  0.0  20552   612 ?        Ss   11:28   0:00 nginx: master process ./nginx
    nobody   18199  0.0  0.0  23088  1632 ?        S    11:28   0:00 nginx: worker process
    
  8. 添加开机自启动

    #在rc.local增加启动代码即可
    vi /etc/rc.local
    #增加一行 /usr/local/nginx/sbin/nginx,增加后保存
    #设置执行权限
    cd /etc
    chmod 755 rc.local
    
  9. 配置文件路径:/usr/local/nginx/conf/nginx.conf

  10. 修改配置重新加载配置生效:./usr/local/nginx/sbin/nginx -s reload

  11. nginx跨域相关配置:

    add_header 'Access-Control-Allow-Origin' $http_origin;
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
    if ($request_method = 'OPTIONS') {
           
         add_header 'Access-Control-Max-Age' 1728000;
         add_header 'Content-Type' 'text/plain; charset=utf-8';
         add_header 'Content-Length' 0;
         return 204;
    }
    

你可能感兴趣的:(Linux)