php.ini 업로드 크기를 변경하는 안전하고 최소한의 방법

php.ini 업로드 크기를 변경하는 안전하고 최소한의 방법

에서 유명한 합계 비율을 변경하려면 2M버전 독립적인 다음 두 줄 솔루션을 사용합니다(별표 참조).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

단일 명령으로 동일한 두 개체 변경을 수행하는 더 짧고 미니멀한 방법이 있습니까? 여전히 안전하고 버전에 독립적인 것입니다.

저는 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_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'파일 이름
이는 첫 번째 명령이 수행하는 작업을 보여줍니다.

관련 정보