クイックノート

ちょっとした発見・アイデアから知識の発掘を

初心者がVPSにWordPressをインストールする【ServersMan+Ubuntu+WordPress】

WordPress はカスタマイズの幅が広い、
ホームページ作成ツールとして有名です。

WordPress をインストールすれば、
ブラウザからサーバにアクセスして、
そのまま、サイトの編集ができるようになります。
また、多くのプラグインが提供されていて、
こうできたらいいのにを実現しやすいツールです。

そんな、WordPressを使うには、
WordPress をインストールするサーバーが必要です。
サーバーでは、無料のものも多くありますが、
その多くは、「共有サーバー」と呼ばれるもので、
WordPress だけ触らせてもらえるようなものがほとんどです。

後々、WordPress 以外のツールも使いたいと思っている場合は、
自分専用のサーバーが欲しくなりますね。
今では、かなり安価で、
仮想的に専用のサーバーを提供してくれる「VPS」と呼ばれるサービスも多くあります。
今回は、このVPSを利用して、WordPressのインストールを行う方法をまとめておきます。

WordPress の構成

初めに、WordPress の構成を見ておきましょう。
以下で、様々な手順を実行していくときに、
見通しが良くなるはずです。

サーバーの役割

まず、WordPress はサーバーで実行されます。
Webサイトを他の人に表示するのも、Webサイトを自分で編集するのも、
基本は、WordPress が動いているサーバーで行います。

サイトの持ち主である自分も、
サーバーにアクセスしてサイトの編集をするのが基本的な形になります。

サーバーは、自分の持ってるPCを使ってもいいのですが、
Webサイトは何時でも誰でもアクセスできる必要があるので、
サーバーは電源つけっぱなしじゃないといけません。

そうなると、電気代もかかりますし、
うっかり電源を落とすとWebサイトに繋がらなくなる、
いわゆるWebの障害になってしまいます。

VPS を使えば、おそらくは電気代よりも安価に、
常時つけっぱなしのサーバーを家の外で借りられるので、
これらの問題は解決です。

WordPress を支えるツールたち

WordPress 本体だけでは、Webサイトとして機能しません。 主に、下の三つのツールと連携しながらWebサイトを提供します。

  • PHP
  • データベース
  • HTTP サーバー

PHP

WordPress は、大部分が PHP とよばれるプログラムで構成されています。
そのため、この PHP を動作させる環境をサーバー上で構築しておく必要があります。

データベース

WordPress は、記事などのWebページの中身をデータベースに格納しています。
ページの中身とデザインを分けておき、
後で合成することで、表示するためのページを作り出す仕組みになっています。
この仕組みのおかげで、中身と独立して自由にデザインを変えられるのですね。

HTTPサーバー

WordPress は、Webページの中身を作りますが、
その中身を来訪者に渡す人が必要です。

これはいわゆるHTTPサーバーの仕事です。 ここでは、メジャーなHTTPサーバーであるApacheを使うことにします。

VPSレンタルサーバーの契約

まずは、VPSを提供しているレンタルサーバーの契約を行いましょう。
提供しているサービスごとにスペックや価格設定が異なりますが、
ここでは、ServersManを使うことにします。

他のVPSにしても、ほぼ手順は変わらないでしょう。

契約するためには、サービスのサイトに行きます。

dream.jp

基本は、Webページの案内に従って契約を進めていけばOKです。

サーバーの初期設定についても尋ねられるので、
今回は、「自分でカスタマイズ」から「Ubuntu」を初期OSに設定します。

f:id:u874072e:20180727143213p:plain:w400

f:id:u874072e:20180727143149p:plain:h300

手続が完了すれば、IPアドレスやログイン情報などを含めた、
サーバーの情報がメールで届きます。
これで、自分のサーバーを手にいれました。

ドメインを取得する

ドメインとはいわゆる「○○.com」のように、
URLに含まれてくる文字列です。

ドメインなんてなくても、IP のついたサーバーさえあれば、
WordPress のサイトを立ち上げることはできるのですが、
とはいえ、どのサイトもドメインを持っているのが普通ですし、
ドメインを持っていないと何かと不便が多くなります。

まともなサイトはどこもドメインを持っているので、
まともなサイト作りを目指すからには、ドメインを取得しましょう。

無料のドメインもありますが、期限付きだったりするので、
無難に有料のドメインを使うことにします。
有料といっても、かなり安価なものが多いです。

ドメインの契約

ドメインを提供してくれるサービスは複数ありますが、
ここでは「ムームードメイン」を使うことにします。

muumuu-domain.com

Webサイトにアクセスしたら、使いたいドメイン名を検索して、
すでに使用されていないかを確認します。

使用可能なドメインであれば、そのまま契約に進むことができます。

Webページの案内に従って手続きを進めれば、
自分のドメインドメイン管理用のログイン情報が得られます。

