php.iniアップロードサイズを変更する安全で最小限の方法

php.iniアップロードサイズを変更する安全で最小限の方法

で有名な合計比率を変更するには、バージョンに依存しない次の2M2行のソリューションを使用します(アスタリスクを参照)。post_max_sizeupload_max_sizephp.inised

sed -i 's/post_max_size \= .M/post_max_size \= 200M/g'             /etc/php/*/fpm/php.ini
sed -i 's/upload_max_filesize \= .M/upload_max_filesize \= 200M/g' /etc/php/*/fpm/php.ini

単一のコマンドで同じ2つのオブジェクトを変更するためのより短くてミニマリストな方法はありますか?それでも安全でバージョンに依存しません。

私はNginxをWebサーバーとして使用しています。

ベストアンサー1

両方のパラメータを同時に実行する不器用な方法は次のとおりです。

sed -i 's/^(\w*[td]_max_\w*サイズ\s*=\s*).M/\1200M/'ファイル名

まずこれによるとphp.iniコマンドのリスト_max_、次を含み、次に終わるキーワードは3つだけですsize

  • imlib2.font_cache_max_size
  • post_max_size
  • upload_max_filesize

それぞれの場合で、直前の文字が_max_ 異なることに注意してください。

  • imlib2.font_cache_max_sizee
  • post_max_size       →t
  • upload_max_filesize    →d

これにより、検索で[td]_max_最初の項目を削除できます。

詳細コマンド:

  • ^もちろん、正規表現を行の先頭で一致するように制限します。行の先頭で始まらない文字列を一致させるには、その文字列を削除します^。注:指定する他の項目を追加しないと、コマンドはコメントアウトされた行を変更して混乱する可能性があります。
  • \(…\)文字セットを識別します。私たちはこれをすべてを一致させるために使用します(ただし、いいえを含む)パラメータ値(つまり、次の数字=)。
  • \w*[td]_max_\w*sizeマッチ
    • 任意の数の「単語」(英数字)文字、
    • 一つtまたは一つd
    • _max_
    • 任意の数(0個可能)の単語文字と
    • size
  • \s*=\s*任意の数の空白文字(通常のスペースまたはタブ)、1、および任意の数の=空白文字と一致します。 (話す必要はありません\=。)

    これはグループの終わりです\)

  • ご存知のように、次の.Mすべての文字と一致しますM。 (すでに使用しています。)
  • \1200M混乱しているようですが、ちょうどそうです。
    • \1、グループの文字を\(…\)自分の文字に置き換え、
    • 次の数字を200M置き換える数字です。nM

g 同じ行内の複数の文字列を一致させる必要がない限り、必要はありません^(正規表現を行の先頭に固定する場合は不可能です)。

変えるfilename(s)/etc/php/*/fpm/php.iniglobまたは他のファイル名またはファイル名のリストを使用してください。

上記の作業を実行する前に、以下を実行する必要があります。

sed -n 's/^(\w*[td]_max_\w*サイズ\s*=\s*).M/\1200M/p'ファイル名
これは、最初のコマンドが実行する操作を示しています。

おすすめ記事