今天跟大家分享我搬迁wp服务器的过程吧,虽然不是太难,但是也是搞得够呛!首先就是挑选服务器,我之前用的亚马逊服务器的EC2,由于之前忘了备份,所以后面的问题一个接一个,烦烦烦。亚马逊服务器确实是很快的,但是呢,和阿里云一样,不太适合新手我觉得,操作比较繁琐(相对来说更安全),新手往往处理问题会出现各种问题,你会崩溃的。当然了,当你的网站很成熟了,日访问量破5000了,那么还是建议用大品牌的服务器,比如阿里云,腾讯云,亚马逊这些…..如果你的网站很小,比如我的博客,那么是不建议用的,因为,第一,预算够大费钱,第二,操作繁琐复杂,费神,你要花很多时间去摸索学习,耗时间成本….

我之前也简单写过类似文章,可以借鉴:http://www.rrdaj.com/hzseo/2530.html

好了,言归正传,下面来说下搬迁wordpress的时候,要注意什么:

前提条件:

你的域名解析是没有问题的,注意都先ping一下你的域名,看看返回的ip是不是你的主机ip,不是的话就是解析不对

步骤:

一.原空间数据库的备份,备份Wordpress 相关文件

二.新空间数据的导入

三、安装Wordpress 程序(可选项)

 

一、备份,备份,备份

首先基本上常见的香港,美国主机空间商的网站都有Cpanel面板,或者国内云主机也有自己的登陆面板,都带有类似File Manager和Mysql数据库的phpMyAdmin数据库管理的功能,或者ftp登录也行,所以去你之前的服务器把wp网站根目录的所有文件压缩成一个包,zip格式的,然后再去你原来的数据库phpmyadmin里面把最新的数据库备份导出来,要以.sql为格式的,或者用WP数据库备份插件 WordPress Database Backup 或 BackupWordpress备份也行,备份方法我就不细说了,不会的话可以去百度下,这两个文件留着备用,别丢了……

 

二、开始向新空间导入wordpress,数据库得相关数据

当然在这之前还需要做一些操作,比如,你刚进入新空间的数据库,是需要在新的数据库选项里面进行命名新数据库,授权用户等操作的,比如我就是重新命名了新数据库名,用户名的,密码保持原来的样子,当然我建议数据库名,用户名还是写原来的名称,方便一点。这些弄好了后,就可以把你之前压缩的zip文件上传到新的空间,然后直接把全部文件解压到根目录,注意是根目录。

还有一种方法就是先安装wordpress官方zip包,不过重新安装过后你会发现很多文件都不在了。比如上传到媒体库中的图片,音频,以及插件,你的主题文件等等也没有。这个时候你就一定要备份一下原有的 WordPress 网站目录下的文件,至少 wp-content 目录下的 plugins, themes 以及 uploads 这3个文件夹直接使用 ftp或者别的方式下载下来,然后覆盖掉你安装官方版里面的wp-content 目录下的 plugins, themes 以及 uploads 这3个文件夹就好了。

 

接下来就是要修改wp-config.php文件了,方便链接数据库,不然会报错:Error establishing a database connection,打开wp-config.php,需要修改下面的几个地方

========================================================

/** WordPress 你的数据库的名称 */

define('DB_NAME', '你新建的数据库名称');

/** MySQL 你的数据库用户名 */

define('DB_USER', '你的数据库用户名,这个在主机数据库信息里可以找到');

/** MySQL 你的数据库密码 */

define('DB_PASSWORD', '你的数据库密码,这个也在主机信息里找')

/** MySQL 主机 */

define('DB_HOST','localhost');

 

补充:假如你新空间用了新域名(或者你是从本地调试搬迁到网站空间),还要再进行几步必要的步骤:

 

  1. 进入WordPress博客管理后台——“设置”——“常规选项”——站点地址(URL) 写你的新域名。如果你之前在本地调试需要把 https://127.0.0.1 改成新域名。
  2. 在phpmyAdmin下SQL批量更新数据表中老域名为新域名,否则会出现链接地址仍然为老域名的情况。

 

需要改动的只有前三项,其他一般是不修改的。当然数据库导入我就不细说了,直接在PHPmyadmin里面进行就可以了,不会的可以去百度下哈。到这里,一般情况直接输入域名就没问题了,正常是可以访问的。但是就怕意外,比如我的输入域名后直接显示403 forbidden,然后我去查了很多资料,可能有以下原因:

 

1、文件或者目录的权限被修改。如果你修改了相应的权限,那么服务器端也会更改相应的权限,导致此类错误。

2、.htaccess文件被损坏。此文件是负责WordPress站点与服务器之间交互,并允许访问文件以及目录。

3、插件的问题。一些插件可能添加了自我保护设置,可能会阻止某些IP来保护网站。

 

怎么办?

1、禁用插件,把插件文件夹名称重命名

如果你可以进入网站的仪表盘,你可以禁用所有的插件。如果你不能进入网站的仪表盘,那么你需要FTP工具,填写登录信息查看服务器的主文件夹,你可以使用下面的方式来禁用插件,转到服务器WordPress网站文件夹目录,然后找到并进入wp-content文件夹,查找plugins文件夹,将该文件夹的名称改成容易记的其他名称即可,再去刷新下你的域名看看能不能访问。通过以上方法,如果禁用插件后可以正常访问网站的文件和网页,那么就可以判断是插件造成的错误。接下来你可以使用下面的步骤来一一排除是哪个插件导致的403错误:

