頑張らない!でも諦めない!必死にならずにええかげん

PHP.iniに設定する設定をhttpd.confや.htaccessに対して行うメリット

      2014/11/22

何か困った症状に遭遇しPHP.iniの設定を変更することはよくあることでしょう。
共用レンタルサーバーなどでも、PHP.iniファイルを設置して
サーバー上の値を上書きして利用することを認めているところもあります。

もし認められていない場合であっても、.htaccessの利用を認めているようであれば、
PHPの設定を変更することができます。

はじめに

PHPの設定といえばPHP.iniと決めつけていませんか。
検索してざっと出てくるのは大抵がPHP.iniに対する設定です。

しかしPHP.iniの設定ではApache全体でPHPがiniファイルの設定で利用されます。

ある機能だけ制限を緩めて利用したいような場合には、
PHP.iniファイルでは実現することができません。

PHP.ini設定をApacheで行う方法

PHP.iniファイルの設定をApache側で行う方法は公式に公開されています。

PHP側のオフィシャルマニュアルは以下です。

PHP: How to change configuration settings – Manual
以下のような記述があります。

When using PHP as an Apache module,
you can also change the configuration settings using directives
in Apache configuration files(e.g.httpd.conf) and .htaccess files.

You will need “AllowOverride Options”
or “AllowOverride All” privileges to do so.

上書きオプションを有効にして、
htttpd.confか.htaccessファイルで設定できます。という感じです。

実際にヘルプにしたがって設定を行うとどのようなことができるかを考えてみましょう。

wordpressのみアップロードファイルサイズを拡張

wordpressやphpMyAdminなどのPHPベースのアプリケーションを利用していて、
最初に遭遇するのが、アップロードファイルサイズの上限ではないでしょうか。

このファイルサイズ上限は通常はPHP.iniにて設定の変更を行っているでしょう。
ファイルアップロード上限の変更(PHP/phpMyAdmin/wordpress)

しかしこのアップロードするサイズについては、
wordpressで言えば、画像ファイルのサイズですしそう大きなサイズはUPしないでしょう。
問題はphpMyAdminです。

インポートやエクスポートを行う過程で、
大きなSQLファイルをアップロードすることになりファイルサイズの拡張を行うのです。

PHP.iniでファイルサイズを変更し100MBなどと設定すると、
phpMyAdminでも100MBまでアップロードが許可されます。
と、同時にwordpressのファイルアップロード側も同様に100MBに拡張されます。

正直、phpMyAdminだけで十分じゃないでしょうか。
私のサイトのエクスポートデータは260MBを超えてきていますので、
実質は300MBとか500MBといった設定を利用することになります。
データを整理すればSQLも小さくなるのですが^^; おいおいで。

設定方法による違い

PHP.iniの変更を行った際にはApacheを再起動してください。

PHP.iniで設定する場合

PHP.iniでファイルのアップロードサイズの
設定を行った場合の動作を確認してみましょう。
ここではわかりやすく500MBとして設定してみます。

phpinfoの確認

phpinfoにて設定値を確認すると、以下のように表示されます。

01_phpinfo(PHP.ini)

phpinfo(PHP.ini)

Directive Local Value Master Value
post_max_size 500M 500M
upload_max_filesize 500M 500M
wordpressのファイルアップロード

wordpressのメディアアップロード画面でも正しく拡張されています。

02_wordpress(PHP.ini)

wordpress(PHP.ini)

phpMyAdminのインポート

phpMyadminのインポート画面でも正しく拡張されています。

03_phpMyAdmin(PHP.ini)

phpMyAdmin(PHP.ini)

httpd.confで設定する場合

httpd.confで設定を行う場合の方法は以下の投稿でご紹介しています。
※PHPはApacheモジュールとして実行した場合の設定です。

PHP.iniに設定する設定値はhttpd.conf・.htaccessに対しても設定が可能

今回のpost_max_sizeとupload_max_filesizeの設定でいえば、以下のような記述になります。

設定を反映したらApacheを再起動します。(PHP.iniは変更していません)

phpinfoの確認

phpinfoにて設定値を確認すると、以下のように表示されます。

04_phpinfo(httpd.conf)

phpinfo(httpd.conf)

Directive Local Value Master Value
post_max_size 250M 500M
upload_max_filesize 250M 500M
wordpressのファイルアップロード

wordpressのメディアアップロード画面でも正しく拡張されています。

05_wordpress(httpd.conf)

wordpress(httpd.conf)

phpMyAdminのインポート

phpMyadminのインポート画面でも正しく拡張されています。

06_phpMyAdmin(httpd.conf)

phpMyAdmin(httpd.conf)

.htaccessで設定する場合

.htaccessで設定を行う場合の方法は以下の投稿でご紹介しています。
PHP.iniに設定する設定値はhttpd.conf・.htaccessに対しても設定が可能

今回のpost_max_sizeとupload_max_filesizeの設定でいえば、
.htaccessに以下のような記述を行います。

.htaccessでは当然ながらApacheの再起動は不要です。
phpMyAdminおよび、wordpressのディレクトリの両方に対して、
.htaccessを配置しています。
phpMyAdminは25MB、wordpressは75MBで設定しています。

ここまでのディレクトリ構成は以下のようになっています。

07_ディレクトリ構成

ディレクトリ構成

phpinfoの確認

phpinfoにて設定値を確認すると、以下のように表示されます。

08_phpinfo(.htaccess)

phpinfo(.htaccess)

Directive Local Value Master Value
post_max_size 25M 500M
upload_max_filesize 25M 500M
wordpressのファイルアップロード

wordpressのメディアアップロード画面でも正しく拡張されています。

09_wordpress(.htaccess)

wordpress(.htaccess)

phpMyAdminのインポート

phpMyadminのインポート画面でも正しく拡張されています。
※個別に75MBを指定しています。

10_phpMyAdmin(.htaccess)

phpMyAdmin(.htaccess)

プロモーション(btm)

Google or AdMax Promotion (it)

さいごに

こうしてApacheに対してPHPの設定を行うことで、
Apacheが持つ条件指定でPHPの各設定を
切り替える動作をさせることができるようになります。

こうすることで、phpMyAdminのみインポート・エクスポート用に、
アップロードファイルサイズを大きく設定して、
wordpressでは本来の8MBのままで運用を行うといったことが可能になります。

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - Apache, PHP, phpMyAdmin, WordPress ,

Comment

  1. […] 参考URL:PHP.iniに設定する設定をhttpd.confや.htaccessに対して行うメリット […]

  関連記事