以下方法非常有效:
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}?
答案1
您可以使用正则表达式-例如:
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
答案2
假如说:
- 值始终以 Mb 为单位指定。
- 您希望保留尾随的评论。
- 您不想修改任何已注释的事件。
phpmemory_limit
仅包含一个整数。sed -ri 's/^(memory_limit = )[0-9]+(M.*)$/\1'${phpmemory_limit}'\2/' /etc/php5/apache2/php.ini
这使用..
- 反向引用以缩短正则表达式并保留注释。
sed
扩展的正则表达式支持。- 按该顺序指定缩短的选项很重要,否则它将创建带有文件扩展名的备份
r
。