WordPress で画像アップロードを使う時の注意点
先日大量にスクショ上げたわけですが、
初めて使った画像アップロード機能でいろいろハマッたので、メモ。
ちなみに WordPress のバージョンは 3.0.1 です。
### CentOS で WordPress 使う時のハマリ処
**php-gd 入れとけ。**
WordPress では gd extension の関数呼んで画像をリサイズしているので、
PHP の gd extension が入ってないと画像のリサイズが出来ません。
CentOS では gd extension は php-gd という別RPMになっているので、
これをインストールしておかないと画像のリサイズが出来なくなります。
上のスクリーンショットは php-gd が入ってる状態のもの。
入っていないと、「サイズ」のところの
「サムネイル」「中サイズ」「大サイズ」が選択出来なくなります。
ちなみに、画像のリサイズはアップロード時に実行されるので、
後で気付いてあわてて php-gd 入れても、入れる前にアップロードした画像は
リサイズされません。一旦消してアップロードし直す必要があります。
なお、「サムネイル」「中サイズ」「大サイズ」の実際の大きさは、
「設定」→「メディア設定」で変更することが出来ます。
ただし、変更した場合は画像をアップロードし直さないと
反映されませんが…
### アップロードサイズの制限値について
アップロード可能な画像サイズの最大値は、
以下の3つの値のうち一番小さいものになります。
1. php.ini の post_max_size
2. php.ini の upload_max_filesize
3. httpd.conf の LimitRequestBody
特に 3. の LimitRequestBody に気付かなかったりするので注意。
CentOS 5 の場合、/etc/httpd/conf/resource.conf で
LimitRequestBody 65536
と設定されているので、必要に応じて httpd.conf や .htaccess で
値を変更する必要があります。
#### アップロード失敗時のエラー
php.ini の post_max_size や upload_max_filesize を変更すると、
アップロード画面の「アップロードファイルの最大サイズ」に、
どちらか小さい方の値が表示されます。
httpd.conf の LimitRequestBody は管理画面には表示されないので注意。
upload_max_filesize を超えるサイズのファイルはアップロードしようとすると、
「アップロードしようとしたファイルは php.ini の upload_max_filesize で
指定されているサイズを超えています。」というエラーが出ます。
一方、post_max_size の方は、エラーメッセージ等何も出ずに黙ってアップロードに失敗します。