• User

    Passaggio da Apache a Nginx: alcuni problemi

    Salve gente,

    per alcuni motivi ho dovuto far sostituire Apache con Nginx sul mio server ed ora mi ritrovo con dei piccoli problemi: in pratica è cambiata la dimensione delle immagini delle gallerie su un sito wordpress; inoltre è cambiata anche la visualizzazione di due tipi di thumbnail. Per caso sapete dirmi come questa operazione abbia influito sulla visualizzazione delle immagini? Sono a conoscenza del fatto che con Nginx non si utilizza più il file .htaccess ma non so come quest'ultimo influiva sulle immagini (sempre che sia questo il problema).

    Grazie!


  • User Attivo

    magari senza .htacesss non funzionano vari url che wordpress usa per il resize delle immagini ..


  • User

    Grazie coolnetwork, secondo te come potrei farlo a capire?


  • User Attivo

    prova ad analizzare il codice html della pagina e vedi come vengono richiamate le img


  • User

    Ok posso farlo benissimamente ma non so come capire se qualcosa dipende dall'htaccess, per esempio per una delle thumbnail che ora non si vedono più bene questo è il codice:

    <h3><?php the_title(); ?></h3>
                        <h4><?php echo the_subtitle();//get_post_meta($post->ID, '_post_subtitle', true); ?></h4>
                        
                        <?php if(has_post_thumbnail()): 
                            $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'theme-gallery-photo');
                        ?>
                        <div class="mask">
                            <a title="<?php the_title_attribute(); ?>" href="<?php echo $large_image_url[0]; ?>" rel="example_group">
                                <span class="middle-frame-mask"></span>
                                <?php the_post_thumbnail('thumbnail', array('class' => 'thumbtu')); ?>
                            </a>    
                        </div>
    

  • User Attivo

    ok ora confronta lo stesso pezzo dal source html (non php) e vedi i risultati delle variabili per capire qualche passa il dato errato


  • Super User

    @coolnetwork said:

    magari senza .htacesss non funzionano vari url che wordpress usa per il resize delle immagini ..

    Nginx non usa .htaccess, i rewrite rules vanno inseriti nel vhost convertendo .htaccess di apache nella sintassi utilizzata da nginx...


  • User

    Grazie francois007 ma sapevo già di questo procedimento, il problema è che io non capisco quale sia la parte di codice che influisce sulla visualizzazione delle immagini. Ecco il mio vecchio htaccess:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php 
    </IfModule>
    
    # END WordPress
    

  • User Attivo

    ma prima di migrare a nginx non hai fatto tutti i test per vedere/testare la compatibilità?


  • User

    sinceramente non sapevo che htaccess influisse anche su queste cose 😞


  • Super User

    @coolnetwork said:

    ma prima di migrare a nginx non hai fatto tutti i test per vedere/testare la compatibilità?

    Mi sa che non mi sono spiegato in precedenza... nginx non legge .htaccess, ma va convertito nella sintassi che lui utilizza per impostare i permessi di riscrittura. Secondo l'.htaccess di apache che vedo, il vhost deve essere impostato in questo modo:

    .htaccess convertito:

    #ignored: "-" thing used or unknown variable in regex/rew
    if (!-f $request_filename){
    set $rule_1 1$rule_1;
    }
    if (!-d $request_filename){
    set $rule_1 2$rule_1;
    }
    if ($rule_1 = "21"){
    rewrite /. /index.php last;
    }

    Questo rewrite rules va inserito nel file /etc/nginx/sites-available/nomesito.tld.vhost e va riavviato il demone... Solo così il tuo sito ritornerà a funzionare come con apache.


  • User

    Grazie ancora francois007 per la tua disponibilità. Ho provato a far inserire quel codice ma non è cambiato nulla, inoltre il plugin Yoast Wordpress SEO aveva riconosciuto il passaggio a nginx e con un messaggio mi diceva di inserire questo codice per la sitemap:

    rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
    rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
    

    Mi chiedevo: non è che va in conflitto con quello indicato da te?

    Questa mattina ho fatto svariate prove facendomi riattivare anche Apache ma la situazione rimaneva la stessa. In pratica ho capito e sono sicuro di questo: la gestione delle thumbnail prima veniva fatta da alcune funzioni del tema ora invece vengono gestite all'interno di Wordpress da Impostazioni -> Media. Quindi in pratica è saltato l'utilizzo di quelle funzioni del tema. Ora la domanda è: come fare a fargli ribeccare le funzioni del tema?


  • Super User

    Guarda non so in che mani ti sei messo, ma ti assicuro che non ho mai avuto alcun problema con nginx, lo utilizzo sui miei server da un pezzo perché ritengo che apache sia ormai vecchio, obsoleto e avido di risorse.
    Il punto di domanda è il seguente, mentre in apache il mod rewrite va attivato con un comando da terminale, con nginx è già attivo ma naturalmente cambia la sintassi e il modus operandi del webserver.
    Potresti fornirmi gli .hcaccess del plugin yoast e quello della root del tuo sito?


  • User

    L' htaccess della root è quello che ho postato in precedenza mentre quelli del plugin Yoast non so dove recuperarli, ho dato un'occhiata alla cartella del plugin e non li trovo (in realtà non ero neanche a conoscenza dell'esistenza di altri htaccess), forse sono sotto qualche altro nome?


  • Super User

    Perdona la mia domanda, hai accesso root al server??? È un debian o redhat derivato?
    Forniscimi il tuo nomedominio.tld.vhost all'interno della cartella /etc/nginx/sites-available e ti modifico al volo i premessi di riscrittura del sito che ti crea problemi.


  • User

    Ok francois ti scrivo in privato.


  • Super User

    Il problema, alla luce di quanto ci siamo detti in privata sede, è in una errata configurazione del php nella sua interezza, pertanto nginx nel resize delle immagini non carica il php-gd e php-imagick.
    Installare in un server di produzione nginx non è un gioco da ragazzi e richiede la massima attenzione nei settaggi successivi all'installazione dei pacchetti "minimi", pena una cattiva gestione dei vari cms!
    Saluti.


  • User Attivo

    @francois007 said:

    Il problema, alla luce di quanto ci siamo detti in privata sede, è in una errata configurazione del php nella sua interezza, pertanto nginx nel resize delle immagini non carica il php-gd e php-imagick.
    Installare in un server di produzione nginx non è un gioco da ragazzi e richiede la massima attenzione nei settaggi successivi all'installazione dei pacchetti "minimi", pena una cattiva gestione dei vari cms!
    Saluti.

    quoto in pieno .. per quello avevo chiesto se erano stati eseguiti tutti i dovuti test prima di mettere in produzione una modifica del genere!


  • Super User

    Questo non posso saperlo se non riesco a verificare di persona come è stato settato il server...


  • Super User

    Dopo oltre due settimane non si hanno notizie dell'utente che ha aperto il post!!!
    Nello spirito di un forum un utente che chiede supporto, se riesce a risolvere in un modo o nell'altro, comunica alla community la soluzione al problema descrivendo in dettaglio i vari passaggi che hanno portato alla risoluzione della problematica...

    Considerate questo messaggio come uno sfogo, ma non tollero certi atteggiamenti... in quasi 8 anni sono rimasto sul vago qua dentro per ovvi motivi... e soprattutto per certi utenti che arrivano, ti postano un problema, forse gli dai una soluzione e non chiudono il thread come si conviene all'interno di uno spazio che potrebbe dare delle risposte alle problematiche di altri utenti.