DNS の設定

ドメインを取得したら、それで終了ではありません。
ドメインとは、サーバーの名前のようなものですが、
今取得したドメインがどのサーバーのものかがこのままだと分かりません。

これは、DNSの設定で決まります。 DNS は「ドメイン」と「サーバーのIP」を紐づける仕組みで、
この対応を教えることで、取得したドメイン名で、
VPSのサーバーにアクセスできるようになります。

DNSムームDNSを選んでいれば、
ムームードメインの管理画面から、
ムームDNS]→「変更」→「設定2」で、
次のようなテーブルを編集して、設定します。

f:id:u874072e:20180727145103p:plain f:id:u874072e:20180727145037p:plain

サブドメインを空欄にすると、取得したドメインそのものの設定となり、
種別「Aレコード」にして、
VPSの「IPv4 アドレス」を内容に記入します。

最後に「セットアップ情報変更」をクリックして設定を完了します。

DNSは世界中のコンピューターにドメインIPアドレスの対応を教えるので、
設定の変更が反映されるにはしばらく時間がかかることもあります。

サーバーの操作

さあ、契約してからほったらかしでしたが、
ここからは、サーバーを触っていきます。

まずは ssh でリモートログイン

当然ですが、サーバーは手元にないので、
リモートログインして操作することになります。

大抵の場合は、ssh によるリモートログインを提供しているはずです。
ただし、VPSからリモートログイン用にポートが指定されている場合があるので、
契約時の情報をチェックしてssh用のポート番号を確認しておきましょう。

ssh [ログイン名]@[IPアドレス] -p [ssh用のポート番号]

上の大括弧で囲んだ部分は、すべて契約時のメールを参照しましょう。
DNSの設定が反映されていれば、[IPアドレス]は取得したドメイン名でもOKです。

つぎにパスワードを要求されるので、それも契約時のメールのものを入力すればログイン完了です。

ここから、コマンドで、サーバーの操作を始めていきます。

ユーザーの作成

常に root で操作するのも気持ち悪いので、
ユーザーを作っておきましょう。
またsudoにも登録しておきます。

adduser [ユーザー名]
gpasswd -a [ユーザー名] sudo

apt の更新

初期設定の状態だと情報が古いことが多いので、初めに更新をかけておきます。

sudo apt-get update

software-properties-common のインストール

サーバーの再起動時に、いちいちWebサイトを立ち上げ直すのは面倒なので、
起動時に自動で実行するようにします。

sysv-rc-conf コマンドを使って自動起動を設定しますが、
このコマンドを入れるために、software-properties-commonパッケージをインストールします。

sudo apt install software-properties-common

Apache のインストール

続いて、WordPress を支える3大ツールのうちの一つ、
HTTP サーバーをインストールするのですが、
ServersMan の場合、初めから Apache というHTTPサーバーがインストールされています。

※むしろCentOSを選択していれば、WordPress自体が初めから入っています

とりあえず、どうさ確認として、Webブラウザ
「http://[ドメイン名]」と入力してみて、Apacheの画面が表示されることを確認しておきましょう。

ついでに、DNSの設定が反映されたかも確認できますね。
反映されていない場合は、「http://[IPアドレス]」で確認しておきましょう。

後は、apache自動起動だけ設定しておきましょう。

sudo sysv-rc-conf apache2 on

PHP のインストール

続いて、PHPのインストールを行います。
PHPは必要に応じてモジュールを追加でインストールすることになりますが、
ここでは、最小限必要なものだけインストールしておきます。

sudo apt install php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-gd

MySQL のインストール

3大ツール最後の一つデータベースをインストールします。
データベースにも様々な種類がありますが、
ここではMySQLを使うことにします。

インストール

インストールは次のコマンドで行います。

sudo apt install mysql-server

途中でパスワード等を設定するので、忘れないようにしましょう。

データベースの作成

WordPress と連携するためのデータベースを用意します。

まずは、MySQLにログインします。

mysql -u root -p

パスワード要求されるので、入力すると、
MySQLの操作に移ります。

次のコマンドで、空のデータベースを作ります。
wordpress」のところは、データベースの名前なので、
自由に設定していいのですが、後で使うので忘れないようにしましょう。

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

最後に、データベースの操作を終えて、コマンドラインに戻ります。

exit

自動起動の登録

データベースについても、自動起動を登録しておきましょう。

sudo sysv-rc-conf mysqld on

WordPress のダウンロード

準備が整ったので、いよいよ、WordPressです。
WordPress の本体はファイル群となっているので、
ファイルを丸ごとダウンロードしてきます。

wp-cli のインストール

wp-cliWordPressコマンドラインから操作するためのものですが、
WordPress をダウンロードしてくるときにも便利なので、インストールしておきます。

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

本体のダウンロード

wp-cli を使って、本体をダウンロードしてきます。

