博客迁移杂谈


   本来像我这么懒的人,能不动就不动的性子,是不会没事找事的去做什么站点迁移的,实在是用的vps之前用的的openvz虚拟化技术太过古老,然后前一个月就开始提醒我,vps过期之后将不再支持续期,他们要让openVZ退出历史舞台,而改用最新的KVM虚拟化技术。而且服务商也没有提供工具让我一键迁移数据。所以只好自己手动挪了。

   这次换了个centos 7的系统,算上与时俱进了(虽说也是落后的)。结果升级了操作系统之后,遇到了无数的坑。

   首先,网站使用的是很通用的软件:mysql、nginx、php。然后在这次升级之后,使用yum安装时,默认都给我装了老高的版本了。


  •     mysql 版本 - 5.7.25
  •     php版本  - 7.1.26
  •     nginx版本 - 1.14.2

相比旧环境,都是升级了的。所以下面就简单的讲下迁移过程中的事儿吧

安装mysql

   新主机是centos7的系统,因此默认的mysql版本是5.7.25。安装完mysql的服务端和客户端之后,登录root,准备依照centos6的方法:首次登录mysql,root密码为空,但是发现登录不上,总是报密码错误,网上查资料才发现,原来mysql5.7之后,为提高安全性,将首次root的密码放在了mysql的日志中。使用以下命令查看密码

cat mysql.log | grep password

登录之后就是修改root密码了,这里不再赘述

安装nginx

   采用yum的方法安装nginx,启动之后,首先查看服务器是否监听了80端口(nginx.conf默认的web端口)。然后在客户端上进行访问,查看是否web服务可用。我试验的时候,发现还是无法打开,最终将防火墙关掉之后,就可以访问了。

安装php

我用的yum是阿里的源,由于linux的yum源不存在php7.x,所以我们要更改yum源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装好源之后,yum安装php和当前php版本支持的模块,根据自己想要的进行选择安装
yum search php71w
yum -y install  php71w php71w-mysql php71w-xml php71w-cli php71w-devel
注意看,上面安装的php71w-mysql给我后面挖了坑.

安装php-fpm

要使nginx能够支持php,则还需要安装解析php的程序,这里我们使用php-fpm.

php-fpm是一个PHPFastCGI管理器,提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,其配置文件默认是(/etc/php-fpm.conf),若无特殊需求,一般不用配置.

我们使用yum安装。

yum -y install php71w-fpm

之后,我们以服务的方式启动php-fpm,用以解析php文件,以帮助nginx支持php

 systemctl start php-fpm
 走到这里,应该是把基础环境给搭好了。

部署站点

这里,就要进行代码的迁移、相关资源文件的迁移(包括图片、脚本、数据库文件等)。数据库的话,我使用的是mysqldump命令进行导出。

代码迁移就绪,nginx和php-fpm都已打开,此时访问index.php。发现有如下报错:
Message:  mysqli::real_connect(): Headers and client library minor version mismatch. Headers:50560 Library:50637
    照着这个报错搜资料,发现有很多朋友遇到一样的问题,且网上都给出了解决方法内,这里我就随便照着一个网址提供的解决方案实验一下. 网址如下:http://www.zhimengzhe.com/linux/129541.html

[root@vultr html]# php -i |grep Client
Client API library version => 5.6.37
Client API header version => 5.5.60-MariaDB
Client API version => 5.6.37
看着php提示的需要的库的版本,就会发现原来是mysql的库版本装的太高了。且php7之后,不再支持mysql扩展库了,改为
使用mysqlnd这个内部的mysql驱动。

所以,卸载php-mysql,安装php-mysqlnd

yum remove php-mysql
yum install php-mysqlnd
我就是完全照着文章里面写的步骤,执行了这两个命令之后再去试,发现还是报version mismatch的错误,最后一通瞎整之后,偶然间重启了下php-fpm。瞬间,整个世界都好了。原来,php使用到的myqli的库更新之后,要重启之后才能生效。这也是自己的知识点的一个不足,没有想到这么基础的东西。

    所以,正确的步骤是这样的:

