[5.6] Come ho superato il register_globals = on del mio provider

3 contenuti / 0 new
Ultimo contenuto
[5.6] Come ho superato il register_globals = on del mio provider

Volevo partecipare a tutti voi come ho superato il register_global abilitato del mio fornitore di spazio web, che comporta il seguente errore in fase di installazione:

register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings. (Attualmente utilizzata PHP x.x.x)

Le informazioni le ho prese da un forum inglese, di cui, sinceramente, ho perso il link.

N.B. Di seguito con www.miositofittizio.it si indicherà un sito fittizio che corrisponde al nome del dominio ospitato sul fornitore.

Passo 1 - Ottenere alcune informazioni

Abbiamo bisogno di due informazioni:

  1. Dove è situato il file php.ini sul server
  2. Qual è il path assoluto alla nostra home directory remota

A tale scopo creare un file [b]info.php[/b] con il classico

<?php  phpinfo() ?>

Uploadarlo (per esempio) sulla root del proprio hosting. Dunque aprire con il browser:

http://www.miositofittizio.it/info.php[/codefilter_code]

Cercare nella pagina che si apre quest'informazione:

Configuration File (php.ini) Path

Nel mio caso, tale valore è:

/etc/apache/php.ini

Incolliamola in un file testo vuoto e procediamo per la seconda informazione, il path assoluto sul server alla nostra home directory:

DOCUMENT_ROOT

Nel mio caso, tale valore è:

/web/htdocs/www.miositofittizio.it/home/

Passo 2 - Copiamo il file php.ini nella nostra home directory

Creiamo un file php (es. [b]copia.php[/b]) in cui scriveremo un codice che copia il file php.ini precedentemente determinato nella nostra home directory:

<?php
 system
("cp /etc/apache/php.ini /web/htdocs/<a href="http://www.miositofittizio.it/home/"" rel="nofollow">www.miositofittizio.it/home/"</a>); 
?>

Dunque aprire con il browser:

http://www.miositofittizio.it/copia.php[/codefilter_code]

La pagina bianca del browser confermerà che il file php.ini è stato copiato nella nostra home directory.

Passo 3 - Modifichiamo il file php.ini

Scaricare il file php.ini (si trova nella directory radice della nostra home remota) in una directory locale e apriamolo con un editor (se usate Windows il classico Blocco Note non va bene in quanto non visualizza correttamente il carattere di ritorno del formato testo UNIX; usare editor evoluti come "Programmer's Editor" ecc.)

Cercare questa opzione:

;register_globals = Off
register_globals = On

Modificarla in:

register_globals = Off
;register_globals = On

Cercare questa seconda opzione:

;session.save_path = /tmp

Modificarla in:

;session.save_path = /tmp
session.save_path = /web/htdocs/www.miositofittizio.it/home/tmp/sessions
[/codefilter_code]

Passo 4 - Creiamo un file .htaccess

Creare un nuovo file testo .htaccess con il seguente contenuto:

<IfModule mod_suphp.c>
  suPHP_ConfigPath /web/htdocs/www.miositofittizio.it/home/
  <Files php.ini>
    order allow,deny
    deny from all
  </Files>
</IfModule>

Caricarlo sulla directory radice dove è stato copiato Drupal.

Grazie dell'ottima spiegazione, appena ho tempo lo aggiungo come HOWTO, ma prima bisogna ordinare le FAQ.

Grazie

Nel caso di Aruba il problema si risolve dal pannello di controllo selezionando il profilo drupal per php.ini.
Vedi qui: http://www.rfc.it/drupal/content/drupal-registerglobal

Fabrizio
www.rfc.it