2017年1月 5日

ThinkPadが休止状態から復帰すると大量のディスクアクセスが発生する

ThinkPadの省電力マネージャーにFast Hibernation Resumeという機能があり、これが原因で、復帰時に大量のディスクアクセスが発生する。アプリケーションが応答なしになり、マウスクリックやキーボード入力の反応も悪い。対策は、省電力マネージャーをアンインストールするか、以下のレジストリキーを追加してFast Hibernation Resumeを無効にする。

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Lenovo\PWRMGRV\Data]
"FastHibernationResume"=dword:00000000

(注)このレジストリキーは64ビットWindows用なので、それ以外のバージョンでは使わないこと。私はWindows 7 64ビットと省電力マネージャー6.68.10で動作確認した。

Fast Hibernation Resumeは、休止状態に入る前にアプリケーションをスワップアウトし、ハイバネーションファイルへの書き込みや読み出し量を少なくしようというものである。これで休止状態への移行や復帰は速くなるが、スワップアウトしたメモリページはスワップインしなければならないので、これが大量のディスクアクセスを引き起こす。

ブラウザのタブをたくさん開いていると、1GBくらいのメモリを使っているはず。私の環境(T520、Windows 7 64ビット、Firefox)では、休止状態から復帰した後5分以上ディスクアクセスが治まらず、その間ブラウザが応答なしになり、使い物にならなかった。Chromeはタブ毎にプロセスを分離しているので、応答なしにはならないが、タブを選択しても反応しないなど、やはり影響を受けている。

昔のThinkPadは、省電力マネージャーにIBM独自の電源管理機能が入っていて、それが優位点だったのだが、いまはWindowsの電源管理機能が充実していて、省電力マネージャーは単にWindowsの電源管理に対する独自のUIを提供するだけの役割になっている。実際、Windows 10では省電力マネージャー事態が提供されなくなった。ほとんどの人は省電力マネージャーをアンインストールしても問題ないだろう。

バッテリー充電の閾値設定はいまでも省電力マネージャー独自の機能である。AC電源主体で使っているときは、充電量を50%で抑えることによって、バッテリー寿命を延ばすことができるとされている。これを使いたいときは、上記のレジストリキーでFast Hibernation Resumeを無効にすれば良い。

参考記事

Windows 7 - Resuming from hibernation is slow on Thinkpad
http://asqueella.blogspot.jp/2012/07/windows-7-resuming-from-hibernation-is.html

Bug report: Power Manager causes slow performance after resuming from hibernation
http://forums.lenovo.com/t5/ThinkVantage-Technologies/Bug-report-Power-Manager-causes-slow-performance-after-resuming/m-p/1349923/highlight/false#M24262

| | コメント (0)

2016年7月20日

iCloudミュージックライブラリの諸問題~Apple Muscは曲名とアーティスト名だけでマッチ

以下の記事は2016年夏までの仕様で、現在は音紋(Acoustic fingerprinting)による高精度のマッチ処理になっている。

 

iTunes Matchは音楽ファイルのAcoustic fingerprintingでマッチしているが、Apple Musicのマッチはメタデータだけを使っており、これをiTunes Matchと同じアルゴリズムに変えようとしているという噂が出てきた。

Apple begins rolling out iTunes Match with audio fingerprint to Apple Music subscribers
http://www.loopinsight.com/2016/07/18/apple-begins-rolling-out-itunes-match-with-audio-fingerprint-to-apple-music-subscribers/

iCloudミュージックライブラリはもう使っていないが、テスト環境でいろいろ試してみた。以前調べたときは、メタデータでマッチングしているように見えなかったのだが、曲名とアーティスト名でマッチしている。しかし日本語の処理に問題があるようだ。

Apple Music Matches Files with Metadata Only, not Acoustic Fingerprinting | Kirkville
http://www.mcelhearn.com/apple-music-matches-files-with-metadata-only-not-acoustic-fingerprinting/

Apple Musicに存在しない適当な曲のAACファイルをiTunes 12に取り込み、曲名を「Can’t Feel My Face」、アーティスト名を「The Weeknd」に変えてiCloudミュージックライブラリを更新した。いったんiCloudの状況が「アップロード済み」になってマッチしなかったように見えるが、再度iCloudミュージックライブラリを更新すると「Apple Music」になった。iPhoneからiCloudミュージックライブラリの曲を聴くと「Can’t Feel My Face」が流れる。アートワークも収録アルバム「Beauty Behind the Madness」になった。アルバム名や作曲者名などが空白でもマッチする。要するに曲名とアーティスト名しか見てない。

