Raspberry Pi でサーバー構築 (ブログの開設)

2013/03/21

◆ ブログを開設するために

ブログはユーザー数が多く、使えるプラグインが豊富なWordpressを使用する。
ブログでは投稿記事をデータベース化する必要があるのでデータベースのサーバーを設置しなくてはならない。また、wordpressを動かすために PHP をインストールする。

◆ PHP5のインストール

PHP周辺には大変多くのパッケージやバージョンがあるが、いろんなサイトを参考に以下をインストールしてみた。
正直、何が必要で、何が不必要なのかまったくわかっておりません。

下記では mysql も一緒にインストールしている。 インストール中に sql-server用rootのパスワードを用意しておく。(サーバーのrootとはまったく別の物)

 # apt-get -y install php5 php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server

 インストール中にSQLのrootパスワードの入力を求められるので、2回入力する。

◆ nginx のカスタマイズ

インストールが終了したら nginx の 設定ファイルを編集して cgi を有効にする。
赤字の解説がないのは、ほかのサイトから設定をコピーしたので意味がわかってないのだった。

 # vi /etc/nginx/sites-available/default

 location ~ /\.ht { のブロックの前に挿入
 location ~ \.php$ {
     fastcgi_pass unix:/var/run/php5-fpm.sock;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME /srv/www/public_html$fastcgi_script_name;
     fastcgi_intercept_errors on;
 }

 # nginx -t
 # nginx -s reload

◆ cgi の動作検証

以下のサンプルページを作成し、外部よりアクセスしてみる。PHPの環境変数が表示されるはず。

 # vi /srv/www/public_html/test.php

 <>php phpinfo(); ?>

◆ wordpress用データベースの設定

ブログ用のデータベースを作成しておく。 mysql用wordpress のパスワードを用意しておく。 musqlの操作方法は別頁参照。

 # mysql -u -root -pパスワード ← mysql-serverインストール時に作成したrootパスワード

 mysql> create database wordpress; ← データベースを作成
 mysql> grant all privileges on wordpress.* to wordpress@localhost identified by 'パスワード';
  ← データベース名wordpressに対して全ての権限を持つmysqlユーザーwordpressの作成
 mysql> exit ← mysqlの終了

◆ wordpress のインストール

データベースの作成が終わったところでいよいよwordpressをインストールします。
/usr/share/wordpress/にインストールされるので、/srv/www/public_html/へ移動します。

 # apt-get update
 # apt-get -y install wordpress
 # mv /usr/share/wordpress /srv/www/public_html/ ← ディレクトリの移動

◆ nginx 設定ファイルをブログ用に修正する。

別にhttp://~/wordpress/とアクセスすれば良いのだが、http;//~/blog でアクセスしたいので nginx の設定ファイルを編集する。 ここでも設定内容の意味はわかっていない。動けばいいや。

 # vi /etc/nginx/sites-available/default

 location ~ /\.ht { のブロックの後に挿入
 location /blog {
     root /srv/www/public_html/wordpress;
     index index.php;
     if (-f $request_filename) {
         expires 30d;
         break;
     }
     if (!-e $request_filename) {
         rewrite ^.+?(/wp-admin/) /wordpress/wp-admin/index.php last;
         rewrite ^.+?(/wp-.*) $1 last;
         rewrite ^.+?(/.*\.php)$ $1 last;
         rewrite ^ /wordpress/index.php last;
     }
 }

 # nginx -t
 # nginx -s reload

◆ wordpress の設定ファイル編集する。 デフォルトで英語版なので日本語化もしておく。

 # mv /srv/www/public_html/wordpress/wp-config.php /srv/www/public_html/wordpress/wp-config.php.default
 元の設定ファイルはバックアップ用にリネームして、サンプル用の設定ファイルを元に編集する。
 # cp /srv/www/public_html/wordpress/wp-config-sample.php /srv/www/public_html/wordpress/wp-config.php

 # vi /srv/www/public_html/wordpress/wp-config.php

 define('DB_NAME', 'wordpress'); ← データベース名
 define('DB_USER', 'wordpress'); ← データベースのユーザー
 define('DB_PASSWORD', 'wordpress'); ← データベースのパスワード
 define('WPLANG', 'ja'); ← 使用言語を日本語に設定
 define('FS_METHOD', 'direct'); ← ファイルのオーナーをチェックしない(最下行に追加)

 # chmod -R 707 /srv/www/public_html/wordpress/wp-content/ ← ブログで画像などをアップロードするためにアクセス権を変更

◆ 外部のパソコンからの設定

外部パソコンのブラウザから以下のURLへアクセスして最終的なwordpressの設定を行う。 ブログの管理者名とパスワードを新規に用意しておく。
http://~/wordpress/wp-admin/install.php
  Site Title ブログのタイトル
  Username 管理者のユーザー名
  Password 管理者のパスワード
  Your E-mail 管理者のメールアドレス