mfks17's blog(Life is Good !!)

趣味や思った事を書いていくと思います

sakuraVPS(Ubuntu12.04)にwordpressをインストール[前編]

今回は、sakuraVPSをなんとなくUbuntu12.04にしてみたので、ブログでもはじめてみようかな、phpの勉強もしようなかと思いつつやっていきます。

参考にさせていただいたのは、こちらです。

前編の今回は、上記の記事で行っている、wordpressをダウンロードするところまでです。

若干、自分の環境ではつまずいた部分があるので、メモとして残しておきます。(でも、ほとんど一緒です)

aptのパッケージを更新

$ sudo aptitude install python-software-properties
$ sudo add-apt-repository ppa:nginx/stable
$ sudo add-apt-repository ppa:brianmercer/php5
$ sudo aptitude update

nginx のインストール

$ sudo aptitude install nginx

これでインストール完了です。簡単ですね。ついでにバージョンの確認をしてみましょう。

$ nginx -v

と入力すると

nginx version: nginx/1.2.4

とでました。

PHP のインストール

$ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm
$ php -v

と打ち込むと僕の環境では

PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

と、表示されました。

php-fpm の設定

php-fpm の設定を変更しますが、デフォルトの設定ファイルをバックアップしておきましょう。

sudo cp /etc/php5/fpm/php-fpm.conf /etc/php5/fpm/php-fpm.conf.bak

設定はファイルのバックアップを生成するのは、転ばぬ先の杖ですね。バックアップを作成する場所はユーザのホームに(~/)される方もいらっしゃるかと思いますが、このみの問題ですかね。

設定ファイルを書き換える


vimをつかいます。インストールしていない方は、

$ sudo aptitde install vim

とかしておくとよいと思います。そして、

sudo vim /etc/php5/fpm/php-fpm.conf

と入力すると、 vim で設定ファイルが開かれます。修正箇所は以下です。

修正前: error_log = log/php-fpm.log
修正後: error_log = /var/log/php/php5-fpm.log
修正前: ; events.mechanism = epoll
修正後: events.mechanism = epoll

ここで、エラーログの設置場所ですが、初期段階では、上記のようなディレクトリは存在せず、このままphp-fpmを起動させようとするとエラーになります。

$ sudo service php5-fpm restart 
 * Restarting PHP5 FastCGI Process Manager php5-fpm                      [fail]

こんな感じで。なので、

$ sudo mkdir /var/log/php

として、ディレクトリを作成しておきましょう。

次に設定ファイル

$ sudo vim /etc/php5/fpm/pool.d/www.conf

と入力し、vim で以下のように編集します。

修正前: ;listen = 127.0.0.1:9000
修正後: listen = /var/run/php5-fpm.sock
これでとりあえず必要な設定変更は完了です。
php-fpm はサービスを起動する必要があるので、早速起動しましょう。

$ sudo service php5-fpm start 
 * Restarting PHP5 FastCGI Process Manager php5-fpm                      [ OK ]

これで起動完了です。

nginx のバーチャルホスト設定

nginx の設定を行います。
まずは先ほど同様に、デフォルトの設定ファイルをバックアップしましょう。

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak
$ sudo rm /etc/nginx/sites-available/default
$ sudo rm /etc/nginx/sites-enabled/default

これでデフォルトの設定ファイルである default を default_bak という名前で保存し、デフォルト設定を無効化しました。

次に WordPress の中身のファイル類をおくための公開ディレクトリを作りましょう。階層は以下の様な感じにします。
/var/www/YOUR-SITE
YOUR-SITE の名前はなんでもいいです。ドメインにしておくとわかりやすいですよ。ってことで僕の場合はこんなかんじです。

/var/www/www19199u.sakura.ne.jp
今回は www19199u.sakura.ne.jp というディレクトリにしてますが、この部分は皆さんのサイトのドメインに置き換えてください。ここ以降、www19199u.sakura.ne.jp と書かれている部分も適宜変更してくださいね!

このディレクトリを作るコマンドは以下のように打ち込みます。
とりあえず、 www ってのが存在しないと思うので、

$ sudo mkdir /var/www

と打つと www ディレクトリができます。その直下に www19199u.sakura.ne.jp のディレクトリを作成します。

$ sudo mkdir /var/www/www19199u.sakura.ne.jp