iTunes 12でApple Musicのカタログを見ると、アーティスト名が「ザ・ウィークエンド」と表示される。しかしアーティスト名を日本語表記にすると、全然マッチしない。マッチに使っているメタデータと、iTunes 12やiPhoneミュージックアプリに表示するデータが必ずしも一致しない。原語表記と各国語表記を処理やUIによって使い分けているようだ。

曲名やアーティスト名が全然違う曲にマッチしているのは、日本語処理のバグ、もしくはバグではないが不適切な仕様によるもののようだ。例えば以下のような誤マッチがある。

  • 「CLOSE YOUR EYES」(山下達郎)が「CLOSE YOUR EYES」(山下久美子)にマッチ
  • 「明日の記憶」(宮本文昭)が「明日への路 (feat. 上間綾乃)」(宮本笑里)にマッチ
  • 「風笛」(宮本文昭)が「風笛」(宮本笑里)にマッチ
  • 「風と少年とタマゴ(宮本文昭)が「風の伝説」(宮本由利子)にマッチ。
  • 「運命の対決」(大島ミチル)が「運命の扉」(大島はるな)にマッチ
  • 「ローマの松 I. ボルゲーゼ荘の松」(小澤征爾/ボストン交響楽団)が「ローマの平日」(小森田実&ALPHA)にマッチ。

この6パターンをじっくり見ると、日本語の曲名やアーティスト名は最初の数文字しか使ってないように思える。ひらがなを無視しているかもしれない(中国語と処理を共通にするため?)。2015年11月に誤マッチしたのと同じことが現在(2016年7月)にも起きるから、Apple Musicのマッチ処理はこの半年で全然変わってない。

さて、噂通りAcoustic fingerprintingでマッチするようになるのだろうか。当のニュース記事は、一部のユーザから徐々に広げていくと書いてある。しばらく経ってiCloudミュージックライブラリを更新すると、誤マッチした上記の曲が正しくマッチもしくはアップロードに変わるのだろうか。ついでにアルバム名もマッチに使ってくれれば、オリジナル盤とベスト盤の曲が混在することもなくなると思うのだが。

(2016年8月2日追記)
私のアカウントがAcoustic fingerprintingでマッチするようになっていた。上に挙げた誤マッチが全て修正され、正しい曲が流れるようになった。以前はマッチした曲のiCloudの状況が「Apple Music」だったのが、いまは「マッチ」と表示される。

アタッカでつながるトラックの片方だけがマッチすると、つなぎの部分が音飛びしたり不自然だったりするものがある。そもそもつなぎ目のないマスターからトラックを切り出しているから、手持ちCDと配信ファイルで違うことがあるんだろう。つなぎ目の不自然さは、真剣に聞いてなければたぶん気付かない。ただしゲルギエフ指揮ウィーンフィルの「展覧会の絵」は、CDとApple Musicでトラックの切り方が完全に違ってて、マッチした「バーバ・ヤガー」とアップロードした「キエフの大門」の間の上昇音型が2回流れる。

(2016年9月21日追記)
トラックの継ぎ目の他に、トラック間の音量差が気になることもある。Apple Musicは全体的に音量が大きめだ。CDから取り込んだファイルはそれに比べて音量が小さめ。アルバムを頭から順に聴いていると、音量が急に大きくなったり小さくなったりする。

| | コメント (0)

2015年11月16日

iCloudミュージックライブラリの諸問題(再生回数・日時が反映されない)

再生回数や最後に再生した日をベースにスマートプレイリストを作り、今日聞いた曲を振り返ったり、最近あまり聞いてない曲を掘り返したりしている。iCloudミュージックライブラリを使ってない場合は、iPhoneやiPodを母艦iTunesに同期したときに、デバイスから再生情報がiTunesライブラリに反映されていた。

iCloudミュージックライブラリをiPhoneでオンにした場合、再生回数と最後に再生した日時は、すぐにはiCloudミュージックライブラリに反映されない。2015年11月現在、12時間の反映中断期間がある。例えば9:00に曲を再生してiCloudに反映したとすると、21:00まではiPhoneで再生してもiCloudに反映されず、iPhone内にキューイングされる。21:00過ぎに何か再生すると、それまでの未反映分がまとめて反映される。反映中断期間は、以前は24時間だったらしい。

