实际迁移情况

  老机器,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的源,参考资料:

 


 

一、mysql安装,最好安装tar版本的mysql,用意是指定安装目录,指定数据库文件存放目录,参照教程:

  在这里做了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步骤:(参考:)

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

h310进不了阵列卡bios_mysql

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端口

h310进不了阵列卡bios_ico_02

错误记录:(编译安装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、我遇到的上边的办法都解决不了,但是并不表示上边操作没有用,最终通过下边办法解决这个报错:

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

这个方法没有用到

 

 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)

h310进不了阵列卡bios_mysql_03

h310进不了阵列卡bios_mysql_04

其他两个文件不用管

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

 

h310进不了阵列卡bios_ico_05

参考材料: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配置文件中已经修改,则这一句可以不添加)

参考资料:

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,数字越大,优先级越低。