Telefono: +39 392 33 73 731

Aggiornamento Contao 2.11.17 ed internal server error

La sintassi di "FilterProvider" è cambiata per Apache 2.4 e superiori, quindi il server va in errore se il file .htaccess non è scritto per la versione corretta. Ovviamente ogni hosting aggiorna Apache ai tempi e modi che vuole, quindi potrebbe accadere che un server ti dia noie. Niente panico, in pochi secondi sistemiamo la faccenda.

Oggi, su Aruba, ho riscontrato il problema di errore 500, internal server error, subito dopo aver aggiornato Contao alla versione 2.11.17 (versione estremamente necessaria a causa di un grave bug sulla sicurezza nel tool di installazione).

Per fortuna ho trovato facilmente la risposta: se anche tu sei su Aruba controlla il log degli errori, nel pannello di gestione di Linux. Se ti appare indicato un errore simile a "FilterProvider takes three arguments, filter-name provider-name match-expression", il problema lo risolviamo subito.

Apri il tuo file .htaccess della root di Contao, e localizza il pezzetto di codice seguente.

# Current Apache versions (>= 2.2)
  <IfModule filter_module>
    FilterDeclare   COMPRESS
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/x-icon
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
    FilterChain     COMPRESS
    FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
  </IfModule>
  # Legacy Apache versions
  <IfModule !mod_filter.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>

Probabilmente si sono dimenticati di aggiungere il codice per la compatibilità tra versioni prima e dopo 2.4. In ogni caso sostituisci quella parte con il codice seguente che dovrebbe essere corretto.

<IfModule filter_module.c>
  <IfModule version.c>
    <IfVersion >= 2.4>
      FilterDeclare  COMPRESS
      FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^text/(html|css|plain|xml|x-component)#i"
      FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^application/(javascript|json|xml|xhtml+xml|rss+xml|atom+xml|vnd.ms-fontobject|x-font-ttf)#i"
      FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^image/(svg+xml|x-icon)#i"
      FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'font/opentype'"
      FilterChain    COMPRESS
      FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
    </IfVersion>
    <IfVersion < 2.4>
      FilterDeclare COMPRESS
      FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
      FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
      FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
      FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
      FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
      FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon
      FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
      FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
      FilterChain COMPRESS
      FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
    </IfVersion>
  </IfModule>
  <IfModule !version.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>
</IfModule>

A questo punto torna ad aggiornare la pagina del sito, dovrebbe essere visibile.

Venerdì 18 Aprile 2014
(0 commenti)

Aggiungi un commento

Nome
E-mail (non verrà pubblicata)
Sito Web
Commento