migrazione drupal problemi link

16 contenuti / 0 new
Ultimo contenuto
migrazione drupal problemi link

Salve a tutti! Come da titolo:

ho un sito in drupal e devo migrarlo su un altro host, ora vi mostro i miei passi :) :

1- ho fatto il dump del db (mysql)
2- ho copiato tutti i file php del sito vecchio
3- ho incollato i file del sito vecchio nella cartella del sito nuovo
4- ho modficato il file setting.php che si trovava in sites/default modficando:
1- la stringa di connessione al db
2- il parametro $base_url
5- dopo aver fatto questo ho importato, con successo, il database dumpato in precedenza

risultato:

la prima pagina va!
ma se provo ad andare su un link mi salta fuori che non riesce a trovare le altre pagine.

qualcuno ha qualche idea in proposito? magari mi son perso qualche passaggio?

sono aperto a tutto :)

Hmm, che un piccolo particolare che non capisco...

Flavio87 wrote:
...ho un sito in drupal e devo migrarlo su un altro host, ora vi mostro i miei passi :) :

1- ho fatto il dump del db (mysql) - OK
2- ho copiato tutti i file php del sito vecchio - tutti i file spero, non solo php
3- ho incollato i file del sito vecchio nella cartella del sito nuovo - vinavil? Meglio Attak - OK
4- ho modficato il file setting.php che si trovava in sites/default modficando:
4a- la stringa di connessione al db - OK
4b- il parametro $base_url - OK
5- dopo aver fatto questo ho importato, con successo, il database dumpato in precedenza - OK


Ho solo qualche piccolo dubbio su punto 2. Anche .htaccess va trasferito (e magari anche modificato).
Flavio87 wrote:
risultato:
la prima pagina va! Woohoo
ma se provo ad andare su un link mi salta fuori che non riesce a trovare le altre pagine...

Qui mi sono perso. Cosa vuol dire "mi salta fuori che non riesce a trovare le altre pagine"? Visualizza la pagina 404 di Drupal, o 404 di Apache, o sempre la prima pagina?

Più imparo, più dubito.

Allora.

Quote:

Flavio87 wrote:
...ho un sito in drupal e devo migrarlo su un altro host, ora vi mostro i miei passi :) :

1- ho fatto il dump del db (mysql) - OK
2- ho copiato tutti i file php del sito vecchio - tutti i file spero, non solo php

Quote:

Dovremmo aver fatto uno zip con il modulo Backup and Migrate, ma potrei anche sbagliarmi, chiederò a valerio :)

3- ho incollato i file del sito vecchio nella cartella del sito nuovo - vinavil? Meglio Attak - OK
4- ho modficato il file setting.php che si trovava in sites/default modficando:
4a- la stringa di connessione al db - OK
4b- il parametro $base_url - OK
5- dopo aver fatto questo ho importato, con successo, il database dumpato in precedenza - OK

Quote:
Qui mi sono perso. Cosa vuol dire "mi salta fuori che non riesce a trovare le altre pagine"? Visualizza la pagina 404 di Drupal, o 404 di Apache, o sempre la prima pagina?
Not Found
The requested URL /linuxludus/[vocab]/[cat]/[catalias] was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at localhost Port 80

mi appare questa, che dovrebbe essere la risposta 404 di apache...

Ciao Flavio,

Allora la precedente sito era Linux, quindi non credo che ci sia problemi con i file. Valerio non avrà usato zip! E contro i suoi principi...

Ma risponde Apache, non Drupal. In più c'è un /linuxludus d'avanti. Quindi avete messo Drupal in un indirizzo dal root. Quello che sta succedendo è che non sta rispondendo Drupal. Probabilmente un problema di $base_url.

Qual'è l'URL del home page che funziona? http://www.sito.it/[/codefilter_code] o http://www.sito.it/linuxludus/ ?

E l'URL che da Apache 404 viene da un link nella pagina home, vero?

Ci vediamo Lunedì sera con Valerio al LUG?

John

Più imparo, più dubito.

L'url che non funziona sono tutti, e puntano a: localhost/linuxludus/...

Si ci vediamo lunedì....

Scusa ma non ho capito bene. Mi stai dicendo che:

  1. http://localhost/linuxludus/ (home page) funziona ?
  2. http://localhost/linuxludus/[vocab]/[cat]/[catalias] non funziona ?
  3. $base_url = "http://localhost/linuxludus"; ?

Più imparo, più dubito.

Si esattamente come hai detto tu!

