Apache yapılandırmada .htaccess dosyalarını etkinleştirmek için sed kullanma


13

Bir Bash komut dosyası ile bir Ubuntu Vagrant kutusunun sağlanmasını otomatikleştirmeye çalışıyorum. Her şey yolunda, ancak .htaccessdosyalardan geçersiz kılmalara izin vermek için Apache'yi yapılandırmakta zorlanıyorum . Yapılandırma dosyamda şu blok var:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

Yapmak tek şey ihtiyaç değiştirin AllowOverride Noneile AllowOverride all. Bu bir görev gibi görünüyor sed, ancak <Directory>bu yapılandırma dosyasında geçersiz kılmaya izin vermek istemediğim diğer bloklar var .

Diğer iki dize arasında belirli bir dize oluştuğunda sed'i belirli bir dizeyi yeni bir dizeyle değiştirmek için nasıl kullanabilirim?

Başka bir deyişle, AllowOverride Noneyalnızca <Directory /var/www/>ve arasında göründüğünde nasıl değiştirebilirim </Directory>?

İlgilendiğim bloğu almak için aşağıdaki komutu kullanabilirim:

sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default

Yanıtlar:


13

sed bu formdaki desen aralıklarını destekler:

sed '/startpattern/,/endpattern/ <sed-commands>' file

Örneğin:

sed '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' httpd.conf

Aradığım şey buydu!
captainblack
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.