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 で
指定されているサイズを超えています。」というエラーが出ます。

upload_max_filesize変更(エラーあり)

upload_max_filesize変更(エラーあり)

一方、post_max_size の方は、エラーメッセージ等何も出ずに黙ってアップロードに失敗します。

post_max_size変更(エラーなし)

post_max_size変更(エラーなし)

スポンサーリンク
スポンサーリンク:

フォローする