1. http://localhost/linuxludus/ (home page) <strong>funziona</strong>
   2. http://localhost/linuxludus/[vocab]/[cat]/[catalias] <strong>non funziona</strong>
   3. $base_url = "http://localhost/linuxludus"; <strong>si è così</strong>

secondo me è un problema di apche quindi htaccess.
lo hai modificato per caso?

Probabilmente vi siete dimenticati di abilitare mod_rewrite.
Prova veloce: http://localhost/drupal/?q=[vocab]/[cat]/[catalias] funziona?
Prova controllare:
apache2ctl -M
Vedi se c'è rewrite module. Se non:
a2enmod rewrite
Vedi anche http://drupal.org/node/134439 per ubuntu - debian? Cos'è? ;-)
Dopo - se continua non funzionare - controlla che .htaccess e come questo:

#
# Apache/PHP/Drupal settings:
#
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
  Order allow,deny
</FilesMatch>
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
  # There is no end quote below, for compatibility with Apache 1.3.
  ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.php
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On
  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600
  <FilesMatch \.php$>
    # Do not allow PHP scripts to be cached unless they explicitly send cache
    # headers themselves. Otherwise all scripts would have to overwrite the
    # headers set by mod_expires if they want another caching behavior. This may
    # fail if an error occurs early in the bootstrap process, and it may cause
    # problems if a non-Drupal PHP file is installed in a subdirectory.
    ExpiresActive Off
  </FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  # If your site can be accessed both with and without the 'www.' prefix, you
  # can use one of the following settings to redirect users to your preferred
  # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
  #
  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/... will be redirected to http://www.example.com/...)
  # adapt and uncomment the following:
  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
  #
  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment and adapt the following:
  # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
  # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line:
  # RewriteBase /drupal
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # RewriteBase /
  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
# $Id: .htaccess,v 1.90.2.4 2009/12/07 12:00:40 goba Exp $

Più imparo, più dubito.

scusami se fai quella verifica e quindi dedui che il mod rewrite è disattivato come fai ad attivarlo se sei su hosting condiviso?

Probabilmente vi siete dimenticati di abilitare mod_rewrite.
Prova veloce: http://localhost/drupal/?q=[vocab]/[cat]/[catalias] funziona?

No non funziona :)

Prova controllare:
apache2ctl -M

si c'è :)

Vedi se c'è rewrite module. Se non:
a2enmod rewrite

per sicurezza l'ho fatto, mi dice che il modulo è già caricato

Vedi anche http://drupal.org/node/134439 per ubuntu - debian? Cos'è? ;-)

questo non l'ho capito O.o cosa fare, a me pare che sia configurato come dicono loro..

Dopo - se continua non funzionare - controlla che .htaccess e come questo:

ho provato a fare un .htaccess con le tue indicazioni ma non va lo stesso..

Ciao, ad occhio direi che il problema è l'impostazione di

AllowOverride

In pratica: il file .htaccess imposta delle opzioni relative alla cartella in cui è (e alle sottocartelle) . Per farlo, Apache deve consentirglielo: lo fa tramite la direttiva AllowOverride . Se AllowOverride è impostato su "none", .htaccess non viene ascoltato e non ti funzionano le regole di rewrite (che sono scritte dentro htaccess).

In pratica, vai nella configurazione di apache per il virtualhost che stai usando. Mi pare di capire che sei su debian, è probabile che il file che ti interessa sia:

/etc/apache2/sites-available/default

Dentro, trova la cartella che ti interessa e imposta AllowOverride all

una cosa su questo stile:

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

riavvia apache e dovrebbe andare.

Mario Vercellotti (Vermario)
Freelance
http://www.verdevelop.com

Bon ora va! :)

Ho modificato il file default di apache in sites-availlable! =D

danke! ank a jhon ank se non ha fatto niente..;-)

E si, sono il "fannullone" onorario del LUG ;-)

azz wrote:
scusami se fai quella verifica e quindi dedui che il mod rewrite è disattivato come fai ad attivarlo se sei su hosting condiviso?

Perchè conosco Flavio ;-) Stanno spostando www.linuxludus.it da un hosting ad un server virtual tutto loro. E io mi diverto a guardarli lavorare...

A buon rendere Mario - ci stavo pensando ma mi hai battuto allo post - avevano Allowoverride None.

Più imparo, più dubito.

Allowoverride è un opzione di apache quindi gestibile da server?

Si http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride, ma solo come admin del server, non è normalmente disponibile su shared hosting. Se viene settato a AllowOverride None, allora non vengono letti i file .htaccess. Su shared hosting è normale che questo e AllowOverride All in modo che noi poveri clienti possiamo avere un piccolo controllo sul comportamento di Apache.

Più imparo, più dubito.