1.备份数据库和网站文件

将wordpress数据库保存为以当前日期命名的sql文件

mysqldump -u root -p --databases wordpress > wordpress_backup_`date +%Y_%m_%d"_"%H_%M_%S`.sql

打包所有wordpress网站文件

zip -r wordpress.zip /var/www/html

然后通过sftp将以上文件传输到新服务器上

2.在新服务器(CentOS)上配置wordpress环境

1.卸载php5安装php7

使用php -v 查看当前服务器php版本

这部分详细参考:博客园:centos安装php5、卸载php、安装php7

CentOS默认的php版本是5,wordpress通常需要7,所以先卸载

yum remove php

再使用以下指令来查看php及其安装的依赖(包)都有哪些,然后逐个卸载

rpm -qa | grep php

然后安装php及其常用组件

rpm -Uvh  https://mirror.webtatic.com/yum/el7/epel-release.rpm 
rpm -Uvh  https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64    php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
yum install php70w-fpm

此时使用php -v 查看服务器版本,显示7.0表示正确

2.安装mysql、apache

centos 安装 php 7.0 mysql apache

注意mysql中的得有和原服务器中mysql相同的用户名以及密码。

mysql中导入sql数据

mysql -u root -p123456 wordpress < ./wordpress.sql

apache 重启指令:

systemctl restart httpd.service

3.修改文件权限

wordpress的wp-content/upload 文件夹需要比较高的权限,这里比较简单粗暴。这一步被遗漏时会出现500错误,日志中有报错详情。

chmod -R 777 xxxx

4.部署nginx反向代理

我的服务器上部署了约4个应用,占据了不同的端口号,所以需要通过nginx做反向代理,才能通过不同的二级域名来访问不同的应用

修改nginx.conf配置文件,在http字段中添加如下配置:

定义上游网站,其中wordpress位于端口号8081,另一个应用位于8080

upstream wordpress {
    server localhost:8081;
}

upstream app {
    server  localhost:8080;
}

添加服务器,server_name表示二级域名的名称
server {
    listen 80;
    server_name www.xiaomaidong.com;
    location / {
            proxy_pass http://wordpress;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            }
    }

server {
    listen 80;
    server_name app.xiaomaidong.com;
    location / {
        proxy_pass http://app;
        proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
        }

    }

这样就可以通过www.xiaomaidong.com访问wordpress,通过app.xiaomaidong.com访问另一个应用。可根据自己需要定义其他二级域名或顶级域,比如xiaomaidong.com。

5.修改域名解析到新服务器ip

如果开了cdn,可以先把cdn关了,不然生效很慢…

注意事项

出现错误时注意排查日志,apache日志位于/var/log/httpd,nginx日志位于/usr/local/nginx/logs

这样做还是比较麻烦,下次再改为docker试试。

点击量:21935

分类: 开发笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注