玄箱ProでDebian LennyのApache2環境ができたので、そこにWordPressを導入。
これが、苦難の始まりでした。。。
いや、WordPressのセットアップは非常に簡単なのよ。
まず専用のユーザーと空のデータベースを作成。
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 34
Server version: 5.0.51a-24+lenny1 (Debian)Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
mysql> grant all privileges on *.* to XXXXX identified by ‘YYYYY’;
Query OK, 0 rows affected (0.06 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)mysql> exit
Bye# mysql -u XXXXX -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 36
Server version: 5.0.51a-24+lenny1 (Debian)Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
mysql> create database ZZZZZ;
Query OK, 1 row affected (0.02 sec)mysql> exit
Bye
#
ファイルを/var/wwwにコピーして、chown www-data して、www-config-sample.phpをwww-config.phpにコピーして、データベース名、ユーザー名、パスワードなどを記入。/wp-admin/install.phpをブラウザで開くだけ。
chown www-dataするのが味噌。これやっとかないと、いろいろ面倒になる。
なにか足りないものがあれば、その都度教えてくれる。
僕の場合、
お使いのサーバーの PHP では MySQL 拡張を利用できないようです。
といわれたので、
# apt-get install php5-mysql
で追加インストール。
成功すれば、
成功しました !
WordPress がインストールされました。もっと何か作業をしたかったですか ? がっかりさせてゴメンナサイ。これだけです !ユーザー名 admin
パスワード XXXXXX
パスワードを注意深くメモしてください ! このパスワードは今回のインストール用にランダムに生成されたものです。
てな画面がでるから、ログインするだけ。
あとは、過去記事をバックアップから戻して、デザインをそれっぽくして、Google AnalyticsとGoogle Adsenseのスクリプトをいれれば、おけ。
ついでに、WordPressのスクリプトがルートにぶちまけられて気持ち悪いので、移動。
過去記事とパーマリンクを変更したくなかったので、WordPressの設定画面の「パーマリンク設定」でカスタム構造を選択、/archives/%year%/%monthnum%/%day%%hour%%minute%%second%.phpと入力。
これにともない、
# a2enmod rewrite
で、mod_rewriteを導入して、apache2.confで、
AllowOverride None
となっているものをコメントアウトして、
AllowOverride All
を追加。これやらないと、.htaccessが効かなくて、あたふたする。
が、、、
遅い。
とりあえず、遅い。
ウェブブラウザでアクセスするも、返事がかえってくるまでに10秒以上かかる。
ファイル単品でアクセスしたときは、それほど遅さが気にならないので、PHPというかWordPress以下が遅いということになる。
これを解決するのがひっじょ~に難しい。というか未だに解決途中です。
結局のところ、mysqlが100M~120M、apacheがひとつ20~30Mほど、メモリを使っちゃうことが原因。全部で128MByteしかメモリないんだから、そんなに使っちゃいや~ん。
ということで、php-apcの導入。
# apt-get install php-apc
あんまりかわらん。
WP-SUPER-CACHE
なにはともあれ、WordPressの売りは、動的生成。でもこれが遅いんだから、キャッシュしましょう。
http://wordpress.org/extend/plugins/wp-super-cache/download/
たしかに、一度アクセスがあったものは、速くなった。でも、やっぱり、駄目なやつは数十秒。
PHPまで、たどり着くから遅いんじゃということで、
# a2enmod headers
と
# a2enmod expires
うーん。だめ。
ほなapache2.confで
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 5
MaxClients 10
MaxRequestsPerChild 0
</IfModule>
して、絞ってみる。
ちょっとは効果あるかな。
でもやっぱりapache2は20M越のメモリ使用量。
んじゃapache2じゃなくて、lighttpdを試してみましょう。
# /etc/init.d/apache2 stop
Stopping web server: apache2 … waiting .
# apt-get install lighttpd
lighttpdでphpを使うにはphp-cgiが必要。
# apt-get install php5-cgi
/etc/lighttpd/lighttpd.confでは、server.modules = ()のところで、mod_rewriteのコメントをはずす。んで、.htaccessがきかないかわりに、
url.rewrite-once = (
“^/(wp-.+).*/?” => “$0”,
“^/(sitemap.xml)” => “$0”,
“^/(xmlrpc.php)” => “$0”,
“^/(.+)/?$” => “/index.php/$1”
)
なる記述をいれる。
あ、いや、確かにlighttpdはメモリ使用量が少い。が、、、、
php-cgiが20M以上つかうんじゃ~~~。
ちうことは なに?WordPressのスクリプトからしてメモリ食いってこと?
う~ん。困った。
ほな次はmysqlのメモリを攻める。
設定ファイルは、/etc/mysql/my.cnf
#
# * Fine Tuning
#
key_buffer = 1M
max_allowed_pac
ket = 1M
thread_stack = 128K
thread_cache_size = 8
と、
#
# * Query Cache Configuration
#
query_cache_limit = 256K
query_cache_size = 1M
と、
[isamchk]
key_buffer = 1M
で、使用メモリを圧縮。ちょっと効いたかな。
う~ん。詰ってきたぞ。。。
で、ネットを徘徊していたら、Guyon DiaryのOpenVZ環境のApacheとMySQLでメモリ節約してやりくりするという記事で、
一番効果的な方法がこれです。
- InnoDB機能をOFFにする
- my.conf
- skip-innodbを[mysqld]に書く
きたー。Mysqlが100M以上使っていたのが、一気に、10M以下に。。。
で、現在に至る、です。
さーどーやってPHPの使用メモリを圧縮するべかな。
玄箱でのWordPressがどのくらいの性能なのか知りたいのでカキコ
ごめんなさい、既にこのサイトは、Movable Typeに移行されています。