Web Performance Optimization per Wordpress

Posted gennaio 18th, 2010 in Apache 2.2, Blog e Social, CSS, Google, Programmazione, Seo, WebServer by Andrea Pernici

Ho appena terminato di scrivere una pagina con qualche trucchetto per ottimizzare Wordpress in modo da migliorarne la velocità.

Lo trovate qui: http://www.andreapernici.com/wordpress/ottimizzare-wordpress-per-renderlo-piu-veloce/

Web Performance Optimization: alcune considerazioni sul Convegno Gt

Posted dicembre 7th, 2009 in Blog e Social, Google, Programmazione, Seo, WebServer by Andrea Pernici

Al risveglio dal dopo Convegno Gt (strepitoso quest’anno) pieno di soddisfazione per la grande riuscita e per la grande qualità degli interventi, ma con qualche piccola considerazione su uno dei migliori e più utili interventi della prima giornata. Il preparatissimo Alessandro Martin ha messo in luce alcuni fattori molto attuali, viste le novità di google, sui tempi di caricamento delle pagine web e i modi per risolverli in modo veloce e più o meno semi-automatico, consigliando anche degli ottimi strumenti disponibili in rete.

Molti dei suoi concetti sono poi stati ripresi in un intervento di Tiziano Fogliata nella seconda giornata, che più nello specifico li ha applicati all’effettivo utilizzo nell’ottimizzazione di Wordpress.
Continue Reading »

Oggi vi presento Michele Mazzucco

Posted giugno 23rd, 2009 in Programmazione, WebServer by Andrea Pernici

Circa un mesetto fa ho rivisto dopo  molto tempo un mio caro amico di ritorno dalla sua avventura in Uk da PHD.

Beh ! Un discreto curriculum il suo e tre anni di grossi progetti e pubblicazioni in quel di Newcastle relativi a QoS (se volete farvi un’idea di cosa si tratta visitate questo link http://www.cs.ncl.ac.uk/people/Michele.Mazzucco/publications).

Abbiamo fatto due chiacchiere, una mangiata e abbiamo parlato di presente, passato e futuro.

Ora si trasferirà a Cipro per iniziare una nuova e grande esperienza inerente a Grid Computing (http://en.wikipedia.org/wiki/Grid_computing) e più nello specifico per chiarirsi le idee c’è questo paper http://grid.ucy.ac.cy/Papers/minerSoft.ccgrid09.pdf.

Se il settore è di vostro interesse potete seguire questo sito che è sempre molto aggiornato sull’argomento:

http://www.infoq.com/articles/virtual-service-grids-intel

Intanto io mi terrò aggiornato sul suo lavoro perché mi sembra davvero interessante e colgo l’occasione per presentarvelo…è Michele Mazzucco.

Come fare Redirect 301 di una pagina web

Posted gennaio 10th, 2009 in Seo, WebServer by Andrea Pernici

Avete appena ricreato alcune pagine del vostro sito. Le vecchie hanno un buon posizionamento sui motori di ricerca e non volete perderlo. Come potete fare per inoltrare il traffico delle vecchie pagine alle nuove senza perdere il vostro posizionamento ? Potete farlo con il Redirect 301.

Che cosa è un redirect 301 ?

Il redirect 301 è il miglior metodo che abbiamo per mantenere il ranking sui motori quando reindirizziamo una pagina del nostro sito.

Il codice “301″ viene infatti interpretato come “moved permanently”. Dopo il codice infatti va poi specificata la vecchia pagina seguita da uno spazio e poi la nuovo pagina.

Per implementarlo basta aggiungere questo codice all’interno del file .htaccess (oppure direttamente nel virtualhost)

Cosa è il file .htaccess ?

Quando un visitatore/spider richiede una pagina web, il web server controlla la presenza del file .htaccess.

Il file .htaccess contiene istruzioni specifiche per alcuni tipi di richieste, incluse sicurezza, redirect e gestione errori.

Come implementare un redirect 301

  1. Per creare un file .htaccess aprite un qualsiasi editor di testo, create un nuovo file e salvatelo come .htaccess (senza estensioni). Nel caso di windows potreste avere problemi a salvare il file iniziando con il punto (.) quindi in questo caso chiamatelo htaccess.txt e poi una volta inviato via FTP sul server rinominatelo.
  2. Se avete già un file .htaccess sul vostro server, scaricatelo ed editatelo.
  3. Inserite il seguente codice nel vostro file .htaccess:redirect 301 /vecchia/vecchia.html http://www.tuodominio.com/nuovapagina.html
  4. Se il vostro file .htaccess contiene già delle righe di codice saltate una linea e scrivete l’istruzione lì senza cancellare quelle già presenti.
  5. Salvate il file .htaccess
  6. Inviate il file nella cartella root del vostro server.
  7. Testate il tutto scrivendo nel browser la vecchia pagina. Dovreste essere immediatamente inoltrati alla nuova.

Note: E’ importantissimo non aggiungere “http://www” alla prima parte dell’istruzione, ma mettere solamente il percorso a partire dal livello più alto del vostro sito.

Assicuratevi inoltre che ci sia lo spazioe tra questi due elementi:

redirect 301 (l’istruzione che indica che la pagina è spostata per sempre)

/vecchia/vecchia.html (il percorso e nome del file da spostare)

http://www.tuodominio.com/nuovapagina.html (il nuovo percorso e nome del file)

Quando gli spider dei motori di ricerca passeranno in esame il tuo sito seguiranno le regole che hai inserito nel file .htaccess.

In realtà gli spider non leggono il file .htaccess, ma riconoscono la risposta dal server come valida.

Durante il successivo aggiornamento dei motori il vecchio file verrà eliminato e rimpiazzato con il nuovo. A volte può capitare di vedere alternanze tra i file e alcune fluttuazioni che possono durare dalle 6 alle 8 settimane in riferimento alle linee guida di Google.

Altri metodi per implementare il redirect 301

  1. Per reindirizzare tutti i file di un tuo dominio puoi usare queste regole nel tuo file
    .htaccess se sei su server linux/unix:redirectMatch 301 ^(.*)$ http://www.dominio.com

    redirectMatch permanent ^(.*)$ http://www.dominio.com

    Puoi anche usare una regola delle seguenti nel .htaccess file:

    redirect 301 /index.html http://www.dominio.com/index.html

    redirect permanent /index.html http://www.dominio.com/index.html

    redirectpermanent /index.html http://www.dominio.com/index.html

    Questo farà il redirect della pagina “index.html” verso un altro dominio usando un
    redirect 301-Moved permanently.

  2. Se hai bisogno di fare redirect da http://miosito.com a
    http://www.miosito.com e hai il mod_rewrite abilitato sul tuo server puoi inserire le seguenti regole nel tuo file .htaccess:Options +FollowSymLinks

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^miosito.com

    RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=permanent,L]

    oppure questo:

    Options +FollowSymLinks

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^miosito.com$ [NC]

    RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=301,L]

  3. Se vuoi reindirizzare le tue pagine .html verso pagine .php e hai il mod_rewrite abilitato sul tuo server puoi inserire queste regole nel tuo file .htaccess:
    RewriteEngine onRewriteBase /RewriteRule (.*).html$ /$1.php
  4. Se vuoi reindirizzare le tue pagine .html o .htm verso delle pagine .shtml perché usi Server Side Includes (SSI) aggiungi queste regole al tuo .htaccess:AddType text/html .shtmlAddHandler server-parsed .shtml .html .htmOptions Indexes FollowSymLinks Includes

    DirectoryIndex index.shtml index.html

