wordpress の設定

インストール

# apt-get install wordpress

準備

サンプルセットアップファイルを参考にして手動で設定する.debian の標準の設定では,ひとつのホストで複数のwordpressを実行する場合に,virtual hostを利用してホスト名で切り替えることを想定している.これをdocument rootからのパス名で行うように変更する.

# cd /etc/wordpress
# cp wp-config.php wp-config.php.dist
# vi wp-config.php
<?php
require_once('/etc/wordpress/config'.str_replace("/", "_", dirname($_SERVER['PHP_SELF'])).'.php');
define('ABSPATH', '/usr/share/wordpress/');
require_once(ABSPATH.'wp-settings.php');
?>

以降,http://www.example.com/foo/bar/wordpress/ でサービスする場合を考える.この場合,configファイルは /etc/wordpress/config_foo_bar_wordpress.php になる.

決めるべきこと

  • MySQLユーザ名 → 全てのインスタンスについて wordpress とする.
  • そのユーザ名のパスワード → 自分で決める.ここでは PASSWORD とする.
  • MySQLデータベース名 → document root からのパス名( / を _ で置換)+プレフィックス wp_ とする.
    • ここでは wp_foo_bar_wordpress となる.

作成

まずconfigファイルを作成する.

# cd /etc/wordpress
# vi config_foo_bar_wordpress.php
<?php
define('DB_NAME', 'wp_foo_bar_wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'PASSWORD');
define('DB_HOST', 'localhost');

$table_prefix  = 'wp_';

$server = DB_HOST;
$loginsql = DB_USER;
$passsql = DB_PASSWORD;
$base = DB_NAME;
?>
# chgrp www-data config_foo_bar_wordpress.php
# chmod 640 config_foo_bar_wordpress.php

次にデータベースを作成する.

# mysql -p -u root
mysql> create database wp_foo_bar_wordpress;
mysql> grant all on wp_foo_bar_wordpress.* to wordpress@localhost identified by 'PASSWORD';
mysql> flush privileges;
mysql> quit

最後に本体へのリンクを作成する.

# ln -s /usr/share/wordpress /var/www/foo/bar/wordpress

調整

/usr/share/wordpress/wp-admin/ 内の php からも config が参照されているためうまくいかない.以下の workaround.

# cd /etc/wordpress
# ln -s config_foo_bar_wordpress.php config_foo_bar_wordpress_wp-admin.php

proxy 経由でしか外部のサイトにアクセスできないマシンにインストールした場合,[Dashboard]の表示に非常に時間がかかる./usr/share/wp-includes/class-snoopy.php に proxy を設定すれば解決する.