实际迁移情况
老机器,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
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、我遇到的上边的办法都解决不了,但是并不表示上边操作没有用,最终通过下边办法解决这个报错:
方法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)
其他两个文件不用管
补充:发现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配置文件中已经修改,则这一句可以不添加)
参考资料:
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,数字越大,优先级越低。