Attivare php come modulo CGI su un virtualhost (Abilitare phpSuExec Apache)

Posted dicembre 30th, 2008 in WebServer by Andrea Pernici

Dato che spesso con molti Cms opensource questa caratteristica è consigliata (se non obbligatoria, anche se non esplicitamente richiesta) vi mostro in pochi passi come abilitare phpSuExec sul vostro virtualhost nel caso abbiate accesso alla Shell del vostro server Linux.

Questa piccola guida è riferita ad una Debian Linux e Apache Web Server.

ATTENZIONE – PREMESSA: Se sul server è installato php4 sostituire php4 a php5.

Individuare il file di configurazione del Virtualhost per il quale si vuole effettuare la modifica. (Solitamente si trova in /etc/apache2/sites-available/ ma ad ognuno il suo.)

Una volta trovato il file del Virtualhost che vi interessa aggiungere a quest’ultimo le seguenti direttive:
SuexecUserGroup "#1001" "#1002"
sostituendo i corretti valori di Uid e Gid (in forma numerica) con il quale si vuol fare girare gli script PHP (generalmente questi coincidono con Uid e Gid dell’utente FTP).

Nota:
Si possono ricavare gli Uid e Gid numerici di un utente di cui si conosce il nome-utente di login con il
comando:
id nome-utente
uid=1001(nome-utente) gid=1002(nome-utente) groups=1000(nome-utente), 20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev)

Fine Nota

Una volta ricavato l’uid e inserita nel virtualhost la direttiva con gli id corretti, aggiungere allo stesso file le seguenti righe:
AddHandler php-script .php
Action php-script /cgi-bin/php5

e verificare che nel Virtualhost sia presente la direttiva “ScriptAlias” simile a quanto riportato sotto:
ScriptAlias /cgi-bin/ /home/sito-web/cgi-bin/
<Directory /home/sito-web/cgi-bin>
allow from all
</Directory>

Successivamente è necessario copiare dentro la directory cgi-bin del Virtualhost i file php5 ed il link simbolico php -> php5 utilizzando il seguente comando:
cp -a /usr/lib/cgi-bin/php* /home/sito-web/cgi-bin/

Impostare i permessi sui file copiati dentro la cgi-bin dell’utente in modo che l’utente ed il gruppo specificato in “SuexecUserGroup” ne siano i proprietari:
chown -R 1001:1002 /home/sito-web/cgi-bin/php*

Verificare la configurazione di Apache per assicurarsi che le modifiche effettuate siano corrette usando il comando:

apache2ctl configtest
che deve restituire “Syntax OK”

Riavviare Apache con il seguente comando:
/etc/init.d/apache2 restart

Verificare il risultato tramite questo script di test:
<?php
// Test per verificare se PHP sta girando come modulo CGI
echo "Utente con il quale sta girando lo script PHP ed il processo di Apache:";
echo "<br><br>";
echo "Risultato whoami:";
echo "<br>";
echo exec('whoami');
echo "<br><br>";
echo "Risulato id:";
echo "<br>";
echo exec('id');
echo "<br><br>";
echo "Verificare le Server API per determinare in che modalità sta girando PHP";
// Se PHP gira come CGI sarà riportato: "Server API GI/FastCGI"
// Altrimenti il risultato sarà: "Server API Apache 2.0 Handler"
echo "<br><br>";
phpinfo();
?>

e il gioco è fatto :)

Pagina 1 di 212