玄箱ProでWordPress

玄箱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の使用メモリを圧縮するべかな。

「玄箱ProでWordPress」への2件のフィードバック

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください