에서 유명한 합계 비율을 변경하려면 2M
버전 독립적인 다음 두 줄 솔루션을 사용합니다(별표 참조).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
단일 명령으로 동일한 두 개체 변경을 수행하는 더 짧고 미니멀한 방법이 있습니까? 여전히 안전하고 버전에 독립적인 것입니다.
저는 Nginx를 웹서버로 사용하고 있습니다.
답변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'파일 이름이는 첫 번째 명령이 수행하는 작업을 보여줍니다.