duplicare sito  Top

  • Buone Feste a tutti,
    nell'implementare un nuovo sito vorrei partire dal lavoro già fatto. Ho cerceto così di duplicare un sito esistente per poi cambiargli nome e caratteristiche.
    Il procedimento che ho seguito è.
    - creare nuovo db con un nuovo nome e importare tabelle del vecchio
    - copiare in un'altra dir (con diverso indirizzamento) tutti i file zikula
    - modificare il nome del db nel file config.php nel nuovo sito
    Ebbene, in locale funziona, sul server virtuale se provo ad accedere a molte pagine di amministrazzione com ad esempio "impostazioni" vengono pagine bianche. Inoltre sia in locale che sul server non visualizza bene la "è" e forse altri caratteri speciali, mette il ?.
    Qualcuno ha provato a fare la stessa coosa e sa dirmi se bisogna modificare qualcosa d'altro?

    Grazie mille e Buon Anno

    Luca
  • La pagina bianca è uno degli errori più subdoli che ci siano triste perchè diventa davvero difficile capirne l'origine... nella maggior parte dei casi è il server che pensando di fare un favore al webmaster (perchè una pagina bianca è ritenuta più elegante e più sicura di mostrare all'utente l'errore) nasconde gli errori, la soluzione ultima in questi casi è quindi quella di forzare il server a mostrare gli errori...

    detto questo, hai controllato i permessi delle cartelle (su tutte pnTemp e quelle li contenute)? la prima cosa che mi viene in mente è che in locale tu abbia i permessi su tutto e sul server no...

    per quanto riguarda i caratteri invece potrebbe essere che il nuovo database utilizzi un encoding diverso da quello vecchio... prova a vedere che encoding usavi e formare il nuovo database ad usare quello (dovrai probabilmente ri-copiarlo perchè la conversione non credo funzioni)

    Ciao icon_wink
  • Diagnosi corretta (complimenti) erano i diritti di scrittura su Pntemp.
    Le "è" invece mi sa che sia difficile correggerle nell'importazione, in locale ho provato di tutto...
    La cosa + strana è che il sito è stato upgradato alla 1.2 (che è solo in inglese) ma continuo ad avere parecchie cose in italiano, in particolare "chi è on line" coon la "è" sbagliata... Questo mi suggerisce che sia la versione 1.2 a intepretare i caratteri in maniera diversa oppure "chi è on-line" è scritto in database. Peraltro a che modulo appartiene questa funzionalità?

    Grazie ancora
  • La seconda che ho detto: era semplicemente il titolo di una voce di menu di un blocco... quindi in DB.

    Ciao
  • Ma quindi che encoding usavi per il vecchio database e che encoding usi per quello nuovo?

    Potresti provare a creare il nuovo database con questo comando:

    Codice


    CREATE DATABASE `nomedb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci

    e a copiarvi dentro quello precedente.
  • Grazie, dovrei averci provato, usando phpmyadmin, devo verificare se ho fatto proprio così...poi faccio sapere

    Buon anno,

    Luca
  • L'ho rifatto ma la visualizzazione rimane errata. Ho verificato però i contenuti delle tabelle per capire cosa c'è in db e i caratteri sembrano corretti, quindi probabilmente il problema è di visualizzazione, sul db i caratteri accentati ci sono.

    Ciao a tutti
  • Allora il problema dovrebbe essere una discordanza tra l'encoding del database e l'encodig della pagina html. Se usi Firefox prova a cambiare l'encoding facendo Visualizza -> Codifica Caratteri, quella giusta dovrebbe essere o Occidentale ISO-8859-15 o Unicode UTF-8.

    Se una di queste ha funzionato allora è sufficiente modifica il charset delle pagine. Nella versione 1.1 e precedenti il charset era impostato nella traduzione, nella versione 1.2 non ricordo (e putroppo non ho un server su questo computer quindi non posso controllare). Una soluzione un pò "sporca" potrebbe essere quella di impostare il charset direttamente in master.htm e home.htm, sostituendo quello giusto in questa riga:

    Codice


    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />


    Ciao,
    Giacomo
  • Grazie Giacomo,
    dunque, modificando il charset ( da UTF-8 a ISO...) il problema si risolve. R-8.
    Non importa cmq, se scoprirò qualcosa lo scriverò...QWSWC,,POKOKJNMPMOò,èPLP
  • Grazie Giacomo,
    dunque, modificando il charset ( da UTF-8 a ISO...) il problema si risolve. Rimane da capire perchè nel sito che ho upgrato (e di cui gli altri sono copie identiche a parte l'importazione) il problema non c'è; inoltre il charset è UTF-8 (verificato sull'html generato e sulle impostazione che assume Firefox). Aggiungo che il problema si risolve anche se riscrivo i pezzi con i caratteri speciali...
    Non importa cmq, sei stato già abbastanza gentile. Cercherò di scoprire dov'è l'inghippo.

    ciao Luca

    PS il messaggio precedente nonso come cancellarlo
  • Aggiornamento:
    sul sito senza problemi: se scrivo "à", sul db viene scritto "à"
    sulla copia: se scrivo "à", sul db viene scritto "A con la dieresi sopra", che poi sarà decodificato correttamente in visualizzazione
    c'è qualche impostazione di Zikula da qualche parte... (non i Permalinks settings, anche lì i caratteri speciali inseriti vengono sostituiti da "?").

    Ciao ciao
  • Sono finalmente rientrato in possesso del mio pc icon_biggrin questa sera approfondisco l'argomento facendo alcune prove e ti faccio sapere icon_wink
  • Forse questa volta ci siamo icon_biggrin sono riuscito a riprodurre il problema e apparentemente anche a risolverlo... eseguendo lo stesso tuo procedimento mi son trovato in questa situazione:
    database originale: collation del database utf8_general_ci e collation delle tabelle utf8_general_ci
    database copiato: collation del database latin1 e collation delle tabelle utf8_general_ci
    perchè quanto pare (almeno nel mio caso) phpmyadmin crea il nuovo database come latin1 (sembra che zikula non c'entri nulla con questo problema)

    quindi alla fine ho risolto creando il nuovo database con:

    Codice


    CREATE DATABASE `nomedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci


    alternativamente puoi modificare il database che già hai, con phpmyadmin vai in operations (del database, non di una tabella) e selezioni
    Collation utf8_general_ci
    a questo punto però tutte le lettere accentate che hai inserito sulla copia saranno sbagliate e dovrai risalvarle

    Ciao,
    Giacomo
  • Grazie, problema risolto. Per errore ho messo utf_unicode_ci, funziona lo stesso, sai cosa cambia?
    Come si fa a sapere da phpmyadmin qual'è la collation corrente? Sulle tabelle è specificato a fianco...

    A presto,

    Luca
  • Non so cosa cambi nello specifico, ma le collation definiscono delle regole per comparare due stringhe (ad esempio _ci significa case insensitive, cioè minuscole e maiuscole son considerate uguali)
    Per vedere la collation del database basta andare nella schermata principale dove ci son tutte le tabelle... l'ultima riga (quella di riepilogo) contiene la collation del database. Ad esempio io ho il database latin1 e le tabelle utf8, tutte le tabelle hanno scritto a fianco utf8_general_ci ma nell'ultima riga c'è scritto:
    56 table(s) Sum 22,316 MyISAM latin1_swedish_ci 6.1 MiB 0 B
  • 5 utenti anonimi

Questa lista è basata sugli utenti connessi negli ultimi 40 minuti.