WordPressのアップロード容量制限を変更する方法(Xserver)

Posted by | Posted in PHP, wordpress | Posted on 13-12-2009

管理しているブログ(WordPress)に、動画をアップロードできるようにと調べたことのメモ。

レンタルサーバにもよりますが、通常、アップロードできるファイル容量は、デフォルトで2Mとか5Mになっていると思います。

管理しているブログ(WordPress)は、レンタルサーバのXserverを使用していて、15Mまでのアップロードが可能になっていました。

写真などのファイルであれば、15Mもあれば、十分ですが、動画となるとちょっと足りない。
ということで、調べてみました。
すると、調べごとなどで、いつもお世話になっている、「IDEA*IDEA」さんの「WordPressのインポート機能で2MB制限を突破する方法」というエントリにたどり着き、早速、試してみました。

ファイルアップロードの容量を規制するのはPHPの設定のようで、「IDEA*IDEA」さんの方法では、.htaccess により、PHPの設定を変えるという方法でした。
以下のコードを.htaccessに追加します。(この設定は32Mまでアップロード可能)

#Change upload limits
php_value memory_limit 34M
php_value post_max_size 33M
php_value upload_max_filesize 32M
php_value max_execution_time 600
#Change upload limits end

「php_value upload_max_filesize 32M」がアップロードできる最大容量の設定。
「php_value post_max_size 33M」が一回にposできる容量だと思います。
なので、「php_value post_max_size」は「php_value upload_max_filesize」より大きい容量を設定しないといけないようです。

ということで、.htaccessにコードを追加して、アップしてみました。
そして、18Mの動画ファイルをアップルードしてみましたが、接続のエラーが表示されアップロードができませんでした。

う〜ん、なぜだろう?と、さらに調べてみると、Xserverのよくある質問にphp.iniを設置できるとあったので、下記のページを参考にphp.iniを作成してみた。

「エックスサーバーよくある質問(PHP)」
http://www.xserver.ne.jp/faq_service_php.php

php.ini
————————————————-
safe_mode = off
memory_limit = 64M
max_input_time = 60
output_buffering = none
safe_mode_exec_dir = none
post_max_size = 60M
upload_max_filesize = 50M
variables_order = EGPCS
dbx.colnames_case = lowercase
HTTP input encoding translation = on
mbstring.detect_order = auto
mbstring.encoding_translation = on
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.internal_encoding = UTF-8
mbstring.language = Japanese
session.save_path = /var/lib/php/session
url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=fakeentry”
————————————————–

よくある質問のページには、ホームディレクトリに、このphp.iniを設置すると、すべてのディレクトリに反映され、あるディレクトリに設置すると、そのディレクトリのみで、それ以降のディレクトリには反映されないと説明がありました。

管理しているブログ(WordPress)は、サブドメインでの運用だったので、サブドメインのディレクトリにphp.iniを設置し、再度、アップロードを試してみました。

しかし、やっぱりダメ。
う〜ん、なんで???
info.phpをアップして、PHPの設定状況を確認してみると、ちゃんとphp.iniで設定して通りアップロードできる容量は「php_value upload_max_filesize」は50M、「php_value post_max_size」は60Mになっている。

全ディレクトリにphp.iniの設定が反映されていいと思い、メインのドメインのディレクトリ(public_html)にphp.iniを設置してみたが、これもまたダメ。。。

これで、この日の作業は終了した。

次の日に、Xserverの仕様で、15Mまでしかアップロードができないのかと思い、Xserverへ問い合わせてみた。

すると返答は、「php.iniの設置場所を確認下さい。」と軽く返信が帰ってきた。

え〜!と思い、いろいろ確認していたら、「ホームディレクトリにphp.iniを設置すると全ディレクトリに反映されます。ホームディレクトリとは、初期FTPアカウントでアクセスした際の一番上の階層。」と説明が書かれていた。

どうやら、ここを勘違いしていたようで、php.iniを設置したのは、web公開ディレクトリのpublic_htmlの直下で、ここがホームディレクトリだと勘違いしていたようでした。

改めて、ホームディレクトリにphp.iniを設置し、アップロードを試してみると、無事アップロードができるようになりました。

ふ〜 なんのことはなかったなぁ。。。
このことで、時間にして、約丸一日を費やしてしまいました。。。

それにしても、Xserverは、php.iniなど、細かい設定までできて、おススメのレンタルサーバだと思います。

レンタルサーバー完全ガイド Vol.18 (インプレスムック)
レンタルサーバー完全ガイド Vol.18 (インプレスムック)

基礎から学べる PHP 標準コースウェア
基礎から学べる PHP 標準コースウェア

ブログを最後までお読みいただき本当にありがとうございます。
初めて当ブログに訪れた方も、何度か当ブログにお越し頂いている方ももしよろしければRSSリーダーの登録をよろしくお願いいたします。

ブログやInstagram経由のつぶやきが多いとは思いますが、Webやデザインのこともつぶやいていますので、Twitterのフォローも併せてお願いいたします。facebookもやってます。

RSS twitter facebook tumblr

こちらのエントリもあわせてどうぞ。

Related Posts Plugin for WordPress, Blogger...


Post a comment