で有名な合計比率を変更するには、バージョンに依存しない次の2M
2行のソリューションを使用します(アスタリスクを参照)。post_max_size
upload_max_size
php.ini
sed
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_size
→e
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.ini
globまたは他のファイル名またはファイル名のリストを使用してください。
上記の作業を実行する前に、以下を実行する必要があります。
sed -n 's/^(\w*[td]_max_\w*サイズ\s*=\s*).M/\1200M/p'ファイル名これは、最初のコマンドが実行する操作を示しています。