iTunes Match vs. Play Counts | Apple Support Communities
https://discussions.apple.com/thread/3495653?start=450&tstart=0

再生情報がキューイングされているときにiCloudミュージックライブラリをオフにすると、当然のごとく情報は消失してしまう。

なぜこんな期間を設けてバッチで反映しているのか。トランザクションを減らしてクラウド側の負荷を減らしたいのか?面白いことにラブやレートをiPhoneで変更すると、それは即座にiCloudに反映される。これができるのに、なぜ再生情報を反映しないのか。全くAppleのやることはよく分からない。

iTunesとiPodが出たときは、そのシンプルさに感動したものだ。iCloudミュージックライブラリで一気に複雑になり、思うようなライブラリ管理ができなくなった。CDから取り込んでiTunesライブラリを育てるような面倒なことはするな、Apple Musicのストリーミングで聞き、Apple MusicになければiTunesで買えということなんだろうか。最近のMacにはCDドライブすら付いてないから、あながち的外れではないような気がする。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2015年11月28日追記)
マイミュージックに登録してないApple Musicプレイリストを再生しても、iPhoneの中に溜まっている再生情報をiCloudに反映できるようだ。ステーションの再生ではだめだった。

(2016年8月23日追記)
2016年夏のApple Music仕様変更でマッチ精度が上がったのだが、再生回数・再生日時の反映は相変わらずリアルタイムではなく、一日2回のバッチ処理だ。

(2016年9月21日追記)
iOS 10でも一日2回のバッチ反映のままだ。タイミングはiOSアップグレード時刻(とその12時間後)に移動した。

| | コメント (0)

iCloudミュージックライブラリの諸問題(アートワークが違う)

iCloudミュージックライブラリで違う曲にマッチすると、アートワークも別のアルバムのものが表示されてしまう。曲ファイルのタグ情報にアートワークを自分で埋め込んでいても、マッチした曲にはApple Musicのアートワークが使われる。そのため、オリジナルアルバムなのにコンピレーション盤のアートワークが表示されたり、ベスト盤のトラックなのにオリジナルアルバムのアートワークが表示されたりする。

せっかく時間を掛けてアートワークを設定してきたのに、一枚のアルバムの中で曲毎にアートワークがバラバラという残念なことになってしまう。アルバム一覧で表示されるアートワークは、複数あるアートワークのどれかが自動的に選ばれる。見慣れないジャケ写がアルバム一覧に並ぶわけだ。

さいわいiCloudミュージックライブラリ側に違うアートワークが表示されていても、母艦iTunesのアートワークは上書きされてないようだ。もっとも、アートワークをファイルに埋め込まずにiTunesからダウンロードした場合、それがめちゃくちゃにされたという事例もあるから安心はできない。

Apple Music によってめちゃくちゃにされた iTunes のアルバムアートワークを修正する方法 | R
http://wp.me/p4kidi-1nj

解決策は今のところ見つかってない。強制アップロードさえできれば、自分で設定したアートワークも一緒にiCloudに反映されるのだが・・・

(2015年11月17日追記)

解決策を見つけた。アルバムの一部の曲がアップロードされ、一部がApple Musicにマッチして別のアートワークが設定されている場合には、マッチした曲のアートワークをiCloud側で削除すればよい。アートワークが設定されてない曲には、同じアルバムの別の曲のアートワークを使う仕組みになっているのだろう。

母艦iTunesと別のPCにiTunesをインストールし、Apple IDでログインして、iCloudミュージックライブラリをオンにする。このiTunesはiCloudミュージックライブラリ管理専用だ。意図しないアートワークが付いている曲のプロパティを開き、アートワークを削除すると、iPhoneに表示されるアートワークが、マッチしてない曲と同じものに置き換わる。念のため母艦iTunesのアートワークを確認したが、ファイルに埋め込んだものがそのまま残っている。母艦の曲ファイルの更新日付が書き換わるが、それ以外のメタデータや曲データ以外に変化はない。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2016年8月2日追記)
Acoustic fingerprintingでマッチするようになったので再度テストしてみたら、マッチしてもしなくても、ファイルに埋め込んだアートワークが表示されるようになっていた。ファイルに埋め込んでない場合は、Apple Musicで見つかったアートワークをあてがっている。改めて埋め込むと、それが表示される。面倒なことは考えず、iTunesライブラリでアートワークをファイルに埋め込めばよいので楽だ。

