WordPressでテーマやプラグインのアップロードが失敗する場合、以下のようなメッセージが表示される場合があります。
アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています。
言葉の通り、php.iniで定義されてるアップロード可能なファイルサイズの上限を超えているというメッセージです。これを解決するにはWordPressではなくレンタルサーバー側で設定します。
php.iniの設定はサーバー会社によってまちまちです。以下のような編集方法が一般的です。
- php.iniを直接編集
- .htaccessで編集
- httpd.confで編集
- サーバー管理画面から編集
中にはphp.iniの編集を禁止しているレンタルサーバーもあります。この記事では利用機会の多いレンタルサーバー各社のphp.iniの編集方法のまとめています。
エックスサーバーの場合
エックスサーバー ではサーバーコントロールパネル内でphp.iniが編集することができます。
エックスサーバーのサーバーパネルにログイン後、中央下にある「php.ini設定」から入ります。
php.iniを編集したいドメインを選択します。
「php.ini設定変更」タブの「その他の設定」の中にある、post_max_size
upload_max_filesize
の部分です。
必要に応じてmemory_limit
の値も変更します。
しかし、エックスサーバーでは初期状態で30Mに設定されているのでこのままで問題ないかと思います。
そのほか、エックスサーバー管理画面上で、php.iniを直接編集することも可能です。
値を変更して何か不都合が起きたりした場合は、php.iniの値を初期状態に戻すこともできます。
エックスサーバーではブラウザで操作ができるので初心者でも安心です。
CPIの共用サーバーACE01の場合
CPIシェアードプランは契約時期によってサーバーの仕様が異なるようです。
PHP 5.5.16以降のバージョンではmbstring.internal_encodingの値(デフォルトの文字コード)はUTF-8ですが、それ以前はEUC-JPです。
シェアードプランACE01ではPHPは複数バージョンが用意されていますが、バージョンを指定してPHPを動かしたい場合は.htaccessに記述する必要があります。
シェアードプランACE01ではファイルアップロードサイズの上限の初期値は2MBのようです。
この値を変更するにはphp.iniを作成してドキュメントルートに設置します。ACE01のドキュメントルートはhtmlなのでhtml直下に設置します。
CPIの場合、php.iniを設置しただけではサイト全体に設定は反映されません。.htaccessも編集が必要です。
弊社サーバーの PHP は php.ini ファイルがカレントディレクトリにある場合、その php.ini ファイルの設定を最優先で読み込みます。ただし下位ディレクトリに対しては効果は及びませんので、下位ディレクトリ全体に独自の php.ini ファイルを有効したい場合には .htaccess ファイルを利用するか、各ディレクトリに 1 つずつ php.ini ファイルを設置してください。
http://acesr.document.secure.ne.jp/tools/php/php01.html
またCPIではphp.iniに設定したい内容だけを記述するとPHPが正常に動作しないとマニュアルに記載があるため、ちょっと面倒ですがCPI標準のphp.iniファイルをウェブコントロールパネルからコピペします。
php.iniはPHPバージョンごとに用意されています。ファイルがある場所は
ウェブコントロールパネル > お客様情報 > プログラムのパスとサーバの情報
該当するPHPのバージョンをクリックすると設定情報が表示されるので、全てコピーしてテキストエディタに貼り付けます。
その設定ファイルの中で「post_max_size」と「upload_max_filesize」を探し値を変更します。
post_max_size = 32M
upload_max_filesize = 32M
ファイルをphp.iniとして保存しhtml直下にアップロードします。
.htaccessは、php.iniと同じ場所に設置し、php.iniのフルパスを記述します。
今回php.iniをhtmlディレクトリの直下に設置したので.htaccessには以下のように記述します。
suPHP_ConfigPath /usr/home/ユーザーID/html/
ユーザーIDはウェブコントロールパネルの公開用サイト設定を開くとサイドバーに記載されています。
※ドキュメントルートにphp.iniを設置するとブラウザから閲覧できてしまうので.htaccessで制限をかけましょう。
<Files ~ "\.ini">
deny from all
</Files>
さくらインターネットの場合
さくらのレンタルサーバでphp.iniを編集する場合は、サーバーコントロールパネルから操作可能です。
サーバーメニューの「アプリケーションの設定」内にある「PHP設定の編集」にあります。
デフォルトでは何も記載されていない状態です。
設定したい項目のみを記述していく形になります。
php.iniはwwwディレクトリの直下に生成されます。
ドメインごとにphp.iniを設定できるかどうか、マニュアルを確認しても見当たらなかったため、どうやら全ドメイン共通の設定になるようです。
コアサーバーの場合
CORESERVERではFastCGI版PHPとCGI版PHPがあり、標準ではFastCGI版PHPが提供されています。ここではFastCGI版PHPでの場合になります。
CORESERVERでもPHPはバージョンを選択して利用することができ、php.iniもバージョンごとに用意されています。
php.iniがある場所は、
/public_html/.fast-cgi-bin/
になります。
PHP7.2のphp.iniを編集したい場合は、このディレクトリの中にある
php72.ini
を編集します。
編集する前にバックアップをとっておくと安心です。
しかしコアサーバーの場合、デフォルトの設定が
post_max_size = 1000M
upload_max_filesize = 1000M
memory_limit = 500M
とちょっと変わった設定になっています。ファイルのアップロード上限は問題ないのでそれ以外のPHP設定したい場合に編集することがあるかもしれません。
ドメインごとに.user.iniを設置する
上記の設定方法だと、サーバー全体に値が反映されるため全てのドメインに影響します。ドメイン、ディレクトリごとに設定したい場合は.user.iniで設定することもできます。
※php.iniの設定はすぐに反映されません、反映されるまでに5〜10分かかるようです。
iClusta+ by GMOの場合
GMOグローバルサインのiCLUSTA+ by GMO(アイクラスタプラス)ではphp.iniを設置します。詳しい設置方法は下記の記事で解説しています。
利用機会の多いレンタルサーバーのphp.iniの設定のまとめでした。