皆さん、こんにちはー!シアです☆
今回はいよいよ、このブログコンテンツとデータベースをVPSにアップロードして、動作チェックをしていきます。
目次
1. 用意するもの
あらかじめ、サーバー上のWordPress本体とデータベースをローカルPCにダウンロードしておきましょう。
データベースはzipなどで圧縮しておくのがポイントですよ。
データベースはzipなどで圧縮しておくのがポイントですよ。
1.1. IISからApacheに移行する場合
本ブログは、IISからApacheに移行するので、IISで使用していたweb.configの代わりに.htaccessを使用します。
.htaccessを使用する時は、/etc/httpd/conf/httpd.confファイルの<Directory “/var/www/html”>内にあるAllowOverrideの値を「All」に設定します。
.htaccessを使用する時は、/etc/httpd/conf/httpd.confファイルの<Directory “/var/www/html”>内にあるAllowOverrideの値を「All」に設定します。
<Directory "/var/www/html">
# ...
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
# ...
</Directory>
WordPressのドキュメントルート内に.htaccessファイルを作成します。
# 圧縮の設定
AddType image/x-icon .ico
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
#DeflateCompressionLevel 4
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>
# キャッシュの設定
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/x-icon "access plus 1 weeks"
ExpiresByType text/css "access plus 1 days"
ExpiresByType text/javascript "access plus 1 days"
ExpiresByType application/x-javascript "access plus 1 days"
ExpiresByType application/x-shockwave-flash "access plus 1 days"
</ifModule>
FileETag none
# wp-config.php、wp-mail.php、wp-install.php、.htaccess、.htpasswdへのアクセスを禁止します。
<FilesMatch "^(wp-config\.php|wp-mail\.php|install\.php|\.ht)">
order allow,deny
deny from all
</FilesMatch>
# URLリライト設定
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2. データベースをアップロードしよう
まずは、データベースをアップロードしていきましょう。
2.1. データベース用の一般ユーザーを作成しよう
データベースもroot以外のユーザーを作った方がいいのかな?
そうですね。ついでにデータベースの勉強もちょっとしていきましょう。
まず、MariaDBにrootユーザーでログインします。
mysql -u root -p
ユーザーを新規作成する時は、「CREATE USER」文を使用します。USERの後に「’ユーザー名’@’localhost’」を、IDENTIFIED BYの後にパスワードを入力します。正常に作成できたら、phpMyAdminからログインできるか確認してみましょう。
CREATE USER 'xiia'@'localhost' IDENTIFIED BY '[パスワード]';
次に、作成したユーザーに「GRANT」文でデータベースの権限を与えます。
GRANT ALL PRIVILEGES ON *.* TO 'xiia'@'localhost';
権限を与えたら、「FLUSH PRIVILEGES」文を実行して、設定を反映させます。
FLUSH PRIVILEGES;
2.2. データベースをアップロードしよう
phpMyAdminにログインし、インポートタブをクリックします。
インポートするファイルのラジオボタンから「アップロードファイル」を選択し、データベースのファイルを選択します。
択したら、ページ下部の実行ボタンをクリックします。
これで、データベースをアップロードできました。
3. WordPress本体をアップロードしよう
次は、WordPress本体をSFTP接続でVPS上にアップロードしましょう。ここでは、「WinSCP」を使用しています。
SFTPって何? FTPとは何か違うの?
SFTPとは、SSH(Secure SHell) File Transfer Protocolの略で、読んで字の如く、SSHを利用してファイルの転送を行うプロトコルです。
FTPでは通信内容を暗号化せずにそのまま伝送する仕組み上、第三者から盗聴されるリスクがあるので、通信内容を暗号化できるSFTPやFTPS(FTP over SSL/TLS)が推奨されているのです。
FTPでは通信内容を暗号化せずにそのまま伝送する仕組み上、第三者から盗聴されるリスクがあるので、通信内容を暗号化できるSFTPやFTPS(FTP over SSL/TLS)が推奨されているのです。
3.1. WinSCPでVPSに接続しよう
まずは、WinSCPでVPSに接続します。左側のセッション名から「新しいサイト」を選択します。
転送プロトコルは「SFTP」を選択し、ホスト名とポート番号、ユーザー名を入力して、設定ボタンをクリックします。
転送プロトコルは「SFTP」を選択し、ホスト名とポート番号、ユーザー名を入力して、設定ボタンをクリックします。
設定画面が現れたら、左のツリーから「SSH」→「認証」を選択し、秘密鍵のファイルを選択します。
何かダイアログが出てきましたよっ!?
WinSCPで対応している秘密鍵はPuTTY形式ですが、Linuxのssh-keygenコマンドやTera TermのSSH鍵生成機能で作成した秘密鍵の場合、あらかじめPuTTY形式に変換する必要があります。OKボタンをクリックして、PuTTYgenを起動しましょう。
PuTTYgenを起動したら、「Save private key」ボタンをクリックしてPuTTY形式の秘密鍵を保存します。
保存したら、PuTTYgenを閉じて、先ほどの設定画面の秘密鍵にそれを選択し、OKボタンをクリックします。
もしかして、作成したPuTTY形式の秘密鍵はTera Termにも利用できるの?
もちろんです!
設定が終わったら、保存ボタンをクリックしてセッションの情報を保存し、ログインボタンをクリックしてVPSにSSH接続しましょう。
はじめて接続する時、以下のようなダイアログが表します。RSA鍵の鍵指数を確認し、「はい」をクリックします。
はじめて接続する時、以下のようなダイアログが表します。RSA鍵の鍵指数を確認し、「はい」をクリックします。
3.2. ファイルをアップロードしよう
VPSに接続したら、サーバー側はApacheのドキュメントルート(/var/www/html)を表示し、ローカルPCにダウンロードしておいたWordPressをサーバーにアップロードします。
WinSCPでは、ローカルPC側のファイルを選択して、サーバー側にドラッグ&ドロップするだけで、簡単にアップロードできます。
WinSCPでは、ローカルPC側のファイルを選択して、サーバー側にドラッグ&ドロップするだけで、簡単にアップロードできます。
アップロードが終わるまで気長に待ちましょう。
3.3. グループとパーミッションを設定しよう
ファイルをアップロードしたら、ファイルとディレクトリのグループを「www」に変更し、パーミッションを設定しましょう。特にwp-config.phpとadmin/install.phpは所有者以外から書き換えできないようにするのがポイントです。
また、WordPressの管理画面上からプラグインやテーマファイルの編集を更新できるようにする時は、wp-content内のpluginsやthemesなどのパーミッションを所有者以外からでも書き込みできるように設定します。
また、WordPressの管理画面上からプラグインやテーマファイルの編集を更新できるようにする時は、wp-content内のpluginsやthemesなどのパーミッションを所有者以外からでも書き込みできるように設定します。
WordPress内のファイル・ディレクトリ | パーミッション |
---|---|
.htaccessと.htpasswd | 644
(ドキュメントルートの.htaccessのみ、パーマリンクの設定をする時は664) |
wp-config.php | 400または440もしくは444 |
wp-admin/install.php | 000 |
以下のディレクトリ及びその中のディレクトリ
|
775 |
以下のディレクトリ内のファイル
|
664 |
XMLサイトマップ(使用する場合) | 664 |
上記以外のディレクトリ | 755 |
上記以外のファイル | 644 |
WinSCPでは、ファイルやディレクトリのプロパティからパーミッションを設定することができます。
アップロードしたファイルが多すぎて、1つ1つパーミッションを設定するのが煩わしいですよっ。何かいい方法はあるかな?
こういう時は、「find」コマンドを使ってファイルまたはディレクトリを検索し、execオプションでchmodコマンドを実行する方法があります。
# [ディレクトリ名内]のディレクトリのパーミッションを755に設定します。
find [ディレクトリ名]/ -type d -exec chmod 755 {} \;
# [ディレクトリ名内]のファイルのディレクトリを644に設定します。
find [ディレクトリ名]/ -type f -exec chmod 644 {} \;
# カレントディレクトリがドキュメントルートにいるとします。
# すべてのディレクトリのパーミッションを755に設定します。
find ./ -type d -exec chmod 755 {} \;
# プラグイン、テーマ、翻訳、アップロードしたファイルのディレクトリのパーミッションを775に設定します。
chmod 775 wp-content/plugins
chmod 775 wp-content/themes
chmod 775 wp-content/uploads
find wp-content/plugins/ -type d -exec chmod 775 {} \;
find wp-content/themes/ -type d -exec chmod 775 {} \;
find wp-content/uploads/ -type d -exec chmod 775 {} \;
find wp-content/languages/ -type d -exec chmod 775 {} \;
# wp-config.phpと、install.phpを除くファイルのパーミッションを644に設定します。
find ./ -type f -not -name 'wp-config.php' -not -name 'install.php' -exec chmod 644 {} \;
# プラグイン、テーマ、翻訳、アップロードしたファイルのパーミッションを664に設定します。
# 但し、.htaccessと.htpasswdを除きます。
find wp-content/plugins/ -type f -not -name '.htaccess' -not -name '.htpasswd' -exec chmod 664 {} \;
find wp-content/themes/ -type f -not -name '.htaccess' -not -name '.htpasswd' -exec chmod 664 {} \;
find wp-content/uploads/ -type f -not -name '.htaccess' -not -name '.htpasswd' -exec chmod 664 {} \;
find wp-content/languages/ -type f -not -name '.htaccess' -not -name '.htpasswd' -exec chmod 664 {} \;
# wp-config.phpのパーミッションを400に設定します。
chmod 400 wp-config.php
# wp-admin/install.phpのパーミッションを000に設定
chmod 000 wp-admin/install.php
パーミッションの設定したら、サイトにアクセスできるか確認してみましょう。
4. おわりに
やった~、わたし達のサイトがLinux環境で上手く動きましたよっ♪
はじめはちょっと難しかったけど、Linuxサーバーの使い方が少し分かってきました。
はじめはちょっと難しかったけど、Linuxサーバーの使い方が少し分かってきました。
それは、よかったです。
さて、今回は本ブログをVPS上にアップロードして、動作チェックを行いました。
近日中に本ブログをKUSANAGI for ConoHaに移行していきたいと思います。
それでは、See you☆
さて、今回は本ブログをVPS上にアップロードして、動作チェックを行いました。
近日中に本ブログをKUSANAGI for ConoHaに移行していきたいと思います。
それでは、See you☆
更新履歴
- 2016/05/04 : パーミッションの設定を見直しました。
参考サイト
シアたんとミョウガのサーバー乗り換え大作戦!の記事一覧
- VPSを作成してみよう
- VPSを起動してみよう
- ターミナルソフトからリモートログインしてみよう
- PHPとデータベースを導入してみよう
- WordPressをVPSにアップロードしてみよう