これを応用して、マッチ先を探すこともできる。マッチした曲の聞こえ方がなんかおかしいときは、いったんiCloudミュージックライブラリから削除し、ファイルに埋め込んだアートワークをiTunesで削除し、再びiCloudミュージックライブラリに登録する。マッチしたアルバムのアートワークが使われるはずだから、それを手がかりに、マッチしたアルバムを調べられる。
確認したバージョンはiTunes 12.4.3.1 (Windows 7)とiOS 9.3.3。

| | コメント (0)

iCloudミュージックライブラリの諸問題(違う曲にマッチする)

Apple Musicで見つけた曲やプレイリストを保存するには、iCloudミュージックライブラリが必須だ。iCloudミュージックライブラリをiPhoneでオンにすると、iTunesとの同期はiCloud経由になる。USBケーブルで接続しても音楽は同期しない。iTunesからiPhoneに曲を転送するには、iTunesでもiCloudミュージックライブラリをオンにしなければならない。すると母艦のライブラリをスキャンして、Apple MusicにマッチしたものはアップロードせずにiPhoneで聴けるようになるし、マッチしないものは曲ファイルをiCloudにアップロードして、やはりiPhoneで聴けるようになる。便利だ、素晴らしい。もしマッチがうまくいけば。

実際にはマッチ精度が低くて、別の曲にマッチすることがよくある。これはiTunes Matchの頃からの問題で、Appleのディスカッションフォーラムにいくつもスレッドが立っている。ビートルズのモノラル録音がステレオ盤にマッチするというのが有名のようだ。

私が経験したのは次のようなパターンだ。同じ曲の別録音や別のライブ音源にマッチする。例えばカラヤンとベルリン・フィルがEMIで1971年に録音したチャイコフスキー交響曲第4番の第4楽章が、グラモフォンでの1966年の録音にマッチしたり、佐野元春「Heartland」の「インディビジュアリスト」が、「THE GOLDEN RING」収録の別のライブ音源にマッチしたりした。全然違う曲にマッチすることもある。宮本文昭の「明日の記憶」が娘・宮本笑里「明日への道」にマッチしていて、ちょっと笑ってしまった。

おそらく音楽の波形を部分的に採取してハッシュを取って比較しているのだろう。ビットレートを高くしておけばマッチしやすいという噂もあるが、AAC 256kbpsでも起きた。

iCloud側の曲をiPhoneで削除して、母艦iTunesでiCloudミュージックライブラリに追加すると、再びマッチング処理が始まって、こんどは誤マッチせずアップロードすることもある。おかしな曲を見つけたら、とりあえずiPhoneで削除しておくというのも手である。母艦iTunesでiCloudの状況が「削除されました」になるから、そういう曲を自動抽出するスマートプレイリストを作っておけば、あとでまとめて処理できる。運が良ければ、誤マッチを訂正できる。運が良ければ、というのが玉に瑕だ。

波形編集ソフトでファイルを編集してマッチしないようにし、アップロードが始まる前に元のファイルに差し替えるという力業を考え出した人もいるが、これを全ての曲でやるのはとても無理。

WORKAROUND — Found a Way to Force iTunes ... | Apple Support Communities
https://discussions.apple.com/thread/4544764?start=0&tstart=0

強制アップロードするオプションが必要という声が海外でも上がっている。しかしAppleがわざわざiTunes Matchの仕組みを捨てるようなことをするわけがない。

Some User Tips (April 2015) | Apple Support Communities
https://discussions.apple.com/docs/DOC-4113

いろいろ調べてようやく編み出したのが、iPhoneに曲を転送したあとiCloudミュージックライブラリで置き換えるという方法だ。

  1. 母艦iTunesからiCloudミュージックライブラリに曲を全てアップロードもしくはマッチしておく。
  2. iPhoneでiCloudミュージックライブラリをオフにする。Apple Musicの曲やプレイリストがiPhoneから消える。もしiPhoneに曲が残っていたら、それも削除する。もちろん原本が母艦iTunesにあることが前提だ。これでiPhoneの音楽ライブラリが空っぽになった。
  3. iPhoneをUSBケーブルで母艦に接続し、曲をiPhoneに転送する。
  4. iPhoneを母艦から取り外し、iCloudミュージックライブラリをオンにする。「結合」か「置き換え」かを聞いてくるので、「置き換え」を選ぶ。

