• RHEL6.4服务器整体迁移记录RHEL6.9-2020-操作系统安装在M2固态,应用/数据库重要数据安装至DELL-H310阵列卡RAID1上保证数据安全性


    实际迁移情况

      老机器,2016年7月配置,很旧而且硬盘只有1块,无阵列保证数据安全,所以想到买一台支持DELL H310阵列卡的工作站(T3420)(只有工作站主板芯片对阵列卡支持比较好)

           新机器,2020年2月配置,DELL T3420 主板Intel C230芯片组,对DELL H系列阵列卡绝逼支持,INTEL I5 6500(CPU)  DELL H310阵列卡(M2固态128G,2X2.5寸西部数据机械硬盘5600转做RAID1)

      安装应用之前需要切换yum源为centos的源,参考资料:https://www.cnblogs.com/ssyfj/p/9172147.html


    一、mysql安装,最好安装tar版本的mysql,用意是指定安装目录,指定数据库文件存放目录,参照教程:https://www.cnblogs.com/mxci/p/12405402.html

      在这里做了mysql升级5.5.46—>5.5.62(注意统一字符集)


    二、NextCloud迁移

           1、mysql数据库,导出mysql中nextcloud_db数据库

      

    mysqldump -h10.12.196.116 -P3306 -uoc_root1 -p1VgaziZIHk3JCsn37iTexto64EUtjQ nextcloud_db > nextcloud_db.sql

           数据库信息可以通过nextcloud安装目录中/home/wangyan/sysapp/nginx-1.7.2/html/config/config.php文件中找到

      导出nextcloud_db数据库中全部数据后,然后恢复至新机器上,首先创建数据库,建用户并赋权限

           

     CREATE DATABASE nextcloud_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;      -- 建库
    
     create user 'oc_root1'@'%' identified by '1VgaziZIHk3JCsn37iTexto64EUtjQ';            --建用户远程访问
    
     create user 'oc_root1'@'localhost' identified by '1VgaziZIHk3JCsn37iTexto64EUtjQ';        --建用户本地访问
    
     grant all on nextcloud_db.* to 'oc_root1'@'%';                          --赋权限
    
     grant all on nextcloud_db.* to 'oc_root1'@'localhost';                         --赋权限
    
     mysql -uoc_root1 -p1VgaziZIHk3JCsn37iTexto64EUtjQ nextcloud_db < nextcloud_db.sql        --恢复数据

    2、安装php,编译安装没有成功,感觉很麻烦,所以用yum安装

    A—yum安装一般比较顺利,具体命令行如下:

    rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
    yum install --enablerepo=remi --enablerepo=remi-php56 php php-mysqlnd php-mysql php-mysqli  php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common
    php -v

    正常情况下用上边几行命令就可以安装成功202003最新php5.6.40版本

    yum安装成5.6.40版本后发现之前的配置,访问nginx下的php测试文件无法正常解析,经过网上查询5.6.40版本有点区别,所以考虑编译安装php5.6.39


    B—编译安装php5.6.39步骤:(参考:https://www.cnblogs.com/yehuisir/p/10068795.html)

    1) 、环境准备(安装必备的组件,采用yum安装)

    yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel
    
    yum install libpng
    
    yum install libpng-devel
    
    yum -y install libjpeg-devel
    
    yum install freetype-devel

    2)、安装 libiconv-1.14

    #wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
    #tar -zxvf libiconv-1.14.tar.gz
    #cd libiconv-1.14
    # ./configure --prefix=/usr/local/libiconv
    # make && make install

    3)、yum安装完必要的组件, libiconv安装完成后,准备php5.6.39源码

    wget http://cn2.php.net/distributions/php-5.6.39.tar.gz
    
    tar zvxf php-5.6.39.tar.gz
    
    cd php-5.6.39

    4)、配置php编译安装参数

    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=wyan --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd --with-fpm-group=wyan --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir=/usr/ --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --with-libdir=lib64 --with-iconv

    这里有个问题记录,当不加--with-libdir=lib64报:configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

    加--with-libdir=lib64报:Please reinstall the iconv library.

    然后把--with-iconv=/usr/local/libiconv  这一项改成--with-iconv  即不指定路径然后编译安装顺利通过

    5)、编译安装

    make && make install

    6)、.配置服务

    配置文件

    cp php.ini-development /usr/local/php/etc/php.ini

    php-fpm 服务

    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    chmod +x /etc/init.d/php-fpm
    
    chkconfig --add php-fpm
    chkconfig php
    -fpm on

    chkconfig list php-fpm
    service php-fpm start
    netstat -nltp|grep 9000

    出现下图php启动成功,且监听9000端口

    错误记录:(编译安装PHP56.39时,遇到的错误以及解决办法)

    1)、configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

    问题出现原因主要是要把mysql的库配置进来,并且路径要添加正确,具体还有待研究,网上有很多总解决方法,列出来如下:


      a、https://blog.51cto.com/linuxzkq/1719580

        

        解决方法:
    
        ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/ 
    
        ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
    
          此方法注意自己mysql安装的实际路径

           b、https://blog.51cto.com/kusorz/1763874

        

        vi /etc/ld.so.conf.d/local.conf
    
        /usr/local/lib
    
        :wq
    
        ldconfig -v
    
        通过上边办法还不行,有人通过下边的命令解决问题
    
        # export LD_LIBRARY_PATH=/usr/local/mysql/lib:/lib/:/usr/lib/:/usr/local/lib  (注意mysql的实际安装路径)

      c、http://www.liangdongpo.com/linux/detail/id/19.html

    vim /etc/ld.so.conf.d/local.conf     # 编辑库文件
    /usr/local/mysql/lib                 # 添加该行
    :wq                                  # 保存退出
    ldconfig -v                          # 使之生效

      d、我遇到的上边的办法都解决不了,但是并不表示上边操作没有用,最终通过下边办法解决这个报错:https://segmentfault.com/q/1010000005973168

        方法1、查看php官方文档解决. 在configure 里面加上 --with-libdir=lib64  (然后编译瞬间解决上边那个报错)

        方法2、编辑/etc/ld.so.conf,根据系统,加入include /etc/ld.so.conf,然后执行ldconfig,使其重新加载一次;(如果出错改为vi /etc/ld.so.conf >> include /usr/local/libmcrytp/lib/)   --这个方法没有用到

     2)、上边的问题,配置项加入--with-libdir=lib64后,出现报错:Please reinstall the iconv library. 意思是提示重新安装iconv库,但是前面已经安装了,这里不知道怎么回事

        解决方案:把配置项中--with-iconv=/usr/local/libiconv  这一项改成--with-iconv  即不指定路径然后编译安装顺利通过

    7)、配置PHP

    vi /usr/local/php/etc/php-fpm.conf
    user = wyan                                   //编译的时候已经指定用户和组所以这里不用修改
    group = wyan
    listen
    = 127.0.0.1:9000     //修改成0.0.0.0:9000
    env[HOSTNAME] = $HOSTNAME //将以下几行,去掉注释 env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp

    然后重启php-fpm服务生效配置修改


    3、安装nginx

    解压安装包nginx-1.7.2.tar.gz

    tar -zxvf nginx-1.7.2.tar.gz
    mv nginx-1.7.2 nginx-1.7.2_src      //为了区分为源码
    cd nginx-1.7.2_src
    ./configure --prefix=/mnt/rd1/nginx-1.7.2 --with-http_stub_status_module --with-http_ssl_module (--with-stream这个选项不要,因为1.9.0版本后,才支持的)
    make && make install         //编译安装

    4、安装好nginx后最好先测试一下php时候可用

      接下来就是迁移Nextcloud整个应用及数据文件

      大致描述一下就行,整体拷贝,主要配置文件/mnt/rd1/webapps/nextcloud/config/config.php    (这里是把nextcloud放到nginx另外的目录,不放在html下面了,方便管理)   

    5、配置nextcloud上传文件大小限制

    网上说要修改很多地方:/etc/php.ini   /nextcloud.conf   /html/.htaccess(nextcloud根目录)

    最后发现只需要修改php配置文件/etc/php.ini (注意这里php是编译安装的文件路径是:/usr/local/php/etc/php.ini)

    其他两个文件不用管

    补充:发现nextcloud的root用户查看页面最大文件上传大小是由/etc/php.ini中两个地方决定,且取较小参数;但是在实际上传时,也受/nextcloud.conf文件中client_max_body_size参数限制,最后修改如下:(在server节点下添加配置)

     

    参考材料:https://www.orgleaf.com/2830.html

    20200310 23:30迁移nextcloud完成


     三、jboss6.0迁移

    jboss迁移直接拷贝过来就行了,应用也是直接拷贝,但是注意应用路径配置变化的修改;

    但是发现一个问题,就是之前的自动启动脚本,开机自启动不能启动jboss,这一天真的很奇怪,应该是哪里配置问题,目前没有解决,所以把jboss设置成系统服务,实现自启动;

    设置jboss成系统服务:

    1、设置JBOSS环境变量

    vi /etc/profile
    添加如下内容:
    export JBOSS_HOME=/mnt/rd1/jboss-6.0.0.Final

    2、创建服务文件

    cp $JBOSS_HOME/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jboss

    3、修改服务文件

    vi /etc/rc.d/init.d/jboss
    修改JBOSS_HOME JBOSS_HOME
    =${JBOSS_HOME:-"/mnt/rd1/jboss-6.0.0.Final"}
    修改JAVAPTH JAVAPTH
    =${JAVAPTH:-"/usr/java/jdk1.6.0_45/bin"}
    修改启动用户 JBOSS_USER
    =${JBOSS_USER:-"wyan"}
    设置所有IP能够访问jboss 在JBOSS_CONF
    =${JBOSS_CONF:-"default"}下添加语句:JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"} (如果在jboss配置文件中已经修改,则这一句可以不添加)

    参考资料:https://blog.csdn.net/lanyunit/article/details/6751276

    4、启动、关闭JBOSS

    重启机器、则会自动启动JBOSS,下面是一些常用命令

    启动服务:service jboss start
    关闭服务:service jboss stop
    重启服务:service jboss restart

    5、添加系统服务,并配置开机自启动

    ##添加系统服务
    chkconfig --add jboss
    ##设置开机启动
    chkconfig jboss on
    ##查看服务
    chkconfig --list jboss

    添加服务时出现一个问题:service jboss does not support chkconfig

    常常会出现
    service myservice does not support chkconfig 我们一般在脚本开头加入下面两句就好了 添加下面两句到 #
    !/bin/bash 之后。 # chkconfig: 2345 10 90 # description: myservice .... 其中2345是默认启动级别,级别有0-6共7个级别。   等级0表示:表示关机      等级1表示:单用户模式      等级2表示:无网络连接的多用户命令行模式      等级3表示:有网络连接的多用户命令行模式      等级4表示:不可用      等级5表示:带图形界面的多用户模式      等级6表示:重新启动 10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。

    添加上边两行就可以了,参考资料:https://www.cnblogs.com/zydev/p/5771189.html

      

  • 相关阅读:
    Python class static methods
    学习MySQL出现问题Not allowed to return a result set from a t
    MySQL创样例表(MySQL必知必会B.2)
    无重复字符的最长字串(C++,python实现)
    softmax详解
    为什么要使用logistic函数
    两个栈实现队列的插入和删除(C++实现)
    用数组实现队列(C++)
    C++ memset函数
    两数之和(C++实现)
  • 原文地址:https://www.cnblogs.com/mxci/p/12411929.html
Copyright © 2020-2023  润新知