仮想化生活への軌跡

Feed Rss


Ubuntu ServerでWord Pressサーバーを構築する手順 (1)

11.05.2013, Apache, MySQL, Pound, Ubuntu Server, Webアプリ, by .

はじめに

当サイトでも利用しているWordPressをUbuntu Server上で構築する手順について、備忘録をかねてまとめておきます。

可能な限り少ないコマンドライン操作での構築を目指しますので、これからVPSや自宅サーバーなどでブログサイトの構築を目指す初心者の方に参考になればと思います。

WordPress-logo


使用するUbuntu Serverのバージョン

本稿ではUbuntu Server 12.04 LTS x64を使用します。
現時点での最新版は13.10ですが、サーバー構築には長期サポート(LTS)のつく12.04が適しています。

なお、来年度4月には次期LTSの14.04(Trusty Tahr)のリリースが予定されています。


Ubuntu Serverの基本的な環境設定

構築作業に入る前に、Ubuntu Serverの基本的な設定を行います。
ここでは、Ubuntu Serverのインストールを完了した直後の初期状態を想定してお話を進めます。

● リポジトリとパッケージ/カーネルのアップデート
はじめにUbuntu Serverのリポジトリ・データベース、インストール済みのパッケージ及びカーネルをアップデートしておきます。
sudo apt-get update
sudo apt-get dist-upgrade


アップデートが完了したら、システムを再起動します。
sudo shutdown -r now


● ネットワークの設定
Ubuntuをサーバーとして利用する場合には、ネットワーク設定でローカルIPを固定しておく必要があります(VPSの場合を除く)。
初期状態ではIPがDHCPの割当てを受ける設定となっているため、/etc/network/interfaces を編集してIPを固定します。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static ←dhcpから変更
#以下を追記
address 192.168.xxx.xxx ←サーバーのローカルIPを指定
netmask 255.255.255.0
gateway 192.168.xxx.1 ←ルーターのローカルIP
dns-nameservers 192,168.xxx.1 ←DNSサーバー情報。通常はルーターのIPでOK。 


編集を終えたらネットワークを再起動して設定を反映させます。
sudo /etc/init.d/networking restart


変更後のIPは ifconfig コマンドで確認することができます。

● SSH接続環境の設定
構築作業をリモートで行うためにSSH接続を利用します。
これにより、Ubuntu ServerをWindowsなどのクライアント端末から遠隔操作することが可能になります。
sudo apt-get install ssh


● 最低限のセキュリティ設定
SSHは大変便利である一方で第三者がサーバーに侵入するためのルートにもなりえます。
そこで、サーバーへの不正ログインの危険に対処するためのセキュリティ設定を行います。

まずはSSHの設定ファイルを編集し、①rootユーザーでのログインの禁止と②ログイン可能なユーザーの限定を行います。
エディタで /etc/ssh/sshd_config を開き、以下の修正を行います。
...
PermitRootLogin no ←yesから修正(27行目付近)
...
AllowUsers ユーザー名 ←最終行に追記


AllowUsersの設定により、指定されたユーザー以外のログインをすべて拒否することができます。

次にTCP Wrapperの設定を行い、サーバーにアクセス可能なドメインを限定します。
まずは /etc/hosts.deny を編集し、すべてのホストから行われるすべてのサービスへの接続を拒否します。
ALL: ALL ←追記


次に /etc/hosts/allow を編集し、ローカルネットワーク内から行われるすべてのサービスへの接続を許可し、(必要であれば)SSHに対して特に許可するドメインを指定します。
ALL: 192.168. 127.0.0.1 ←ローカル内からのすべての接続を許可
sshd: xxx.xxx.xxx.xxx ←ローカルネットワーク以外でSSH接続を許可するドメインを指定


編集を終えたら再びネットワークを再起動し、設定内容を反映させます。
sudo /etc/init.d/networking restart