これで、母艦から転送したファイルはそのまま残り、ライブラリの曲情報がiCloudからダウンロードされて曲と紐付けられる。曲毎にダウンロード済みのアイコンが表示されていて、ファイルがiPhoneに存在することが分かる。

母艦iTunesにCDから曲を追加したときは、上の手順を頭からもう一度やり直せば良い。面倒だが、おかしな曲が流れるよりよほどマシだ。

確認したバージョンはiTunes 12.3.1.23 (Windows 7)とiOS 9.1。

(2015年12月5日追記)

再アップロードで「アップロード済み」になったのでしめしめと思っていたが、iTunesで「iCloudミュージックライブラリを更新」を実行したら「Apple Music」になってしまった。そしてアートワークは母艦iTunesのもの、曲自体はApple Musicにマッチしたもの(モノラル録音)というおかしなことになっている。

(2016年7月20日追記)

Apple Musicのマッチの仕組みが分かったので、別ブログ記事に書いた。

iCloudミュージックライブラリの諸問題~マッチは曲名とアーティスト名だけで比較
http://raven.air-nifty.com/night/2016/07/apple-music-34d.html

(2016年8月23日追記)

2016年夏のApple Music仕様変更でマッチ精度がかなり上がり、トラック間のつながりがおかしいのがたまにあるだけで、違う曲が流れてくることはなくなった。

| | コメント (0)

2012年12月16日

エクスプローラで開いているディレクトリでCygwinのminttyを開く

エクスプローラで見えているファイルに対してgzipやtar、grepをしたいとき、スタートメニューからminttyを起動してcdで移動するのは面倒だ。ディレクトリが深い階層にあるときなどは、とてもやっていられない。コンテキストメニューから開けるようにした。

  1. Cygwinのセットアッププログラムでchereをインストールする。
  2. minttyを管理者権限で起動し、「chere -i -t mintty」を実行する。そのほかのオプションは「chere -h」を参照。
  3. エクスプローラでディレクトリを右クリックすると、「Bash prompt here」というメニューができている。これを選ぶと、そのディレクトリをカレントディレクトリとしてminttyが起動する。

コンテキストメニューを削除したいときは、管理者権限のminttyで「chere -u」を実行する。Windowsの「プログラムのアンインストール」ではうまくいかない。

エクスプローラのカレントディレクトリで開けないのが難点だ。対策は二つある。

  1. Alt-Dでアドレスバーに移動し、Alt-↑でひとつ上のディレクトリに移動してから、目的のディレクトリのコンテキストメニューでminttyを開く。キーボードだけで操作できるが、手数が多い。
  2. エクスプローラの整理→フォルダーと検索のオプション→全般で、「自動的に現在のフォルダまでを展開する」をオンにする。開いているフォルダがエクスプローラ左側のナビゲーションバーに現れるので、それを右クリックしてBash prompt hereを実行する。

| | コメント (0)

2012年11月 1日

tcpdumpの reply ERR

NFSの接続障害時にtcpdumpを取ったら、エラーらしきパケットがたくさん出てきた。

08:14:47.092825 IP (tos 0x0, ttl 63, id 39670, offset 0, flags [none], proto: TCP (6), length: 1500) .nfs > .<ポート>: reply ERR 1460

1460はいかにもエラーコードのような顔をしているが、実際はパケットもしくはどこかのフィールドの長さである。このトレースではエラーが起きていることしかわからない。Wiresharkを使う必要がある。

(参考記事)
Re: [tcpdump-workers] RPC responde code question (print-nfs.c)
http://www.mail-archive.com/tcpdump-workers@lists.tcpdump.org/msg03154.html


| | コメント (0)

特定の拡張子のファイルだけをコピーするrsyncのパラメータ

複数のディレクトリの複数の階層にある特定の拡張子(もしくは特定の名前パターン)のファイルだけをrsyncするときは、以下のように指定すればよい。これは.binファイルだけを対象にしている。

rsync -av --include="*/" --include="*.bin" --exclude=*

rsyncのmanページに例として載っている。

--include "*/" --include "*.c" --exclude "*" would include all directories and C source files

| | コメント (0)

2012年10月 1日

vim起動時に「E568: duplicate cscope database not added」

vimでcscopeを使うために.vim/plugin/cscope_maps.vimをインストールし、環境変数CSCOPE_DBにcscopeデータベースのパスを設定したら、vim起動時にエラーが出てしまった。