systemctl stop php-fpm

yum remove php-mysql
yum install php-mysqlnd

systemctl start php-fpm
   这么一通操作之后,访问首页,发现与旧站点的效果一样,这个似乎是完全好了的、但是点开某个网页。发现报错。查看网页的URL,发现是htpps的,原来我为了安全,而强制的使用https。所以,还要做最后一步操作

部署SSL

这里我们使用免费提供HTTPS服务的Let's Encrypt. 照着网址(https://certbot.eff.org/lets-encrypt/centosrhel7-nginx)操作,就可以获得免费的HTTPS服务。

因为我使用的nginx和centos 7,所以按这两个选择之后,就会出现相应的教程。顺着教程走下去,正常来说,是可以达到目的的。但今天就是这么不顺利,走着走着,也能给我出个错出来。

中间执行命令 `certbot --nginx` 时遇到以下的报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 2: ordinal not in range(128)
查询了下,似乎是解析nginx的配置文件的时候,遇到了无法解析的字符。谷歌了一圈之后,才发现一个稍微靠谱的答案(https://www.chenweikang.top/?p=606/),之所以说是稍微靠谱,是因为我复制了他里面的代码后,又出新错误了。首先,我们看下他提供的解决方法;
#编辑 /opt/eff.org/certbot/venv/lib/python2.7/site-packages/certbot_nginx/nginxparser.py 在文件开始加入

import sys
reload(sys)
sys.setdefaultencoding(‘utf8)
其实这里面的错误是很明显的,只是当时我拷贝过去的时候,完全没用脑子(也不是完全没用脑子,至少我还是知道如何找到正确的nginxparser.py文件地址),导致错误被我给无视了。那3行代码里面有两个问题:
  1. 引号使用的是中文的引号、
  2. 引号没有成对,即右边缺少单引号
所以,正确的代码是这样的:
import sys
reload(sys)
sys.setdefaultencoding('utf8')

   这么修改之后,再去执行`certbot --nginx`命令,就OK了,根据提示,输入要提供HTTPS服务的域名

   走到这里,整个站点迁移的工作就完成了。还好,在经过了前面几天断断续续的软件安装,再到今天的数据迁移和HTTPS的部署之后,整个博客就又可以跑了。很欣慰,在这次的迁移过程中,虽然遇到了许多的坑,但最终还是圆满的解决。在此过程中,也是温习了之前的建站过程,回忆起了当时创建博客的初衷。于是,一切从此开始!!!

PS:后续使用还得重新安装 php-mbstring,否则会有 undefined function mb_strcut() 的报错

执行如下命令:

yum install php71w-mbstring.x86_64


评论

ozjaewaro 说:

Serious jix.mvbk.yrczone.com.cyz.ms screws aspirated protocols [URL=http://brazosportregionalfmc.org/cialis-commercial/ - cialis france[/URL - [URL=http://scoverage.org/prednisone-without-prescription/ - prednisone 20 mg[/URL - [URL=http://happytrailsforever.com/buying-generic-cialis/ - canadian cialis[/URL - [URL=http://leemyles-boulder.com/over-the-counter-cialis-paid-by-paypal/ - cheap cialis no prescription[/URL - [URL=http://mywelshies.com/item/cenforce/ - cenforce commercial[/URL - [URL=http://sweepscon.com/item/robaxin/ - robaxin[/URL - [URL=http://chithreads.com/cialis-and-professional/ - cialis and professional[/URL - cialis and professional indicated: weighed extractions, cialis tablets 20mg prednisone cialis 20mg for sale order cialis from india cenforce generic canada lowest price robaxin cialis surrey bc urodynamic quartz euphoria http://brazosportregionalfmc.org/cialis-commercial/ tadalafil tablets http://scoverage.org/prednisone-without-prescription/ prednisone http://happytrailsforever.com/buying-generic-cialis/ generic cialis cheap http://leemyles-boulder.com/over-the-counter-cialis-paid-by-paypal/ buy cialis without pescription http://mywelshies.com/item/cenforce/ canada cenforce cenforce http://sweepscon.com/item/robaxin/ robaxin pills http://chithreads.com/cialis-and-professional/ cialis surrey bc addresses semi-purposeful observation.

aqewoba 说:

Most bpj.bzyx.yrczone.com.ray.qt heparan unduly [URL=http://robots2doss.org/cialis-20mg/ - cialis 20[/URL - [URL=http://oliveogrill.com/doxycycline-100mg/ - buy doxycycline[/URL - [URL=http://nitromtb.org/vidalista/ - vidalista online[/URL - [URL=http://candidstore.com/item/viagra-professional/ - viagra professional for sale[/URL - [URL=http://scoverage.org/cialis-generic-tadalafil/ - cialis 20 mg lowest price[/URL - neuralgia 20 mg cialis doxycycline vidalista viagra professional without a prescription 20 mg cialis hypotonia dressing, oestrogens; http://robots2doss.org/cialis-20mg/ cialis 20mg http://oliveogrill.com/doxycycline-100mg/ doxycycline 100 mg http://nitromtb.org/vidalista/ buy vidalista online http://candidstore.com/item/viagra-professional/ viagra professional http://scoverage.org/cialis-generic-tadalafil/ cialis annular devolved cordocentesis, prominent.

uddoxoj 说:

Otherwise, rrq.xgas.yrczone.com.zqp.ve mesentery, perception, neutropenia, [URL=http://sweepscon.com/item/artane/ - artane[/URL - [URL=https://jmmtrackandfield.com/retin-a/ - discount online retin a[/URL - [URL=http://mywelshies.com/item/synthroid/ - synthroid coupons[/URL - synthroid coupons [URL=http://infiniterotclothing.com/buy-levitra-online/ - buying levitra on cod[/URL - [URL=http://kullutourism.com/sildigra/ - sildigra without dr prescription[/URL - [URL=http://lindasvegetarianvillage.com/item/temovate/ - generic temovate[/URL - [URL=http://listigator.com/zovirax/ - price of zovirax[/URL - ahead artane without a doctor retin-a synthroid coupons levitra 20mg best price levitra 20 mg sildigra temovate non generic zovirax for sale wakening porphyria, http://sweepscon.com/item/artane/ lowest price generic artane https://jmmtrackandfield.com/retin-a/ retin a http://mywelshies.com/item/synthroid/ synthroid cost http://infiniterotclothing.com/buy-levitra-online/ levitra http://kullutourism.com/sildigra/ sildigra http://lindasvegetarianvillage.com/item/temovate/ temovate non generic http://listigator.com/zovirax/ generic zovirax threads shone episode easily.

usisocg 说:

Combination ojp.ptpi.yrczone.com.ujl.on crepitations deposits, axilla [URL=http://gaiaenergysystems.com/clomid/ - clomid[/URL - [URL=http://meandtheewed.com/item/atarax/ - atarax price walmart[/URL - [URL=http://sweepscon.com/item/prednisone/ - prednisone[/URL - prednisone [URL=http://srqypg.com/priligy/ - buy priligy online[/URL - [URL=http://gaiaenergysystems.com/amoxicillin/ - amoxicillin 500mg[/URL - amoxicillin - prix.achetercommander.fr syringe, pallor clomid atarax price walmart prednisone on line prednisone canadian pharmacy dapoxetine online buy amoxicillin online faeces, inconsistently links http://gaiaenergysystems.com/clomid/ clomiphene online http://meandtheewed.com/item/atarax/ atarax http://sweepscon.com/item/prednisone/ prednisone from india http://srqypg.com/priligy/ priligy dapoxetine http://gaiaenergysystems.com/amoxicillin/ amoxicillin drift rib superficial, starvation.

发表评论