なお、外部からSSH接続を行うためにはルーターのポート開放を行う必要があります。
SSHで使用する22番ポートの開放を行うと不正ログインを狙った攻撃の標的になりやすくなるため、SSHで使用するポート番号の変更や鍵認証などの対策を取る必要があります。
この点、VPNサーバーを経由すれば新たにポートを開放することなくサーバーにSSH接続することが可能となります。
当サイトでもL2TPPPTPの二種類のVPNサーバーを構築する手順を紹介しているので、必要な方は参照してください。

● クライアント端末からのSSH接続
WindowsからUbuntu Serverを操作するためには、PuTTYやTera TermなどのSSHクライアントアプリを使用します。

これらのアプリ上で先ほど設定したサーバーのローカルIPを指定すれば、Ubuntu Serverにログインして遠隔操作することができます。

なお、筆者はウィンドウの透過処理が美しい putty-gdi を使用しています。
PuTTY-1 PuTTY-2


LAMP環境の構築

LAMP環境とは、Linux + Apache + MySQL + PHP で構成されるWEBサーバー環境を意味します。
他の多くのWEBアプリと同様にWordPressもこのLAMP環境が基盤となるため、サーバーにLAMP環境を用意しなければなりません。

● LAMPパッケージのインストール
UbuntuにおけるLAMP環境の構築は非常に簡単で、taskselの一覧からLAMP Serverを選択するだけでインストールが完了します。

まずはtaskselを起動します。
sudo tasksel


インストール可能なサービスの一覧が現れるので、カーソルをLAMP Serverに移動、Spaceキーで選択してEnterキーを押下します。
tasksel

インストールの途中でMySQLのrootユーザーに対するパスワードの設定を要求されるので、適当なパスワードを入力して設定を完了してください。

LAMPサーバーの稼動を確認するため、適当なブラウザから http://サーバーのローカルIP/ にアクセスしてみましょう。
Apache2が正常に動作していれば下のメッセージが表示されます(表示されない場合はこれまでの手順をもう一度確認してみてください)。
It-Works

この段階で既にLAMPサーバーとして動作可能な状態となってはいるのですが、WordPressサーバーとして稼動するためには各サーバーモジュールに設定を加える必要があります。
ここではWordPressを稼動する上で必要最小限の設定内容を示します。

● Apache2の設定
まずはエディタで /etc/apache2/sites-available/default を開き、以下の修正を加えます。
...
 <Directory /var/www/>
                Options FollowSymLinks ←修正
                AllowOverride All ←修正
                Order allow,deny
                allow from all
        </Directory>
...


次にApache2のリライトモジュールを有効化します。
sudo a2enmod rewrite


● PHPの追加ライブラリーのインストール
以下のコマンドにより PHP5用の追加ライブラリーをインストールします。
sudo apt-get install php5-gd php5-curl php5-intl


インストールを完了したら、ここでApache2を再起動しておきます。
sudo service apahce2 restart


● MySQLのユーザー/データベースの作成
最後にWordPressで使用するデータベースとユーザーをMySQL上で作成します。

まずは下記のコマンドでMySQLにrootでログインします。
mysql -u root -p 


ログイン後、WordPress専用のデータベース及びユーザーを作成します。
ここでは、データベース名:wordpress、ユーザー名:wpuserとします。
mysql> CREATE DATABASE wordpress;
mysql> GRANT ALL ON wordpress.* to wpuser@localhost;
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR wpuser@localhost=password('パスワードを入力');
mysql> quit;


以上の設定により通り一遍のLAMP環境は調いますが、上記のとおりここでの設定は最小限のものですので特にApache2周りのセキュリティ設定等は各自で対応する必要があるかと思います。

長くなりましたので、続きは別稿に譲ります。


Advertisement


RelatingPosts

2 Responses to Ubuntu ServerでWord Pressサーバーを構築する手順 (1)

  1. 参考にさせて頂きました。
    ありがとうございます。

    返信
  2. Pingback: UbuntuServer14.04LTS に WordPress をインストール | 定年後のブログ生活を目指して

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*