Posts Tagged ‘WordPress’

WordPress 2.9.xの自動アップデートがコケる

結論から言えば/var/php.iniのmemory_limitの上限を引き上げれば解決します:

[変更前]
memory_limit = 16M
[変更後]
memory_limit = 64M

(変更後は 「service httpd restart」 を実行してapacheを再起動すること。念のため)

ズボラな私は基本的に自動アップデートで済ませてしまうのですが、バージョン2.9.1以降、以下のメッセージが表示されたままウンともスンとも言わないという状態が続いていました

http://ja.wordpress.org/wordpress-2.9.1-ja.zip からアップデートをダウンロードしています。

その前後でサーバの移行などしていたためエラー原因が絞りきれず、とりあえず放置しておいた(笑)んですが、2.9.2がリリースされても同様の現象が確認されたので、とりあえず/var/log/httpd配下にあったapacheのエラーログを確認したらそのものズバリなエラーが。最初から見とけよ。

[Fri Feb 26 08:20:10 2010] [error] [client 192.168.XXX.XXX] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2804864 bytes) in /xxx/xxx/tokiwasou.com/memo/wp-includes/http.php on line 1331, referer: http://www.tokiwasou.com/memo/wp-admin/update-core.php

要はPHP実行に必要なメモリが足りんと。どうやらサーバ移行した際にPHPに割り当てるメモリサイズ(memory_limit)を、デフォルト(16M)のまま放置しておいたのが原因のようです。33MB超のメモリを割り当てようとしてコケたみたいなのでとりあえず上記のmemory_limit=64Mで回避しましたが、このあたりのさじ加減はサーバによって異なると思うので、64Mで失敗する方は128Mでも256Mでもサーバのリソースが許す限りお好きな値をどうぞ。

 

WordPressでカスタムパーマリンクが文字化け

SEOの観点から、WordPressのURL構造を「ホスト名/カテゴリ/タイトル」といった構造に変更したい場合があります。

通常だとダッシュボードの「設定」から「パーマリンク設定」を選択し、「カスタム構造」を選択して/%category%/%postname%/とか設定すればOKなのですが、環境によってはホスト名以下のURLが文字化けしてうまくアクセスできない場合があります。

検索したら.htaccessの先頭に以下の記述を追加すればOK、という記事がたくさん出てきました。

# php_flag mbstring.encoding_translation off
# php_value default_charset “UTF-8

が、私の環境ではそれでもダメ。

というかその設定は/etc/php.iniに既に記述済み。 orz

結論からいうと、バーチャルドメインの設定でひっかかってました。

カスタムパーマリンクは.htaccessに記載されたmod_rewriteの設定で実装されているのですが、この設定を有効にするには、WordPressがインストールされたディレクトリに対して、httpd.confにおいて「AllowOverride All」が設定されている必要があります。

もちろん私の環境でも設定されてはいたのですが、バーチャルドメインで運用している場合httpd.confのバーチャルホストの設定、もしくはバーチャルホスト設定ファイル(デフォルトだとextra/httpd-vhosts.conf)の<VirtualHost>ディレクティブ内において、改めて「AllowOverride All」を有効にしてあげる必要があるとのこと。言われてみれば確かに、、、といういつものパターン。

Apache バーチャルホスト説明書

同じ過ちを繰り返さないためにも、追記の必要な箇所を赤字で書いておきます。ディレクトリやドメインの設定は各自の環境に読みかえてください。

<VirtualHost *:80>
RewriteEngine ON
ServerName    subdomain.tokiwasou.com
DocumentRoot  /var/www/tokiwasou.com/subdomain
ErrorLog    logs/subdomain.tokiwasou.com-error_log
CustomLog    logs/subdomain.tokiwasou.com-access_log combined
<Directory “/var/www/tokiwasou.com/subdomain/”>
AllowOverride All
</Directory>

</VirtualHost>

 

文字化けしないmy.cnf設定 (MySQL5.0.x)

とりあえずウチのmy.cnfそのまま貼り付けてみます。手抜きとか言わない。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1
default-character-set=utf8
skip-character-set-client-handshake

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

デフォルトの文字コードはUTF-8に統一。skip-character-set-client-handshakeを宣言してクライアントにも暗黙的にUTF-8を使わせる仕様。Centos5あたりで新しくMySQLサーバ立てるならこの設定で鉄板です。

ちなみにMySQL3.xから4.xにバージョンアップさせた場合、old_passwordsがデフォルトで0に設定されているので注意が必要です。Centos3.xのサーバにWordpress入れた時ここで見事にハマりました。 orz

 

全世界配信開始

軽い気持ちで設定してたら本当に繋がってしまって若干焦っております。

ログ見てると接続直後からばしばしアクセスきてておっかねえし。泣くぞ。

慌てて切ってしまおうかとも考えたけどとりあえず一晩様子をみてみます。

アクセス解析ツールとか、早いとこ入れなきゃだな。

 

こんなにやらんといかんのか

画面左上の「紹介」ボタンを押すとエラーになってしまうのでその設定方法を知りたかっただけなのだが、WordPress入れたら最低これだけはやっとけ的なサイトを見つけてしまった。

WordPressでブログを作ったらまずやる26項目―SEO・アクセスアップのためのカスタマイズ

自分でやる気はさらさらないのですが、仕事では使えそうなのでいちおうメモ。

紹介ボタンはいつになったら使えるのやら・・・

 

時代の波には逆らえず

ブログツールを使ってサイト作成してみました。使ったのは会社で一度頼まれて入れてあげたWordPress。

これも勉強なんだとひたすら自分に言い訳しつつ、実際使ってみると便利(つか、楽だ)なのでびっくり。思いつくことほぼ全てがワンクリックでできてしまうので、なんだか自分がとても堕落してしまったような罪悪感を覚えます。まるで数週間のテント生活に疲れホテル生活に切り替えた時のようです。

これがいつ一般に公開されるのかは謎ですが、、、まあ思いついたらちょろちょろ書いてみます。