首先将插件文件夹的名称恢复为原来的名称;然后,依次重命名所有的插件,直到找出是哪个插件造成的403错误,然后将其删除即可。

 

2、生成.htaccess文件

 

这个文件主要是用于引导WordPress网站与服务器进行交互,它是博客或网站的关键部分。你可以通过这个文件设定谁可以访问你的文件和目录。你需要将指定文件重置为原始版本,才有可能修复错误:

第一步:通过FTP进入网站服务器的目录,查找.htaccess文件,打开并下载该文件,然后删除这个文件;(删除该文件不会影响博客或网站的正常使用)

第二步:单击网站目录空白区域,新建一个文件并命名为.htaccess,然后单击确认。

第三步:使用Notepad++打开编辑刚刚创建的.htaccess文件,复制粘贴以下代码:

 

# BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^/wp-content/hostinger-page-cache/ - [L]
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP_COOKIE} !(wordpress_test_cookie|comment_author|wp\-postpass|wordpress_logged_in|wptouch_switch_toggle|wp_woocommerce_session_) [NC]
    RewriteCond %{DOCUMENT_ROOT}/wp-content/hostinger-page-cache/$1/_index.html -f
    RewriteRule ^(.*)$ /wp-content/hostinger-page-cache/$1/_index.html [L]
    </IfModule>
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresDefault "access plus 1 weeks"
    </IfModule>
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

 

第四步:保存更改后,选择覆盖另一个版本,如果任然报错,你可以继续使用下面的方法。

 

3、检查并修复WordPress文件的权限

 

在继续之前,您需要了解某些代码。然后通过ftp或者文件管理进入网站文件位置,找到权限的地方。

755:表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户只能查看和执行它。

644:该代码表示只有本用户有可读可写的权限,而其他人则只能查看它。

如果你不太懂这些代码的含义,你可以百度搜索相关的资料查看。首先你必须获得对根目录的访问权限才能执行以下操作:

第一步:选择所有的文件夹,右键单击选择文件权限修改文件属性,输入代码755,然后勾选“递归处理子目录”,应用到所有子目录。

第二步:选择目录中所有的文件,右键单击选择文件权限修改文件属性,输入代码644,保存所有更改。

 

比如我的主机文件权限修改:

【已解决】wordpress从亚马逊服务器搬迁到虚拟主机的问题

 

你如果发现很多原来的文章路径打不开了,那么很有可能是静态化的问题,解决方法就是写一下静态化:

 

IIS伪静态规则

 

IIS 环境是 Windows 主机常用的服务器环境,新建一个 txt 文件,将下面的代码添加到文件中,然后另存为 httpd.ini 文件,上传到WordPress站点的根目录即可:

 

[ISAPI_Rewrite]

# Defend your computer from some worm attacks

#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]

# 3600 = 1 hour



CacheClockRate 3600

RepeatLimit 32



# Protect httpd.ini and httpd.parse.errors files

# from accessing through HTTP

# Rules to ensure that normal content gets through



RewriteRule /tag/(.*) /index\.php\?tag=$1

RewriteRule /software-files/(.*) /software-files/$1 [L]

RewriteRule /images/(.*) /images/$1 [L]

RewriteRule /sitemap.xml /sitemap.xml [L]

RewriteRule /favicon.ico /favicon.ico [L]

# For file-based wordpress content (i.e. theme), admin, etc.

RewriteRule /wp-(.*) /wp-$1 [L]

# For normal wordpress content, via index.php

RewriteRule ^/$ /index.php [L]

RewriteRule /(.*) /index.php/$1 [L]

 

Apache伪静态规则

Apache是 Linux 主机下常见的环境,现在一般的 Linux 虚拟主机都采用这种环境。新建一个 htaccess.txt 文件,添加下面的代码,然后上传到 WordPress 站点的根目录,重命名为 .htaccess 即可:

 

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

Nginx伪静态规则

Nginx环境一般是Linux 主机 VPS或服务器用户用的比较多,这些用户一般都会自己配置Nginx,或者有专门的人帮你配置,打开 nginx.conf 或者某个站点的配置环境,比如 wpdaxue.com.conf(不同人配置的不一样),在server { } 大括号里面添加下面的代码,最后保存,重启 Nginx 即可:

 

location / {
if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
        }
if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
        }
if (!-f $request_filename){
                rewrite (.*) /index.php;
        }
}
版权声明:
本网站的所有文字、图片资料,均由作者亲自整理创作,任何媒体、网站或个人未经本网协议授权不得复制、转载、转贴或以其他方式复制发布/发表,请尊重我的劳动成果,侵权必究,谢谢。

    版权声明:

     本网站的所有文字、图片资料,未标注转字的均由作者亲自整理创作,如需复制、转载、转贴等方式发布/发表,请以锚链接的方式显示原文出处,请尊重我的劳动成果,侵权必究。本网站转载的文章如有侵权的地方请及时联系本人,核对后会第一时间删除!

阿沐
1625139774@qq.com

发表评论