これで www19199u.sakura.ne.jp のディレクトリを作成できました。ここにファイルを置きたいところですが、この直下にまたディレクトリを幾つか作成したいと思います。

$ sudo mkdir /var/www/www19199u.sakura.ne.jp/logs
$ sudo mkdir /var/www/www19199u.sakura.ne.jp/public_html

www19199u.sakura.ne.jp の下に logs と public_html のディレクトリを作ったことになります。
public_html が公開ディレクトリで、logs にはこのサイトのログを格納したいのでこの構成にしています。

作成したサイトディレクトリ(この場合 www19199u.sakura.ne.jp)の所有者設定の変更が必要なので以下のようにコマンドを打ち込みます。

sudo chown -R www-data:www-data /var/www/www19199u.sakura.ne.jp/

打ち込んでもなんの反応も無いですがこれで OK です。必要があれば cd コマンドでディレクトリに移動して ls -al コマンドでディレクトリ一覧が表示され、所有者の確認ができますよ。

次に nginx に対して www19199u.sakura.ne.jp の設定を行います。

sudo vim /etc/nginx/sites-available/www19199u.sakura.ne.jp

と打つと、vim で新規ファイルの作成ができますのでそのまま設定値を入力して保存しましょう。入力する内容はこんな感じ。

server {
    listen  80;
    server_name www19199u.sakura.ne.jp;
    access_log  /var/www/www19199u.sakura.ne.jp/logs/access.log;
    error_log   /var/www/www19199u.sakura.ne.jp/logs/error.log;
    root        /var/www/www19199u.sakura.ne.jp/public_html;
    index       index.html index.htm index.php;
    charset     utf-8;

    location ~ \.php$ {
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }

    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }
}

細かい説明は抜いときます。ファイルを保存したら次にこの設定ファイルを有効化します。

$ sudo ln -s /etc/nginx/sites-available/www19199u.sakura.ne.jp /etc/nginx/sites-enabled/

これで設定ファイルが有効になりました。nginx を再起動しましょう。

sudo service nginx restart
とすると再起動するはずなんですが、僕の環境(nginx のバージョン)では restart した後 nginx が起動しないバグ(?)があるようです。nginx の状態を確認するには

$ sudo service nginx status

とすると状態が表示されますが、restart した後、

* could not access PID file for nginx
と表示されて起動されていませんでした。仕方ないので

$ sudo service nginx start

として起動し直すと、正常に起動するようです。

さて、ひと通り設定が完了したので、nginx で正常に php が動くかどうか確認するために phpinfo を表示させてみましょう。

sudo vim /var/www/www19199u.sakura.ne.jp/public_html/index.php

中身を と入力して保存して下さい。nginx が正常に設定されていれば www19199u.sakura.ne.jp をブラウザで表示した際に phpinfo の内容が表示されるはずです。

MySQL のインストール

DB がまだでしたね。MySQL をインストールしましょう。

sudo aptitude install mysql-server
とするとインストールが始まります。途中で password の入力を求められます。これは root 権限のパスワードなので入力したものを絶対に忘れないようにしてください。

念のためまたバージョン確認を行います。V は大文字なのに気をつけて下さい。

mysql -V
と入力(V は大文字なのに気をつけて下さい)すれば、僕の環境では

mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (x86_64) using readline 6.2
と表示されました。

WordPress 本体をインストール

インストールといってもファイルをダウンロードしてきて配置するだけですね。コマンドで WordPress の本体をダウンロードするには以下のコマンド

$ cd /var/www/www19199u.sakura.ne.jp
$ sudo wget http://ja.wordpress.org/wordpress-3.4.1-ja.tar.gz

www19199u.sakura.ne.jp 内に wordpress-3.4.1-ja.tar.gz というファイルがダウンロードされました。これは圧縮ファイルなので解凍しましょう。

$ sudo tar zxvf wordpress-3.4.1-ja.tar.gz

これで wordpressというディレクトリが生成されました。もちろん中身は WordPress の諸々が入っています。この状態ではディレクトリ名が正しくないので wordpress を public_html に変更します。が public_html はすでに存在してるので、削除してから名前を変更します。

$ sudo rm /var/www/www19199u.sakura.ne.jp/public_html
$ sudo mv /var/www/www19199u.sakura.ne.jp/wordpress public_html

これでファイルの配置が完了しました。

と、ここまで今回は終わりです。
ありがとうございました。