實際遷移情況
老機器,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 [email protected]%‘ identified by ‘1VgaziZIHk3JCsn37iTexto64EUtjQ‘; --建使用者遠端通路
create user [email protected] identified by ‘1VgaziZIHk3JCsn37iTexto64EUtjQ‘; --建使用者本地通路
grant all on nextcloud_db.* to [email protected]%‘; --賦權限
grant all on nextcloud_db.* to [email protected]; --賦權限
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 onchkconfig 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
原文:https://www.cnblogs.com/mxci/p/12411929.html