大きなダウンタイムなしにWordPressサイト(move WordPress site)をマネージド/アンマネージド/共有/専用/ VPSホスティングから別のホスティングに移動したい場合は、これが必要なガイドです。すでにSSLを使用している場合、またはサイトを共有ホスティングからVPSに移動する場合は、少しダウンタイムが発生する可能性があります。
WordPress(Migrate WordPress)サイトをあるサーバーから別のサーバーに移行する
Hostgator、Bluehost、Sitegroundなどの共有ホスティングでホストされているWebサイトがある場合は、これらの手順に従う必要があります。一般的に、これらの共有ホスティング会社はcPanelを提供しているため、cPanelを使用してすべてを移動するのは非常に簡単です。
まず、データベースだけでなくファイルも含めてすべてをバックアップする必要があります。
ファイルをバックアップするには、ホスティングプロバイダーから提供された「ファイルマネージャー」を開く必要があります。これはcPanelにあります。ホスティングアカウントに複数のドメインを追加した場合は、それに応じてナビゲートする必要があります。それ以外の場合は、 public_html(public_html)というディレクトリを見つけることができます。このディレクトリには、 WordPressコアを含むすべてのファイルがあります。すべてのファイルを選択(Select)し、拡張子が.zipのアーカイブを作成して、圧縮フォルダーを作成します。それをあなたのコンピュータにダウンロードしてください。単一のファイル(主にデフォルトで非表示になっている.htaccess )を忘れないでください。
次に、データベースをバックアップする必要があります。すでにcPanelとphpMyAdminがあるので、そのツールを使用してデータベースをダウンロードできます。これを行うには、cPanelを開き、phpMyAdminに移動します。データベース名は左側にあります。それを選択し、[エクスポート(Export )]タブに切り替えます。
ここから、[エクスポート方法としてクイック]を選択し、(Export method) [形式(Quick )](Format )ドロップダウンメニューから[ SQL ]を選択する必要があります。(SQL)その後、[実行]ボタンをクリックしてダウンロードを開始します。(Go )
ここで、新しいホスティングアカウントに移動し、最初にドメインを追加する必要があります。新しいアカウントにサインアップするときにすでにそれを行っている場合は、再度行う必要はありません。ただし、まだ行っていない場合は、ドメインをcPanelに追加する必要があります。[アドオンドメイン](Addon Domains)オプションを使用できます(異なる場合もありますが、用語は同じです)。
その後、新しいWebサイトのデータベースを作成する必要があります。作成するときは、データベース名、ユーザーID、およびパスワードを書き留めることを忘れないでください。これらがないと、ファイルをデータベースにマップできません。
MySQLデータベース(MySQL Database)オプションはcPanelにあり、これを使用して実行できます。データベースを作成するには、データベース名、ユーザーID、およびパスワードを入力する必要があります。データベース名ファイルを作成してから、ユーザーIDとパスワードを追加する必要があります。その後、ユーザーIDがデータベースにアクセスすることを許可する必要があります。そのためには、データベースへのユーザーの追加(Add user to database)というセクションを使用できます。
[追加(Add )]ボタンをクリックすると、データベースの特定のものにアクセスするためにユーザーIDを許可/ブロックする必要があるウィンドウが表示されます。問題を取り除くには、 [すべての特権(ALL PRIVILEGES )]オプションにチェックマークを付けて、[変更(Make Changes )を加える]ボタンをクリックします。
次に、古いホスティングアカウントからダウンロードしたデータベースをアップロードする必要があります。そのためには、phpMyAdminアプリを開き、左側からデータベースを選択します。その後、 [インポート(Import)]タブに移動します。[ファイルの選択(Choose File)]というボタンがあります。それをクリック(Click)して、コンピューターからファイルを選択します。
画面上の何も変更せずに、[実行]ボタンを直接クリックします。(Go )アップロードが完了するまでに数秒かかるはずです。
次のステップは、古いサーバーからダウンロードしたファイルをアップロードすることです。これを行うには、ファイルマネージャ(File Manager)を使用してドメインのルートディレクトリを開き、public_htmlに移動します。ドメインが1つある場合は、ここにすべてのファイルをアップロードします。複数のドメインがある場合は、そのドメインのルートディレクトリに移動し、そこにファイルをアップロードします。アップロード後、zip形式のフォルダを解凍する必要があります。
ここで、古いデータベースの詳細を新しいデータベースの詳細に置き換える必要があります。そのためには、 wp-config.php(wp-config.php )ファイルを開き、データベース名、ユーザーID、およびパスワードを置き換えます。変更後、ファイルを保存します。
次に、ドメインのネームサーバーを変更する必要があります。そのためには、ホスティングアカウントからネームサーバーを取得し、ドメインのコントロールパネルに入力します。ドメインプロバイダーが異なれば、オプションも異なります。(Different)ただし、それを検索するか、サポートチームにサポートを依頼することができます。
この手順が完了すると、あるホストから別のホストへのファイルの移行が完了します。すべてを伝播するのに最大48時間かかる場合があります。それまでの間、このWebサイト(this website)を開いて、サイトに新しいIPが表示されているか古いIPが表示されているかを確認できます。新しいIPアドレスが表示されている場合は、伝播が行われます。コンピューターのpingツールを使用してIPアドレスを確認することもできます。コンピューターに古いIPが表示されているのに、オンラインツールに新しいIPが表示されている場合は、DNSキャッシュをフラッシュする(flush your DNS cache)必要があります。
WordPressサイトを共有ホスティングからアンマネージドVPSに移行する方法
WordPress Webサイトを共有ホスティングから別の共有ホスティングに移動するのは非常に簡単です。どちらにもcPanelがあり、phpMyAdminやファイルマネージャー(File Manager)などの必要なツールがすべて揃っているからです。ただし、ルートアクセスを取得でき、管理されていないVPSは共有ホスティングよりも比較的安価であるため、管理されていないVPSを選択する人はたくさんいます。
アンマネージドVPSとは
VPSは仮想プライベートサーバー(Private Server)を意味します。簡単に言うと、VPSホスティングアカウントにcPanelがない場合は、アンマネージドVPSと呼ぶことができます。管理されていないVPS(VPS)サーバーにアクセスするには、 Putty、FilezillaやCyber duckなどの(Cyberduck)FTPクライアント(FTP client)などのツールが必要です。管理されていないVPS(VPS)プロバイダーの例としては、 Digital Ocean、Linode、Vultrなどがあります。
アンマネージドVPS(VPS)アカウントを既に購入していて、何もわからないが、WordPressサイトを共有ホスティングからアンマネージドVPSに移動したい場合は、次の手順を実行できます。
始める前に、ここ(here)からCyberduckとPuttyをダウンロード(download Cyberduck)してください。また、すべてのファイルとデータベースを含む古いサイトのバックアップをダウンロードする必要があります。手順は上記のとおりです。
さて、 WordPress(WordPress)、Ghost、Joomla、Discourseなどの一部の企業はワンクリックアプリを提供していますが、 Linodeのような他の企業はそのようなものを提供していないことを知っておく必要があります。その場合、ServerPilot、ServerAvatar、EasyEngineなどの他のサードパーティツールを使用できます。その中で、ServerPilotは最近有料ツールになりましたが、セキュリティと使いやすさの点でこれまでで最高です。
使用するホスティングアカウントに関係なく、最初にサーバーを作成し、OSをインストールして、rootパスワードを書き留める必要があります。ホスティングプロバイダーが異なればオプションも異なりますが、基本的なことは同じです。(Different)ただし、ServerPilotを使用する場合は、64ビットバージョンのUbuntuLTS16.04または18.04を使用する必要があります。彼らは他に何もサポートしていません。
したがって、ホスティングアカウントにドメイン名を追加し、ドメインアカウントのネームサーバーを変更する必要があります。また、これからはVPNを使用することをお勧めします。(VPN)そう(Otherwise)しないと、コンピューターから新しいホスティングアカウントを検出できません。
Digital OceanまたはVultrのワンクリックアプリを使用すると、WordPressをすばやくインストールできます。この方法を選択した場合、WordPressのインストールファイルは次の場所にあります。
/var/html
ServerPilotを使用してWordPressをインストールする場合、WordPressのインストールファイルは次の場所にあります。
/srv/users/user_name/apps/app_name/public
wp-config.phpというファイルが見つかります。それをダウンロードし、データベースのユーザー名とパスワードを保持します。これを行うことを忘れないでください。
すべてのWordPressインストールファイルを削除する必要があります。wp-admin、wp-content、およびwp-includesフォルダーの削除には時間がかかるため、puttyを使用してそれらを削除できます。そのためには、Puttyを開き、サーバーのIPアドレスを入力します。ポートが(Port)22に設定されていることを確認してください(Make)。その後、[開く(Open )]ボタンをクリックして接続を確認します。その後、ユーザー名とパスワードを入力する必要があります。ユーザー名としてrootを入力します。ホスティングアカウントでサーバーを作成した後、同じページまたは電子メールでパスワードを取得する必要があります。
次に、次のように入力します。
ワンクリックアプリユーザー:(One-click app users:)
rm -rf /var/html/wp-admin
rm -rf /var/html/wp-content
rm -rf /var/html/wp-includes
ServerPilotユーザー:(ServerPilot users:)
rm -rf /srv/users/user_name/apps/app_name/public/wp-admin
rm -rf /srv/users/user_name/apps/app_name/public/wp-content
rm -rf /srv/users/user_name/apps/app_name/public/wp-includes
その後、Cyberduckアプリを開き、そのフォルダーに移動して、他のインストールファイルを削除できます。
次のステップでは、 zip(zipped)形式のバックアップファイルをアップロードする必要があります。それを行い、ファイルを解凍します。解凍中にエラーが発生した場合は、Puttyに次のコマンドを入力できます。
sudo apt-get update
sudo apt-get install unzip
これらのファイルを解凍した後、データベース情報を置き換える必要があります。そのためには、ダウンロードしたwp-config.phpファイルを開きます。次に、アップロードしたばかりの現在のwp-config.phpファイルを開きます。ダウンロードしたwp-config.phpファイルからデータベース名、ユーザーID、およびパスワードをコピーし、アップロードしたwp-config.phpファイルに置き換えます。
その後、phpMyAdminをインストールする必要があります。そうしないと、データベースをインポートできません。そのためには、次の手順に従います。
S0ここ(here)からphpMyAdminの最新バージョンをダウンロードし、zipファイルをルートディレクトリにアップロードします。その後、ファイルを解凍して名前を変更します。確認してください。(Make)推測できない名前を使用します。たとえば、abcdを選択した場合、次のようにphpMyAdminを開くことができます。
http://your-domain-name/abcd
名前を選択したら、フォルダーを開いてconfig.sample.inc.php(config.sample.inc.php)ファイルを見つけます。名前をconfig.inc.php(config.inc.php)に変更できます。その後、エディターでこのファイルを開き、次のように変更します。
$cfg['blowfish_secret']
次のようになります。
$cfg['blowfish_secret'] = 'k7i259684(*^3q42bd^$4353yow*q5Trs^1'
次に、phpMyAdminを開き、データベースのユーザーIDとパスワードを入力してログインします。その後、左側でデータベース名を選択し、すべてのデータベーステーブルを選択して、それに応じて削除します。
次に、 [インポート(Import )]タブに移動し、前にダウンロードしたデータベースをインポートします。
それで全部です!これで、新しいホスティングアカウントでWebサイトが正しく実行されるはずです。
WordPressサイトを管理されていないVPSから共有ホスティングに移動する方法
これは非常に簡単で、時間もかかりません。一番いいのは、手順がほとんど同じだということです。ただし、phpMyAdminをインストールしていない場合は、データベースをダウンロードするためにインストールする必要があります。
一言で言えば、これらはあなたが従う必要があるステップです。
- (Download)VPSアカウントからすべてのファイルをダウンロードします。
- データベースをダウンロードします。
- 共有ホスティングアカウントにデータベースを作成し、そのデータベースをユーザーに割り当てます。
- すべてのファイルを新しいホスティングアカウントにアップロードします。
- wp-config.phpファイルのデータベース名、ユーザー名、およびパスワードを変更します。
- ドメインコントロールパネルでネームサーバーを変更します。
それで全部です!
サーバーを変更した後の一般的な問題
移行が完了すると、さまざまな問題が発生する可能性があります。それらのいくつかを以下に示します。
ホームページは開いていますが、投稿に404エラーが表示されています(Homepage is opening, but posts are showing 404 error)
.htaccessファイルを確認し、これをデフォルトとして使用します。
# BEGIN WordPress
<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
また、ここに行きます:
/etc/apache2/apache2.conf
そして、この変更を行います。
<Directory /var/www/>
AllowOverride All
</Directory>
プラグインをインストールできず、FTPログインの詳細を尋ねる(Unable to install plugins, asking FTP login details)
これは、人々が遭遇する非常に一般的な問題です。wp-config.phpファイルを開いて、これを下部に貼り付ける必要があります。
define( 'FS_METHOD', 'direct' );
インストールに失敗しました:ディレクトリを作成できませんでした(Installation failed: Could not create directory)
画像のアップロード、プラグインのインストール、テーマまたはプラグインの更新ができず、上記のエラーが発生した場合は、権限を変更することで問題を修正できます。Putty(Open Putty)を開き、次のように入力します。
chmod -R 775 directory_path
ファイルのアクセス許可について詳しくは、こちら(here)をご覧ください。
htaccessを使用してwww以外をwwwにリダイレクトする(Redirect non-www to www using htaccess)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^your-domain-name.com [NC]
RewriteRule ^(.*)$ http://www.your-domain-name.com/$1 [L,R=301,NC]
wwwをwww以外にリダイレクトする(Redirect www to non-www)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.your-domain-name.com [NC]
RewriteRule ^(.*)$ http://your-domain-name.com/$1 [L,R=301]
ただし、wwwと@または空白を使用してCNAMEレコードも入力する必要があります。
(Please)SSLは別途インストールする必要がありますのでご注意ください。ホスティングプロバイダーが無料のSSLを提供している場合は、SSLをインストールするように依頼できます。それ以外の場合は、Let's Encryptを使用できます。これは、無料で共有されているSSL証明書を提供します。
How to move WordPress site from one host to another
If yoυ want to move WordPress site from a managed/unmanaged/shared/dedicated/VPS hosting to another without any major downtime, this is the guide you need. If you already have SSL or you want to move a site from shared hosting to VPS, you might face a little bit of downtime.
Migrate WordPress site from one server to another
If you have a website hosted on shared hosting like Hostgator, Bluehost, Siteground, etc., these are the steps you need to follow. Generally, these shared hosting companies provide a cPanel and therefore, it is quite easy to move everything with the help of the cPanel.
First, you need to backup everything including your files as well as the database.
To back up your files, you have to open the ‘File Manager’ that should be provided by your hosting provider, and you can find it in your cPanel. If you have added multiple domains in your hosting account, you need to navigate accordingly. Otherwise, you can find a directory called public_html, where you will get all the files including WordPress core. Select all the files, create an archive with a .zip extension and make the compressed folder. Download it to your computer. Do not forget a single file – mainly the .htaccess, which is hidden by default.
Now you need to backup your database. As you already have cPanel and phpMyAdmin, you can use that tool to download the database. To do so, open up your cPanel and go to phpMyAdmin. You can find your database name on your left-hand side. Select that and switch to Export tab.
From here, you need to choose Quick as Export method, and SQL from the Format drop-down menu. After that, click the Go button to start the download.
Now, you have to go to your new hosting account and add the domain first. If you have already done that while signing up for a new account, you do not have to do that again. However, if you haven’t done that already, you need to add your domain to your cPanel. You can use the Addon Domains option (it can be different, but the term remains similar).
After that, you have to create a database for your new website. While creating, do not forget to note down the database name, user ID and password. Without these, you would not be able to map your files to your database.
You can find the MySQL Database option in your cPanel that you can use to get it done. To create a database, you need to enter a database name, user ID, and password. You have to create the database name file and then add the user ID and password. After that, you have to permit the user ID to access the database. For that, you can use the section called Add user to database.
After clicking the Add button, you should find a window where you have to allow/block user ID to access certain things of the database. To get rid of any problem, you can make a tick in the ALL PRIVILEGES option and click the Make Changes button.
Now, you need to upload the database that you downloaded from the old hosting account. For that, open phpMyAdmin app and select the database from your left-hand side. After that, go to Import tab. You should find a button called Choose File. Click on that and select the file from your computer.
Do not change anything on the screen and click the Go button directly. It should take a couple of seconds to finish the upload.
The next step is to upload the files that you downloaded from the old server. To do so, open up your root directory of your domain using the File Manager and go to public_html. If you have one domain, upload all the files here. If you have multiple domains, navigate to that domain’s root directory and upload files there. After uploading, you need to unzip the zipped folder.
Now, you need to replace the old database details with the new one. For that, open up the wp-config.php file and replace database name, user ID and password. After changing, save the file.
Next, you need to change the name server of your domain. For that, get the name server from your hosting account and enter them in your domain’s control panel. Different domain provider has different options. However, you can search for that or ask the support team for help.
With that step done, you are finished migrating your files from one host to another. It might take up to 48 hours to propagate everything. In the meantime, you can open this website, and check if your site is showing new IP or old one. If the new IP address is visible, the propagation is done. You can also use the ping tool on your computer to check the IP address. If your computer is showing old IP but the online tool is showing the new IP, you need to flush your DNS cache.
How to move WordPress site from shared hosting to unmanaged VPS
It is quite easy to move a WordPress website from shared hosting to another shared hosting since both of them have cPanel, which has all the necessary tools like phpMyAdmin, File Manager and so on. However, there are many people, who often choose unmanaged VPS because you can get root access and unmanaged VPS is comparatively cheaper than shared hosting.
What is an unmanaged VPS
VPS means Virtual Private Server. In simple words, if your VPS hosting account doesn’t have a cPanel, you can call it an unmanaged VPS. To access an unmanaged VPS server, you need some tools like Putty, FTP client like Filezilla or Cyberduck. Some examples of unmanaged VPS providers are Digital Ocean, Linode, Vultr, and so on.
If you have already purchased an unmanaged VPS account, and you do not know anything, but you want to move your WordPress site from shared hosting to unmanaged VPS, you can follow these following steps.
Before getting started, download Cyberduck and Putty from here. Also, you need to download the old site backup including all files and database. The steps are mentioned above.
Now, you should know that some companies like WordPress, Ghost, Joomla, Discourse, etc., provide one-click apps, whereas others like Linode do not offer such a thing. In that case, you can use some other third-party tools like ServerPilot, ServerAvatar, EasyEngine, etc. Among them, ServerPilot has recently become a paid tool – but this is the best so far in terms of security and usability.
No matter which hosting account you use, you have to create a server first, install the OS, and note down the root password. Different hosting providers have different options, but the core thing is the same. However, if you use ServerPilot, you have to use the 64-bit version of Ubuntu LTS 16.04 or 18.04. They do not support anything else.
Therefore, you need to add the domain name in your hosting account and change the nameserver in your domain account. Also, this is suggested to use a VPN from now on. Otherwise, you cannot detect the new hosting account from your computer.
If you use the one-click app of Digital Ocean or Vultr, you can install WordPress quickly. If you choose this method, you can find your WordPress installation files here:
/var/html
If you use ServerPilot to install WordPress, you can find your WordPress installation files here:
/srv/users/user_name/apps/app_name/public
You should find a file called wp-config.php. Download it and keep the database username, and password. Do not forget to do this.
You have to delete all the WordPress installation files. As wp-admin, wp-content, and wp-includes folders take a lot of time to be deleted, you can use putty to remove them. For that, open Putty, and enter the IP address of your server. Make sure the Port is set as 22. Following that, click the Open button and confirm the connection. After that, you need to enter your username and password. Enter root as username. You should get a password on the same page or via email after creating the server in your hosting account.
Next, enter this:
One-click app users:
rm -rf /var/html/wp-admin
rm -rf /var/html/wp-content
rm -rf /var/html/wp-includes
ServerPilot users:
rm -rf /srv/users/user_name/apps/app_name/public/wp-admin
rm -rf /srv/users/user_name/apps/app_name/public/wp-content
rm -rf /srv/users/user_name/apps/app_name/public/wp-includes
After that, you can open the Cyberduck app, navigate to that folder and delete other installation files.
In the next step, you need to upload the zipped backup file. Do that, and unzip the file. If you get any error while unzipping, you can enter this command in the Putty:
sudo apt-get update
sudo apt-get install unzip
After unzipping those files, you have to replace the database information. For that, open up the wp-config.php file that you downloaded. Next, open the current wp-config.php file that you just uploaded. Copy the database name, user ID and password from the downloaded wp-config.php file and replace them with the uploaded wp-config.php file.
Following that, you need to install phpMyAdmin. Otherwise, you cannot import the database. For that, follow these steps.
S0 download the latest version of phpMyAdmin from here and upload the zip file to your root directory. After that, unzip the file and rename it. Make sure; you use an unguessable name. For example, if you choose abcd, you can open the phpMyAdmin like this:
http://your-domain-name/abcd
After choosing a name, open the folder and find out config.sample.inc.php file. You can rename it to config.inc.php. After that, open this file with an editor and make a change in the like that says:
$cfg['blowfish_secret']
It should look like this:
$cfg['blowfish_secret'] = 'k7i259684(*^3q42bd^$4353yow*q5Trs^1'
Now, open phpMyAdmin, and enter the database user ID and password to log in. Following that, select the database name on your left-hand side, select all the database tables, and remove them accordingly.
Then, go to Import tab, and import the database that you downloaded earlier.
That’s all! Now your website should run properly on the new hosting account.
How to move WordPress site from unmanaged VPS to shared hosting
This is quite easy and not much time-consuming as well. The best thing is the steps are almost the same. Except, if you haven’t installed the phpMyAdmin, you need to do that to download the database.
In a nutshell, these are the steps you need to follow.
- Download all files from VPS account.
- Download the database.
- Create a database in your shared hosting account and assign the database to a user.
- Upload all the files to your new hosting account.
- Change the database name, username, and password in the wp-config.php file.
- Change the nameserver in your domain control panel.
That’s all!
Common problems after changing the server
You might face different problems after completing the migration. Some of them are mentioned below.
Homepage is opening, but posts are showing 404 error
Check your .htaccess file and use this as default:
# BEGIN WordPress
<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
Also, go here:
/etc/apache2/apache2.conf
And make this change:
<Directory /var/www/>
AllowOverride All
</Directory>
Unable to install plugins, asking FTP login details
This is a very common problem that people encounter. You need to open your wp-config.php file and paste this at the bottom;
define( 'FS_METHOD', 'direct' );
Installation failed: Could not create directory
If you are unable to upload an image, install plugins, update theme or plugin, and you are getting the error above, you can fix that by changing the permission. Open Putty and enter this:
chmod -R 775 directory_path
You can learn more about file permission from here.
Redirect non-www to www using htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^your-domain-name.com [NC]
RewriteRule ^(.*)$ http://www.your-domain-name.com/$1 [L,R=301,NC]
Redirect www to non-www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.your-domain-name.com [NC]
RewriteRule ^(.*)$ http://your-domain-name.com/$1 [L,R=301]
However, you should also enter a CNAME record with www as well as @ or blank.
Please note that you need to install the SSL separately. If your hosting provider offers free SSL, you can ask them to install that for you. Otherwise, you can use Let’s Encrypt, which provides free but shared SSL certificate.