sudo wp core download --locale=ja --path=/var/www/html/wordpress --allow-root

--path ではダウンロードするディレクトリを指定します。
ディレクトリ名はwordpressでなくてもいいのですが、
以降でもこのパスを使うので、違う名前にする場合は気を付けましょう。

WordPress の初期設定

もろもろの初期設定を行っていきます。

.htaccess の用意

Apache が用いるファイル「.htaccess」を作成しておきます。

sudo touch /var/www/html/wordpress/.htaccess
sudo chmod 660 /var/www/html/wordpress/.htaccess

wp-content/upgrade ディレクトリの用意

WordPress が更新ファイルをダウンロードするためのディレクトリを準備しておきます。

sudo mkdir /var/www/html/wordpress/wp-content/upgrade

デフォルト設定ファイルを準備

WordPressが用意した設定ファイルのサンプルをコピペして、
設定ファイルのベースを作ります。

sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

パスフレーズの生成

設定ファイルで、ランダムな文字列を設定する箇所がありますが、
文字列を生成する API が提供されているので、そちらを使って生成しておきます。

curl -s https://api.wordpress.org/secret-key/1.1/salt > ~/tmp_pass

生成された文字列は、~/tmp_passに一時的に保存しておきます。

設定ファイルの編集

先ほどコピペで作った設定ファイルを基に、設定を変更していきます。

まずは、エディタで開くのですが、ここでは、emacsを使うことにします。
emacs がインストールされていない場合は、次のコマンドでインストールします。

sudo apt install emacs  

そして、次のコマンドで、編集を始めます。

sudo emacs  /var/www/html/wordpress/wp-config.php

データベースの設定

次に対応する部分を探して、書き換えます。

define('DB_NAME', 'wordpress');
define('DB_USER', 'root');
define('DB_PASSWORD', '【パスワード】');

パスフレーズの設定

次に対応する部分に、先ほど生成したパスフレーズを入力します。

define('AUTH_KEY',         '英数字列');
define('SECURE_AUTH_KEY',  '英数字列');
define('LOGGED_IN_KEY',    '英数字列');
define('NONCE_KEY',        '英数字列');
define('AUTH_SALT',        '英数字列');
define('SECURE_AUTH_SALT', '英数字列');
define('LOGGED_IN_SALT',   '英数字列');
define('NONCE_SALT',       '英数字列');

手打ちするのは非常に面倒なので、
emacs のファイルから挿入機能を使いましょう。

「Ctrl+x i」と入力後、「~/tmp_pass」を指定すると、
指定されたファイルの中身をそのまま貼り付けます。

更新をapacheに書き込ませる

設定ファイルの末尾に、

define('FS_METHOD', 'direct');

を指定して、

「Ctrl+x s」で上書き保存後、「Ctrl+x c」でエディタを閉じます。

ファイル操作の権限設定

WordPress のファイル自体への書き込み権限を与えておきます。

sudo chown -R [ユーザー名]:www-data /var/www/html/wordpress
sudo chmod -R g+w /var/www/html/wordpress/wp-content
sudo chmod -R g+w /var/www/html/wordpress/wp-includes

Apache の設定

WordPress の設定はできたので、後は、
それを公開するための Apache の設定です。

Apache の書き込み設定

Apache 側でのアクセス制限の設定を行います。

まずは設定ファイルを開きます。

sudo emacs /etc/apache2/apache2.conf

ファイルの中に次を付けたします。

<Directory /var/www/html/wordpress>
    AllowOverride All
</Directory>

バーチャルホストの設定

Apache では、1つのサーバーで複数のサイトを運用するために、
バーチャルホストを使ってサイトの提供を行っています。

そのバーチャルホスト1つに、WordPress を配信するように設定しましょう。

デフォルトの設定ファイルをコピー

設定ファイルを書くために、デフォルトの設定をベースにします。
そのため、設定ファイルを次のようにコピーします。

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/010-wordpress.conf

設定ファイルを編集

コピーしたファイルを編集していきます。

まずは、エディタでファイルを開きます。

sudo emacs /etc/apache2/sites-available/010-wordpress.conf

そして、ファイルの中で対応する部分を探して、次のように書き換えます。

DocumentRoot /var/www/html/wordpress

これで、WordPress が配信されるように設定を書き換えました。

設定変更を反映する

最後に、設定変更を反映させましょう。

まずは、設定が誤ってないかをチェックします。

sudo apache2ctl configtest

バーチャルホストの設定を有効にします。

sudo a2dissite 000-default
sudo a2ensite wordpress

設定の書き換えを有効にします。

sudo a2enmod rewrite

最後に、apache を再起動します。

sudo service apache2 restart

接続確認

以上で、全ての手順が完了しました。

「http://【ドメイン名】」で、サイトにアクセスして、
WordPress の編集を行いましょう。

プライバシーポリシー