サポート » 使い方全般 » php.iniファイルの記載により2MBアップロード制限を乗り越える方法

  • 解決済 yzk

    (@yzk)


    こんにちは、はじめて投稿させていただきます。
    WPのバックアップデータをサーバにアップしたいのですが、サーバ側で設定している2MB制限にひっかかっていて、解決方法を求めて投稿させていただきました。

    いろいろ調べてみた結果、PHPの知識が要ると分かりました。
    こちらのフォーラムはPHPの知識を持った方がたくさんいらっしゃる、日本有数の場だと思います。
    Webでいろいろ調べてみましたが、質問に関して断片的な情報はいろいろ見つかるものの、一貫した情報を見つけることが難しく、初心者の私と同じ悩みを持つ方が他にもいらっしゃると想像します。ですので、どうぞこの場でのご質問をお許しください。
    また、WPを使い始めて日も浅いため、本当に初歩的な質問になりますことを、どうぞお許しください。

    【状況のご説明】 

    それではまず、状況からご説明させてください。
    WPのバージョンは2.8.2で、共用のレンタルサーバを使っています。
    PHPはCGIモードで動作しており、バージョン 5.2.12です。

    この環境で、WPとphpmyadminを使っていますが、ある程度データを載せたところで、phpmyadminとWP本体の両方で、バックアップを取りました。このデータは3MBほど(.xml方式)〜30MBほど(.sql方式)です。

    ところがその後すぐに、WPの表示を壊してしまいました。
    原因はいろいろだと思うのですが、バックアップデータが綺麗にありますので、バックアップデータから復元したいと考えています。
    バックアップデータが2MB以下の、他のWPで再現実験をしましたら、テーマ、プラグインおよび.xml方式のデータを戻すことで、サイトが綺麗に元に戻りました。ですので、この方法で復元したいと考えています。同時に今後の運用を考えれば、バックアップと復元は練習したいので、いいチャンスかと思いました。

    ところが共用サーバの2MB制限にひっかかって、WPの画面からデータをアップロードすることができません。
    この2MBの制限を30MBから50MBに一時的に上げたいというのが、今回のご質問の内容です。

    【サーバ側の環境】

    サーバに問い合わせてみましたところ、本当にご親切にしていただき、できる限りでさまざまな情報をいただきました。まとめますと、以下のようになります。

    ・コントロールパネルの裏の一般ユーザに見えない領域に、共用サーバ全体に作用するphp.iniファイルがある仕様になっている。

    ・このphp.iniファイルの2MB制限に関して、それを書き換える作用をするphp.iniファイルを、ドメイン直下(私の設定の場合は、index.phpと同じ階層)を載せる。そうすると、php.iniファイルの設置ディレクトリに対して、この数値が適用されるので、私のドメインのあるディレクトリ以下のWPとphpmyadminの設定数値が変わる。
    これはサーバの方で許可されている操作だそうです。

    ・php.iniファイルの設置およびソースコードに関しては、サポート外とのことです。
    同様に、さくらさんやチカッパさんのように、php.iniファイルのソースコードが実際に見られて、当方で数字だけ書き換えればオッケーの仕組みにはなっていません。

    ・.htaccessファイルでの容量UPは、サーバの仕様として無効だそうです。いろいろ調べてやってみたのですが、やはりうまくいきませんでした。

    ・サーバで教えていただいた範囲では、共用サーバ全体に影響するphp.iniの設定は

    post_max_size = 8MB
    memory_limit = 16MB

    max_imput_time = 60
    max_execuse_time = 30

    そして
    uproad_max_filesize = 2MB

    となっているそうです。
    やはり
    uproad_max_filesize = 2MB
    の数値にだけ問題がありそうです。
    ですので、こちらでphp.iniファイルに数値を指定して、この数値を書き換えればよいのではないか? とサーバの方はおっしゃっていました。

    【重ねてご質問】

    ドメイン直下、WPのindex.phpの設置ディレクトリに、実際にphp.iniファイルを乗せてみました。
    php.iniファイルはWinのメモ帳で作り、文字コードはUnicodeで処理して乗せました。

    さまざまなソースを調べて自分なりに書いてみたのですが、なにぶんにもPHPの基礎的な知識がないので、やはりファイルがちゃんと作用しません。
    そこでご質問なのですが、

    1)上記の状況の場合、「サーバのphp.iniファイルの uproad_max_filesize = 2MB を、30MB(ぐらいに)変更」というPHPコードを書けばよいと思うのですが、そのコードはどう書けばよいのでしょうか?

    2)指定してあげるのは uproad_max_filesize = 2MB の書き換えだけで良くて、memory_limitやpost_max_size, max_impute_time, max_execuse_time には言及しなくてよいのでしょうか。

    3)この件を調べていて、PHPのフォーラムでこんなコードを見つけたのですが、

    (以下引用です)<?php
             echo ‘Maximum file size: ‘ . convertBytes( ini_get( ‘upload_max_filesize’ ) ) / 1048576 . ‘MB’;
             ?>

    (以上 ttp://www.php.net/manual/ja/faq.using.php#faq.using.shorthandbytes引用です/頭のhは取ってあります)
    ここに30MBなどと入れる形でよいのでしょうか?

    なにぶん知識が不足していて、質問も本当に申し訳ないのですが、今のサーバが気に入っているので、できれば動きたくありません。
    サーバスタッフの方々も、サポート権限の及ぶ範囲で丁寧に教えてくださっているので、できればこのソースコードで制限を突破したいです。

    PHPエキスパートの皆様のお知恵をお借りできますと、本当に幸いです。
    お忙しいところとは思いますが、どうぞよろしくお願い致します。

    長い文章をお読みいただきまして、どうもありがとうございました。

2件の返信を表示中 - 16 - 17件目 (全17件中)
  • トピック投稿者 yzk

    (@yzk)

    akihiroさん、showBOOさん、そしてshokun0803さん
    コンバンハ!
    投稿主のyzkです。

    なんと、無事できました!!!!! ^-^ うれしいです!!

    いままでどうやっても2MBから動いてくれなかったWPの画面が、ちゃんと20MBになってくました。その瞬間は、本当に感動しました。
    (信じられない! でも事実。)
    あたたかく見守ってくださった皆さまのおかげとしか、言いようがありません。
    本当にありがとうございました。

    最初の原因は、私の知識のなさにありましたが、最後の最後の原因は、コードだったようです。
    akihiroさんが言われた通りスペルを直して、showBOOさんのご指摘のとおりUTF-8で保存し直してUPしたら、反映しました!
    akihiroさんがしてくださった再現テストも、本当に自信になりました。
    お忙しいところ、心からありがとうございました!!

    わたくしごとなのですが、実は今日は誕生日です。
    (きわめて重要なデータを山積みしたWPが壊れつづけて1週間半になるので、とうてい、のんびり気分ではなく……^-^;)

    でも、どうしても捨てるわけにはいかないデータが直って、最高のプレゼントをいただいた気持ちです。
    最高の誕生日になりました。
    心から、どうもありがとうございました。

    ……とはいえ、まだxmlデータインポートの途中なので、またコケルかもしれません。
    いましばらく、スレッドをオープンのままにさせてくださいね。

    まずは心からの御礼とご報告まで。
    ありがとうございました!

    トピック投稿者 yzk

    (@yzk)

    おかげさまで無事にアップロード+インストール作業が完了致しました。
    感謝とともに、スレッドを閉じさせていただきます。

    本当にありがとうございました。

2件の返信を表示中 - 16 - 17件目 (全17件中)
  • トピック「php.iniファイルの記載により2MBアップロード制限を乗り越える方法」には新たに返信することはできません。