Programaticamente altere AllowOverride para Directory / var / www /

1

Como posso progamaticamente (usando BASH) alterar AllowOverride para <Directory /var/www/> de 'None' para 'All'?

Em vez disso, é necessário editar manualmente /etc/apache2/sites-enabled/000-default

Normalmente eu poderia usar sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/sites-enabled/000-default

No entanto, meu arquivo 000-default tem outras diretivas AllowOverride que não quero alterar:

NameVirtualHost *
<VirtualHost *>
 ServerAdmin webmaster@localhost

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

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
 ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Por exemplo, não quero AllowOverride em /usr/share/doc ou /usr/lib/cgi-bin

Eu só quero que ele seja definido em <Directory /var/www/> p.s. Eu estou no Ubuntu-Server 8.04.

    
por BassKozz 20.12.2009 / 00:36

1 resposta

3

Para mudar de Nenhum para Todos:

awk '/<Directory \/var\/www\/>/,/AllowOverride None/{sub("None", "All",$0)}{print}'
    
por 20.12.2009 / 02:31