Error detected while processing /homes/shini/.vim/plugin/cscope_maps.vim:
line   45:
E568: duplicate cscope database not added

cscope_maps.vim以外にcs addを実行しているところは他に見当たらない。試しにcscope_maps.vimを削除してvimを起動し、「:cs show」を実行しても、接続されているデータベースは出てこないから、やはりcs addしているのはこのプラグインだけである。まるで「cs add $CSCOPE_DB」の行を2回実行しているようにみえる。

いろいろ調べて、.vimrcの次の行が原因だと判明した。

set runtimepath+=~/.vim/

もともとUNIXのvimで$HOME/.vimはruntimepathの先頭に入っているのに、末尾に再び付加することによって、pluginディレクトリ内のvimスクリプトを二重に読み込んでいた。他の人の.vimrcを参考にカスタマイズしていたとき、自分の環境では必要がないのに気付かず、そのままコピーしたらしい。

ちなみにRHELでは、/etc/vimrcの中でcscope_maps.vimと同じようなことをやっており、さらにRHEL付属のvimはシステムvimrcが/etc/vimrcに固定されている。pluginディレクトリの実行が1回だけでも、やはり「E568: duplicate cscope database not added」が起きる。この場合は

  • cscope_maps.vimを編集して/etc/vimrcと重複する部分を削除する。
  • 必要な部分(nonmapなど)を.vimrcにコピーする。
  • 必要な部分(nonmapなど)を別ファイルにして、.vimrcからsourceで読み込む、
  • 「set nocsverb」を指定して、メッセージを抑止する対症療法。

という対策がある。set nocsverbは以下の箇所(3行目)に挿入する。

" Set nocsverb not to print "E568: duplicate cscope database not added" message.
" See :help cscope or http://vimdoc.sourceforge.net/htmldoc/if_cscop.html
    set nocsverb
"   " add any cscope database in current directory
    if filereadable("cscope.out")
"        cs add cscope.out
   " else add the database pointed to by environment variable
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif

viimのヘルプに、データベースを追加する前にcsverbをリセットし、追加後にセットしろと書いてあり、/etc/vimrcはそうなっている。もっとも、これは別の理由かもしれない。

Ideally, you should reset this option in your |.vimrc| before adding any cscope databases, and after adding them, set it. From then on, when you add more databases within Vim, you will get a (hopefully) useful message should the database fail to be added.


| | コメント (0)

PHPで2MB以上のファイルをアップロード

PHPはデフォルトで2MB以上のファイルがアップロードできない。この上限を変更する方法は2つある。

システム全体で上限を変更

/etc/php.iniのupload_max_filesizeを変更する。

$ php -f phpinfo.php | grep max
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads. file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ;upload_tmp_dir =
; Maximum allowed size for uploaded files. ;upload_max_filesize = 2M upload_max_filesize = 10M

アップロード上限に応じて、post_max_size、max_execution_time、memory_limitも大きくする必要がある。

現在の設定値はphpinfo()で確認できる。

$ cat phpinfo.php
<?php
echo phpinfo();
?>
$ php -f phpinfo.php | grep max
log_errors_max_len => 1024 => 1024
max_execution_time => 0 => 30
max_file_uploads => 20 => 20
max_input_nesting_level => 64 => 64
max_input_time => -1 => 60
max_input_vars => 1000 => 1000
post_max_size => 8M => 8M
upload_max_filesize => 2M => 2M
session.gc_maxlifetime => 1440 => 1440

Apacheのディレクトリごとに設定

アップロード上限を変更したいディレクトリに.htaccessファイルを置き、以下の設定値を変更する。メモリ上限などの設定値は適当である。

php_value max_execution_time 60
php_value memory_limit 10M
php_value post_max_size 10M
php_value upload_max_filesize 10M

.htaccessによるアクセス制限の上書きはApacheのデフォルトで禁止されている。httpd.confのAllowOverrideディレクティブ(デフォルトNone)を変更して許可する。

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

(参考資料)
PHP: コア php.ini ディレクティブに関する説明 - Manual
http://php.net/manual/ja/ini.core.php#ini.upload-max-filesize

@IT:Apache 2.0の必須設定と基本セキュリティ対策(3/3)
http://www.atmarkit.co.jp/flinux/rensai/apache2_01/apache01c.html

Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ
https://httpd.apache.org/docs/current/ja/howto/htaccess.html

| | コメント (0)

«GNOMEターミナルのSolarized化