Назад | Перейти на главную страницу

sed php.ini memory_limit

Следующее отлично работает:

phpmemory_limit=256M #or what ever you want it set to
sed -i 's/memory_limit = 16M/memory_limit = '${phpmemory_limit}'/' /etc/php5/apache2/php.ini

Если memory_limit установлен на 16M, но я обнаружил, что в некоторых дистрибутивах он не по умолчанию равен 16M, а вместо этого будет по умолчанию 32M. Итак, мой вопрос: как мне получить для этого учетную запись SED и заменить любой номер на $ {phpmemory_limit}?

вы можете использовать регулярное выражение - например:

phpmemory_limit=256M #or what ever you want it set to
sed -i 's/memory_limit = .*/memory_limit = '${phpmemory_limit}'/' /etc/php5/apache2/php.ini

При условии, что:

  • Значения всегда будут указываться в МБ.
  • Вы хотите сохранить комментарии в конце.
  • Вы не хотите изменять какие-либо прокомментированные события.
  • phpmemory_limit содержит только целое число.

    sed -ri 's/^(memory_limit = )[0-9]+(M.*)$/\1'${phpmemory_limit}'\2/' /etc/php5/apache2/php.ini
    

Это использует ..

  • Обратные ссылки, чтобы сократить регулярное выражение и сохранить комментарий.
  • seds расширенная поддержка регулярных выражений.
  • Важно, чтобы сокращенные параметры указывались именно в этом порядке, иначе будет создана резервная копия с расширением файла. r.