🢂PHP ini, masowa zmiana wartości

Polecenia `sed` do edycji wielu plików `php.ini`.

Jeśli używasz wielu wersji PHP, pojawia się problem ze zmiana wartości we wszystkich plikach php.ini.

Możesz użyć poniższego polecenia sed, aby podmienić wartość post_max_size na 16G we wszystkich plikach znalezionych w wynikach:

Przykład użycia:

find . -type f \( -name "php.ini" -o -name "php.ini.*" \) -exec sed -i 's/post_max_size = [0-9]\+[GMK]/post_max_size = 16G/g' {} +

Wyjaśnienie:

  • find . -type f \( -name "php.ini" -o -name "php.ini.*" \): wyszukuje wszystkie pliki o nazwie php.ini oraz jego warianty (php.ini.*).
  • exec sed -i 's/post_max_size = [0-9]\+[GMK]/post_max_size = 16G/g' {} +:
    • s/post_max_size = [0-9]\+[GMK]/post_max_size = 16G/g:
      • [0-9]\+ dopasowuje liczby (8, 8M, 8000M, 2048M, 18G, itp.).
      • [GMK] oznacza, że liczba jest zakończona G, M lub K.
      • Zamienia każdą wartość na 16G.

Weryfikacja zmian:

Jeśli chcesz najpierw sprawdzić, jakie zmiany zostaną wprowadzone, użyj wersji sed bez opcji -i:

find . -type f \( -name "php.ini" -o -name "php.ini.*" \) -exec sed 's/post_max_size = [0-9]\+[GMK]/post_max_size = 16G/g' {} +

Jeśli chcesz dodatkowo zobaczyć, które pliki zostaną zmodyfikowane, możesz użyć:

grep -rl "post_max_size" .

To pozwoli ci zweryfikować, że wszystko działa zgodnie z oczekiwaniami przed dokonaniem trwałych zmian.

Podsumowanie:

Polecenie sed jest bardzo przydatne do masowej zmiany wartości w plikach php.ini. Pamiętaj, aby zawsze sprawdzić zmiany przed ich zastosowaniem, aby uniknąć niepożądanych skutków.