• User Attivo

    Problema interpretazione .htm come .php su server dedicato

    Ciao a tutti,
    sono appena passato su un server dedicato (linux).
    Se attivo l'interpretazione htm come php per poter
    metterci dentro gli include succede una cosa abbastanza strana.
    Ovvero le cose funzionano ma con una certa lentezza.
    Quello che probabilmente capita e' che il server attenda qualcosa (non so cosa)
    e poi appena va in timeout ti manda subito la pagina.
    Forse una qualche cosa che c'e' negli htm che non dovrebbe esserci?
    Ora l'ho disattivata per verificare che sia quello, e infatti e' tornato veloce.
    Non e' un problema di carico del server (che resta fisso allo 0% di cpu
    impegnata) ne' di banda disponibile che resta sempre vicino allo zero...

    Qualcuno ha avuto un problema simile o ha qualche ipotesi??


  • User Attivo

    Allego ulteriori info:

    per farlo interpretare come php ho aggiunto al file php.conf la seguente riga:

    AddType application/x-httpd-php .html .htm

    Tolta questa tutto torna normale.


  • Moderatore

    innanzitutto trovo strano dover modificare php.conf, ad essere modificato dovrebbe essere httpd.conf, o meglio ancora quella linea andrebbe aggiunta al file .htaccess nella root del sito web

    in ogni caso non c'è nessun motivo per operare così, anzi è sempre meglio tenere separati i file HTML dai codici PHP


  • User Attivo

    @paolino said:

    in ogni caso non c'è nessun motivo per operare così, anzi è sempre meglio tenere separati i file HTML dai codici PHP

    Ho bisogno di usare gli include senza dover rinominare le vecchie pagine htm per non perdere l'indicizzazione. Esistono altre soluzioni??
    Il problema comunque è stato risolto, non so bene come, dalla società di housing. Il fatto di impostare quel paramaetro che tu chiami php.conf è stata un'idea loro. Purtroppo non sono molto esperto di queste cose, ritieni che mi converrebbe invitarli a cambiare strada? Visto che ora tutto funziona alla perfezione, che problemi potrebbero esserci a lasciare tutto così com'è?


  • Moderatore

    il problema è che tutti i file .htm e .html finiscono per essere passati all'interprete PHP il che rallenta tutto il sito....ovviamente ci sono anche problemi di potenziali vulnerabilità legate a PHP, anche se è raro che vengano sfruttate visto che è più conveniente sfruttare vulnerabilità di SSH o del webserver

    ad ogni modo non è vietato fargli interpretare i file .htm come codice PHP e visto il caso in questione forse è la migliore soluzione, l'altra sarebbe stata di fare un 301 dai file con estensione .htm agli equivalenti con estensione .php


  • User Attivo

    @paolino said:

    ad ogni modo non è vietato fargli interpretare i file .htm come codice PHP e visto il caso in questione forse è la migliore soluzione, l'altra sarebbe stata di fare un 301 dai file con estensione .htm agli equivalenti con estensione .php

    Arghhh! Sono 2000 e passa pagine!

    Grazie comunque per le preziose INFO, informerò chi di dovere, ciao!


  • User

    @mypersonaltrainer said:

    Arghhh! Sono 2000 e passa pagine!
    ...

    per questo hanno introdotto le espressioni regolari.
    Io avrei seguito questa strada.
    ciao
    sergio


  • User Attivo

    Quindi se non ho capito male (è la prima volta che sento il termine "espressioni regolari") intendevi utilizzare la funzione "trova e sostituisci"?
    Poi avrei comunque dovuto specificare l'url della nuova pagina, un lavoretto da 2 o tre giorni almeno...
    E poi cos'ha questa strada che non va, considerando che sul server, ad esclusione di quelle che dovevano essere interpretate come php, non c'è nessun'altra pagina .htm ?


  • User

    a mio avviso la soluzione più pulita è cambiare la estensione di tutti i file .html e . htm che necessitano di passare attraverso l'interprete php con estensione .php ed inserirli in una directory apposita.
    Poi fai un redirect 301 sul file .htaccess o direttamente su httpd.conf (se ne hai l'accesso) per conservare l'indicizzazione sui motori.
    Tanto per darti un esempio se hai mod_rewrite abilitato sul tuo server puoi mettere in .htaccess qualcosa del tipo

                      RewriteEngine on 
                      RewriteBase / 
                      RewriteRule (.*).htm$ /$1.php 
    

    ma hai comunque la possibilità (appunto con le espressioni regolari) di essere selettivo e fare il redirect secondo specifici criteri per filtrare solo i file che sono di tuo interesse con un unico comando.
    Per quanto riguarda a cosa sono le espressioni regolari dai una prima occhiata a wikipedia http://it.wikipedia.org/wiki/Espressione_regolare e fai una piccola ricerca su google.

    ciao
    sergio


  • Moderatore

    @mypersonaltrainer said:

    Quindi se non ho capito male (è la prima volta che sento il termine "espressioni regolari") intendevi utilizzare la funzione "trova e sostituisci"?
    Poi avrei comunque dovuto specificare l'url della nuova pagina, un lavoretto da 2 o tre giorni almeno...
    E poi cos'ha questa strada che non va, considerando che sul server, ad esclusione di quelle che dovevano essere interpretate come php, non c'è nessun'altra pagina .htm ?

    in questo caso non vale la pena cambiare le estensioni dei file.....

    il punto è che in linea teorica e volendo fare i precisi bisogna usare le estensioni adatte....nel tuo caso dovresti creare una regola in .httpd che mappa i file .html nei corrispondenti file .php, ovviamente non devi creare una regola per ogni file, bensì usando le espressioni regolari puoi creare una regola unica

    il problema di questa soluzione è che devi creare 2000 e passa file .php e a che pro? praticamente sarebbe un lavoro inutile, visto che tutti i file .html che hai contengono script .php, tanto vale dire al server di passare i file .html tramite il parser PHP

    una cosa però non mi è chiara....visto che usi PHP perchè hai creato 2000 file? non era meglio creare un solo script PHP e mettere i contenuti in un DB dal quale poi lo script li avrebbe recuperati per costruire le pagine al volo?


  • User Attivo

    @paolino said:

    una cosa però non mi è chiara....visto che usi PHP perchè hai creato 2000 file? non era meglio creare un solo script PHP e mettere i contenuti in un DB dal quale poi lo script li avrebbe recuperati per costruire le pagine al volo?

    Tieni presente che la prima pagina del sito è stata fatta con frontpage ed una bella tabellina, poi sono arrivati i fogli di stile, poi i div, poi l'xhtml, e così via. Insomma sono un po' auto e un po' forum-aiuto-didatta!