5 buoni motivi per non far scadere un dominio internet, ma anzi registrarne uno.

killer-domain-nameUna delle cose più stupide a cui si assiste quotidianamente in rete è quello di lasciar scadere nomi a dominio che utilizziamo quotidianamente e sono una ricca risorsa per la nostra attività, o semplicemente sono importanti per il nome che hanno : pensate sex.com venduto a 13 milioni di dollari, o anche semplicemente il vostro nomecognome.it o .com

Vediamo alcuni dei validi motivi per non lasciare scadere il vostro dominio internet e rinnovarlo in tempo entro la data di scadenza.

  • Continuità dei servizi : quando un dominio scade, normalmente i servizi vengono sospesi. Ciò significa che il sito web, mail, e tutti gli altri servizi legati al dominio non saranno usabili. Inoltre al rinnovo del dominio potrebbe essere necessario la riconfigurazione di tutte le impostazioni con conseguente spreco di tempo e denaro.
  • Nessun costo aggiuntivo verso l’hosting provider : Rinnovare il dominio dopo la data di scadenza significa a volte dover contribuire ad un contributo di riattivazione che oscilla tra i 5 e i 25 euro. Ciò giustifica l’intervento umano dell’operatore che dovrà in questo caso provvedere manualmente alla riattivazione del dominio. Questa prassi non è in voga in tutti i fornitori hosting ma rimane comunque sufficientemente diffusa e del tutto lecita.
  • Nessun rischio di perdere il dominio : Se lasciate scadere il dominio, avrete ancora alcuni mesi per rinnovarlo dopodichè verrà reso viagra reviews disponibile sul mercato anche a nuovi acquirenti. E’ quanto successo alla nostrana Mediaset, che non rinnovando il dominio mediaset.com ha permesso ad un “pincopallino qualunque” statunitense di nome Didier Madiba di comprarlo ad una decina di dollari.  La legge è chiara : il primo che arriva è il primo ad essere servito. Non conta se sei Mediaset, Berlusconi o Dio in persona, se ti comprano il dominio, o lo ricompri alle condizioni che detta l’attuale proprietario (ammesso sempre che sia intenzionato a venderlo), o lo perdi per sempre. Per i domini .it è un po’ diverso ed è possibile comunque aprire un contenzioso e fare ricorso al NIC, ma significa sempre e comunque mobilitare legali e burocrazia, e spesso arrivare di fronte ad un giudice, con i tempi biblici e tutti gli effetti collaterali (anche pecuniari) che essi comportano.
  • Nessuna perdita di dati : Allo scadere della clausola contrattuale (normalmente 2 o 3 mesi dalla scadenza) l’hosting provider si riserva il diritto (esercitato praticamente sempre) di cancellare in modo irrecuperabile i dati dell’utente. Addio sito web, database, email e quant’altro.

Un consiglio spassionato è quello di evitare di sospendere, lasciar scadere i domini con l’intenzione di registrarlo poi di nuovo una volta scaduto.
Esistono società apposite come SEDO che non fanno altro che comprare domini scaduti per poi rivenderli all’asta. Non lasciate la possibilità di perdere tutto per una manciata di euro l’anno.

Tutelare un nome a dominio che reputate importante o che possa servirvi in un futuro (ad esempio nomecognome.it) è fondamentale nell’era digitale e il rinnovo del dominio o l’acquisto dello stesso non va mai considerata una spesa ma bensì un investimento.

Symlink attack su Webserver apache. Dallattacco alla difesa. Un esempio pratico e la configurazione corretta.

Attacco-Informatico-ImcUn attacco di tipo symlink (collegamento simbolico n.d.t.) non è qualcosa di sicuramente nuovo in ambito unix-like. Curioso è invece vedere come online ed anche ultimamente ci siano sempre più forum dedicati che parlino di come arginare questa piaga : la gioia di tutti gli attacker odierni.

Se prendiamo questa due pagine ad esempio http://whmscripts.net/misc/2013/apache-symlink-security-issue-fixpatch/ , http://www.linuxkatta.com/cPanelFix/solutions-for-handling-symlink-attacks/ , vediamo come sia attualissimo il problema e che addirittura si millantano patch da parte di due colossi operanti nel settore hosting come Rack911 e cPanel.

Ciò ha del ridicolo, ed è praticamente assurdo in quanto già di default Apache prevede un elegante modo per risolvere il problema , ovvero disabilitare l’opzione FollowSymLinks e sostituirla con SymLinksIfOwnerMatch

La prima opzione permette di disabilitare completamente Apache dall’attraversare link simbolici, la seconda permette di sostituire la prima in maniera intelligente, ovvero “se e solo se” il proprietario del file target a cui punterà il link simbolico sia lo stesso del link.

Ciò permetterà di continuare ad usare quelle feature di Apache come l’url rewriting, (tramite mod_rewrite).

In questo modo e con una corretta separazione dei privilegi a livello di virtualhosting utilizzando Apache in modalità FastCGI o tramite PHP-FPM come abbiamo accennato in QUESTO PRECEDENTE ARTICOLO, si riuscirà a confinare forzatamente l’attaccante all’interno della propria home, ed evitare che scorrazzi indisturbato nel server o nelle home degli altri utenti.

Una delle preoccupazioni da adottare al momento di configurare Apache è anche quella di evitare che l’attaccante con un file .htaccess ad-hoc da lui caricato possa riabilitare l’opzione FollowSymLinks e che possa vanificare in pochi secondi i nostri sforzi.

Nel video alla fine di questo breve articolo troverete la dimostrazione pratica dell’attacco senza censura alcuna e una guida passo passo alla risoluzione del problema mostrandovi la configurazione corretta di alcuni file apache per un vhost che abbiamo usato per il nostro esperimento.

Buon proseguimento.

To all english readers :

Simply you can correctly configure Apache to limit this type of attack.

The steps you take are 3:

  1. Eliminate the option FollowSimLinks
  2. Add the option SymLinksIfOwnerMatch
  3. Remove the possibility of reactivating FollowSimLinks through a htaccess file.

Edit the configuration file for the vhost and set the following configuration:

Options-Indexes-FollowSymLinks + ExecCGI + SymLinksIfOwnerMatch
AllowOverride All Options = ExecCGI, SymLinksIfOwnerMatch, Indexes

In this way, no attacker will be able to do this kind of attack.

Testare siti web e app su Ipad, Iphone e iOS con iOS Simulator sotto Microsoft Windows 7.

iPhone-SimulatorUno dei vizi più brutti che un web designer possa avere è quello di pensare anche solo minimamente che testare un sito web per iPad o iPhone (ovvero iOS) su un emulatore online possa in qualche modo dare un anteprima valida su quello che sarà poi sui veri dispositivi fisici di casa Apple.

Purtroppo quello che ho appena affermato è una prassi derivata dall’impossibilità di testare siti su questi dispositivi in mancanza di avere sottomano un iPhone o un iPad, per cui alcuni servizi per l’emulazione di browser mobile Apple sono a dir poco popolari :

Eccone un breve elenco :

 

e molti altri ancora.

Tutti quelli citati, ovvero tutti quelli che si limitano a simulare browser su iPhone e iPad sono lettaralmente INUTILI, in quanto se è vero che anche nel 98% dei casi possano dare risultati ed anteprime piuttosto corrette e verosimili, è anche vero che in alcuni casi (fosse anche solo 1 su un milione) il risultato sarà completamente diverso da quello che troveremo su un dispositivo fisico di casa Apple.

Questo succede perchè la filosofia di questi emulatori è quella di creare un iframe con dimensioni uguali a quelle dei dispositivi Apple, ma il rendering delle pagine verrà comunque fatto dall’engine del nostro browser

Oltretutto va anche detto che pur avendo questi dispositivi display molto “piccoli”, hanno risoluzioni elevate.

Con il passare delle generazioni, tra iPhone e iPad, gli schermi si sono allungati e hanno modificato le loro risoluzioni. Questo ha portato ad una sorta di differenziazione della grafica delle applicazioni. Tutte cose che xanax overdose ogni sviluppatore deve avere sempre molto a mente.

A differenza di dispositivi che usano Android, in cui si assiste in una vera e propria babele di risoluzioni schermi, fortunatamente i dispositivi che usano iOS si possono riassumere in un piccolo schema.

risoluzione-iDevice

 

Come essere dunque sicuri che il risultato che avremo da questi simulatori sia identico a quello che avremo su iOS senza prima testarlo su iOS ?

La risposta la fornisce ufficialmente Apple : iOS Simulator 

Un simulatore di iOS ufficialmente sviluppato e rilasciato da Apple che dia gli stessi identici risultati di un iPhone o un iPad.

L’unica strada realmente percorribile per avere risultati e anteprime fedeli a quelle che gli utenti vedranno su iPhone e iPad.

Va però detto che per poter utilizzare questo simulatore, va installato Xcode dall’Apple Store (gratuitamente), che però per ovvi motivi commerciali (ma anche tecnici) è disponibile solo su Apple Mac OS X.

Ciò potrebbe precludere la possibilità per uno sviluppatore che utilizzi altri Sistemi operativi (e sprovvisto di dispositivi fisici Apple) di utilizzare questa opportunità offerta da Apple per testare ufficialmente App e siti web.

Ciò può essere “facilmente” bypassato installando ad esempio Mac OS X su un software di virtualizzazione come Virtual Box o meglio VMWare.

Per l’installazione vi rimando a questo articolo.

Di seguito intanto potrete trovare un video esplicativo che metta in mostra la differenza profonda tra la simulazione online di siti Web con “emulatori di iPhone e iPad” e la simulazione reale di tramite iOS Simulator, portando come esempio un bug che si è presentato in un caso reale in un sito in sviluppo.

 

La psicologia del colore nella comunicazione. Un’interessante infografica.

Ogni creativo che si rispetti dovrebbe conoscere almeno le basi della piscologia del colore. Ecco una s808d electronic cigarette utilissima e ben fatta infografica che spiega in modo molto divertente la Psicologia del Colore.

infografica-psicologia-colore

Best Roundcube skin look like Outlook Webmail. Buy now !

roundcube-best-skin-outlook

Italian Version

Questa skin per roundcube è del tutto simile all’interfaccia della webmail outlook.com di Microsoft.

Tra le sue caratteristiche abbiamo un layout completamente rinnovato, la presenza di tooltip, la possibilità di memorizzare username e password.

E’ possibile comprarla online alla modica cifra di 49 euro ed adattarla secondo le proprie esigenze.

Il Logo ed il marchio hostalo è un marchio registrato. Si dovrà dunque rimuovere il logo (che ha puro valore simbolico) e rimpiazzarlo con il proprio.

L’acquisto può esser fatto cliccando sul bottone “Compralo” e pagando online tramite paypal.

Vi verrà inviata tramite email un pacchetto compresso ZIP che conterrà tutti i file della skin e le istruzioni per montarlo all’interno della vostra installazione roundcube.

Per maggiori informazioni vi invitiamo a visionare il filmato Youtube presente su questa pagina alla fine dell’articolo.

Live demo : www.hostalo.it/webmail

English Version

This skin is very similar to roundcube webmail interface of Microsoft outlook.com.

Among its features we have a completely renewed layout, the presence of tooltips, the ability to store username and password.

And ‘possible to buy it online at the modest sum of 49 Euros and adapt it to suit your needs.

The logo and logo hostalo is a registered trademark. We must therefore remove the logo (which is merely a symbolic value) and replace it with your own.

The purchase can be done by clicking the “Buy” and paying online through paypal.

You will be emailed a ZIP compressed package containing all the skin file and instructions to mount it inside your roundcube installation.

For more information, please watch the video Youtube on this page at the end of the article.

Live demo : www.hostalo.it/webmail

Problemi nell’inviare e ricevere mail. Guida di riferimento alla diagnosi e alla risoluzione.

quante-email-inviate-al-minutoVa premesso che l’invio di una mail e la sua ricezione comporta una serie di operazioni “dietro le quinte” assolutamente non banali che determinano in modo indiscutibile l’esito positivo o meno dell’invio e della ricezione.

Sebbene l’invio di una mail sia alla portata di tutti è anche vero che esistono migliaia di mailserver ognuno col proprio software e ognuno con la propria configurazione che a volte possono non comunicare tra loro per problemi di natura tecnica e di mal configurazione.

Cerchiamo dunque di ipotizzare uno scenario.

Quando un utente con email tizio@tizio.it ad esempio prova ad inviare una mail a caio@caio.it, ecco cosa succede dietro le quinte :

  1. Il client di posta di tizio si connette al mailserver delegato a gestire la posta per il dominio tizio.it ad esempio mail.tizio.it
  2. A sua volta viene fatta una richiesta al mailserver autoritario che è in ascolto sulla porta 25 e chiesto di inviare una mail al destinatario caio@caio.it. Questa richiesta viene fatta seguendo una sintassi per il protocollo SMTP in cui brevemente vengono descritti, mittente (MAIL FROM), destinatario (RCPT TO), oggetto (SUBJECT) e il corpo della mail (DATA).
  3. Una volta terminata la trasmissione della mail dal client di posta al mailserver, il mailserver (che altro non è che un programma server che rimane in ascolto sulla porta 25, adibito alla ricezione e alla consegna delle mail) fa una query al DNS cercando di ottenere il record MX (Mail eXchanger) per il dominio in oggetto.
  4. Il DNS per il dominio caio.it risponderà ad esempio che il mail server autoritativo per il dominio caio.it sarà mail.caio.it
  5. Il mailserver mail.tizio.it allora si collegherà alla porta 25 del mailserver mail.caio.it instaurando una connessione di tipo TCP e girerà la mail che aveva in coda (queue) speditagli dal client di posta (outlook o thunderbird ad esempio) dell’utente tizio@tizio.it
  6. A questo punto il mailserver del destinatario mail.caio.it avrà in coda la mail destinata ad un utente del suo dominio (caio@caio.it) e dovrà in qualche modo consegnarla in un file dentro una cartella del server, in formato normalmente Maildir o Mailbox.
  7. A quel punto il ricevente si collegherà tramite il suo client di posta ad un server di posta in entrata pop3 o imap che serve alla ricezione del messaggio precedentemente consegnato dal mailserver.

Questo è quello che avviene in un regime normale, ovvero senza controlli specifici antivirus e antispam.

Già fino ad ora per far funzionare tutto questo meccanismo si ha bisogno dei seguenti requisiti :

  1. 2 mailserver pienamente funzionanti , uno per il mittente uno per il destinatario
  2. Le informazioni host ed IP sui mailserver siano pubblicati nelle voci DNS (dette zone) dei domini in questione.
  3. Effettuare una query DNS implica cialis prices il fatto di avere un server DNS funzionante con le corrette informazioni pubblicate, in particolar modo il record MX

In una configurazione avanzata, si ha a che fare inoltre con controlli aggiuntivi, come ad esempio :

Greylisting : si rifiuta di accettare la mail del mittente per alcuni minuti. Nel caso di un mailserver reale e non spammer, sarà rinviata. Nel caso di spam bot spesso non viene rinviata per cui si inizia a fare una selezione di posta buona e posta cattiva. Ciò comporta un ritardo di circa 10, 15 minuti (ma anche più) del primo messaggio di un nuovo mittente per il nuovo mese.

DNSBL : si verifica se un IP del mittente risulti pubblicato in liste mondiali di Spammer tramite richieste di tipo UDP (simili a quelle usate per le query DNS). Se presente, il messaggio viene rifiutato e il mailserver mittente lo rispedirà al mittente, specificando il motivo del rifiuto di consegna.

Antispam/Antivirus : in base al contenuto, parole chiave ed allegati, si darà un punteggio al messaggio. Superato un certo punteggio (normalmente 5) il messaggio sarà etichettato come SPAM e sarà consegnato o nella cartella SPAM o nella posta normale con l’oggetto del messaggio modificato in qualcosa del tipo [SPAM]Oggetto del messaggio , oppure ***SPAM***Oggetto del messaggio.

In questo caso affinchè il messaggio sia ricevuto dall’indirizzo del destintario il mittente deve accertarsi che l’ip del suo mailserver non sia elencato come fonte di SPAM nelle DNSBL, deve avere l’accortezza di seguire delle regole standard per la scrittura di una mail come ad esempio scrivere l’oggetto, inserire un testo nel corpo del messaggio, evitare l’invio di file quasi sempre vietati come gli eseguibili (.exe, .com, .pif, .bat, ecc..).

Va inoltre messo nero su bianco un concetto : quando la mail non arriva o non si riceve la colpa può essere nostra come può essere dell’interlocutore.

Se un nostro fornitore o cliente, ci invia una mail da un indirizzo elencato in DNSBL, la colpa è sua che non invia rispettando le regole, e non nostra che rifiutiamo automaticamente il messaggio perchè appunto è SPAM.

Inoltre va detto che la mail non è uno strumento di comunicazione in tempo reale, la consegna non è garantita e che ogni uso diverso da quella per cui è stata progettata è un uso errato.

Ogni messaggio di errore che ritorna indietro ha un codice di identificazione, nonchè a breve una descrizione del problema.

Leggendo queste informazioni, possiamo sapere senza ombra di dubbio, se il problema siamo noi o l’altro interlocutore.

Basterebbe avere la voglia e prendersi la briga di leggere questi errori per evitare di brancolare nel buio evitando inopportune comunicazioni all’helpdesk aziendale.

Ottimizzare un server LAMP. mod_php vs suphp vs fcgid fastcgi vs php-fpm. La modalità ottimale per un ambiente in virtual hosting

ilovephpProgettare bene un web server, significa anche effettuare una scelta opportuna su come far girare l’interprete PHP.

Se è vero che Apache di default fornisca il classico mod_php che va bene tecnicamente per tutte le configurazioni senza (apparentemente) troppi problemi, è anche vero che guardando nel dettaglio tutte le varie possibili soluzioni, con un pizzico di tempo potremmo effettuare una configurazione ottimale sopratutto per quei server WEB che si ritrovano a far girare più siti web in modalità virtual hosting (più siti su un solo server).

A differenza di un web hosting dedicato (un server web su cui gira uno o più siti dello stesso cliente) lavorare in ambiente condiviso implica ragionare tenendo conto di concetti importantissimi per la sicurezza e le prestazioni : la separazione dei privilegi e il modo in cui viene implementata questa caratteristica.

Va premesso che questo articolo non affronterà la parte tecnica dell’installazione e configurazione di ogni possibile modalità (per quello ci sono innumerevoli tutorial in rete), ma vuole essere una panoramica introduttiva che aiuti il lettore a fare una scelta oculata tra soluzioni apparantemente equivalenti ma profondamente diverse.

Al fine di gestire un sito PHP, il server deve interpretare il codice PHP e generare una pagina quando i visitatori accedono al sito.
Si interpreta il codice in base a quale libreria PHP si sta utilizzando, ad esempio PHP 4 o PHP 5.
Un handler PHP (o gestore) è colui che effettivamente carica le librerie in modo che possano essere utilizzate per l’interpretazione.
I gestori di PHP determinano come PHP viene caricato sul server.

E’ fondamentale per le prestazioni del server, selezionare il gestore che si adatta meglio alla propria situazione.
Selezionando il gestore giusto è importante tanto quanto la versione di PHP stesso.
Un gestore non è necessariamente sempre migliore di un altro, ma dipende dalla configurazione e dalle esigenze.

Di quale caching avete bisogno ? Di quali moduli avete bisogno ? ecc …

mod_php (DSO)

DSO è anche conosciuto come mod_php. DSO significa: Dynamic Shared Object. Questa è una configurazione o, ma è generalmente considerato il gestore più veloce.
Gestisce PHP come modulo di Apache. Ciò significa che gli script PHP verranno eseguiti come utente Apache, che è l’utente: ‘apache o httpd o www-data o nobody’.

Riguardo mod_php si dovrebbe dire ben poco. Esso è infatti installato di default in tutte le distribuzioni Linux al momento che si installi un Webserver APACHE con PHP.
Va sottolineato Apache e non webserver alternativi come lighthttpd o NGINX, perchè mod_php non funzionano con questi altri.
E’ la soluzione classica, la più utilizzata dagli utenti pigri, ma sicuramente non la più ottimale. Nemmeno la più sicura.

mod_php infatti non dispone di caratteristiche di progettazione atte a garantire una separazione privilegi adeguata. Anzi, non la offre proprio.
Esso infatti si limita ad eseguire gli script PHP con gli stessi permessi del webserver che lo invoca, normalmente httpd, www-data, apache o nobody.

Ciò significa che per gestire vhosts multipli si dovranno impostare i permessi dei singoli vhosts con permessi non separati tra loro, dando la possibilità al webserver di leggere e scrivere file e cartelle con i permessi del webserver stesso.

DSO ha due inconvenienti. In primo luogo, tutti i file creati da uno script PHP avrà la proprietà dell’utente con cui gira Apache.
Essi non saranno leggibili dal webserver altrimenti. Siti web che hanno bisogno di caricare i file tramite PHP avranno problemi di autorizzazione di file a patto di non modificare i permessi in configurazioni fin troppo permissive.

Il secondo svantaggio è un problema di sicurezza. I file creati avranno la proprietà del webserver. Se un hacker trova un exploit nello script PHP, potrebbe realizzare un file con gli stessi privilegi file di sistema importanti che sono anche di proprietà del webserver. Questo darà loro la possibilità di modificare i file  al di fuori di tale account utente.

Per ovviare a queste mancanze sono state implementate feature empiriche e obsolete come safe_mode() e l’open_basedir(), puri palliativi per tentar di arginare un male che va risolto alla radice.

Risolvere alla radice il male significa usare configurazioni che supportano la separazione dei privilegi.
Tra queste troviamo suPHP, FCGId (tecnicamente l’evoluzione di FastCGI) e PHP-FPM.

suPHP

suPHP è stato il primo abbozzo per tentare una reale separazione privilegi utenti.

SuPHP altro non è che un modulo per Apache che ci dà la possibilità di presentarci al sistema come un utente differente dal default (www-data, httpd o apache).
Esso funziona solo su Apache e come il precedente mod_php è inutilizzabile su altri webserver.

Tra i suoi vantaggi :

  • Ogni vhost esegue PHP con il proprio user/group
  • I file PHP possono avere permessi 640 (rw-r—–). Ciò è perfetto per i file di configurazione con password e dati sensibili
  • I file e le cartelle create da PHP sono scritte con user/group del proprio vhost.
  • Può essere usato un file php.ini per ogni vhost (configurazioni personalizzate, impostazioni di sicurezza e performance su misura)

L’obiettivo lo raggiunge bene se non fosse a scapito delle prestazioni davvero ridotte.

Esso infatti è circa il 30 – 40% più lento e meno performante del classico mod_php.

Questo succede per le tempistiche bibliche dello spawning di un nuovo processo per ogni richiesta e l’effettuazione di una fork() che rende il tutto davvero ingestibile e inaccettabile sopratutto su siti ad alto traffico o su server che ospitano centinaia o migliaia di siti in virtual hosting.

fcgiD e FastCGI

fcgid invece è una soluzione derivata dal più obsoleto e non mantenuto fastcgi da cui prende comunque l’assonanza nel nome.

FastCGI (aka: mod_fcgid o fcgi) è una variante del CGI (Common Gateway Interface) ad alte prestazioni.

Ha la sicurezza e proprietà nonchè vantaggi di suPHP riguardo alla separazione dei privilegi degli utenti.
Inoltre può essere utilizzato a differenza di mod_php e suPHP anche su webserver diversi da Apache.

La differenza principale con suPHP è che con FastCGI si può risparmiare notevolmente sulle prestazioni della CPU e dare velocità prossime a quella della DSO (mod_php).
Può essere utilizzato anche con un opcode cacher come eAccelerator o APC, che può ulteriormente aiutare velocità il caricamento delle pagine, ma a causa della separazione privilegi dei processi non potrà accedere alla memoria condivisa di cacher come APC, xCACHE, eAccelerator.

Ciò si traduce in un elevato utilizzo della memoria. Questo anche perché invece di creare il processo di PHP ogni volta che viene chiamato, come suPHP, mantiene una sessione persistente aperta in background.

Se vi piace la sicurezza offerta da suPHP e volete avere performance simili a quelle di DSO (ovvero molto veloci) questa è una soluzione da tenere in considerazione sopratutto su versioni di php inferiori alla 5.3

PHP-FPM

A partire da php 5.3 infatti è stata implementata e messo in produzione il gestore PHP-FPM acronimo di FastCGI Process Manager.

PHP-FPM è una implementazionealternativa di PHP FastCGI con alcune funzioni utili per i siti di qualsiasi dimensione e specialmente per i siti e webserver particolarmente carichi.

PHP-FPM è destinato principalmente ai siti web gravati da numerose richieste HTTP. E’ possibile lanciare più pool di processi FastCGI in ascolto su porte separate per soddisfare le esigenze di ambienti virtuali multi-dominio in virtual hosting.

Offre inoltre:

  • Processo di gestione avanzato con possibilità di fare uno stop/start controllato.
  • La possibilità di avviare lavoratori con differenti uid/gid/chroot/ambienti e impostazioni di php.ini diverse (sostituisce safe_mode)
  • Registrazione di stdout e stderr .
  • Riavvio di emergenza in caso di distruzione accidentale della opcode cache
  • Supporto per l’upload accelerato.
  • Supporto per lo “slowlog” che registra le pagine che richiedono troppo tempo per essere completate

È possibile utilizzare PHP-FPM come back-end a qualsiasi server web e non essere più legati ad Apache.
Un altro vantaggio (che ha anche mod_php), è quello di gestire la memoria condivisa e dunque gestire in modo trasparente e indolore sistemi di caching PHP come APC, eAccelerator, xCACHE.

Riassumendo in breve:

  Sicurezza Prestazioni Integrazione Caching  Adatto Virtual Hosting Non Apache
mod_php Bassissima Altissime Si. Molto facile e indolore No. Sconsigliatissimo No
suPHP Altissima Bassissime No. Si. Non consigliato No
FastCGI Altissima Alte Si. Complessa, pochi vantaggi Si. Consigliato Si. 
PHP-FPM Altissima Molto Alte Si. Molto facile e indolore Si. Consigliatissimo Si. 

Le informazioni fino ad ora elencate sono più che sufficienti per mettervi in condizione di fare una scelta intelligente. Scelta che in un webserver adibito al virtual hosting nel mio caso si traduce senza esito a PHP-FPM.

Solo in situazioni in cui si ospita un solo dominio in un server VPS ad esempio, posso permettermi il lusso di usare ciò che offre la casa (mod_php) senza troppi problemi riguardo la sicurezza dato che quel sito rimane comunque l’unico sito che gira sul server.

Hosting. Prodotto o servizio ? Quattro conti insieme all’hoster per un acquisto sereno.

risparmiare_hosting_webAcquistare un piano hosting è diventata un’operazione comune. Facile ed immediata, nonchè alla portata di tutti.

Ma come orientarsi tra i tanti fornitori e le varie offerte ?

Prima di addentrarci nella risposta è bene fare una piccola introduzione.

Va precisato infatti che l’attivita di hosting provider non è filantropia, ma è un’attività imprenditoriale e come tale ci si prefissa un utile.

Ogni azienda di hosting propone la propria offerta secondo un business plan “studiato” a tavolino con cui conseguire gli obiettivi imprenditoriali ed economici prefissati.

Attualmente la moda è quella di proporre prezzi stracciati e di vendere piani hosting a cifre che oscillano tra le 10 e le 20 euro (annuali).

Queste offerte commerciali però non tengono conto di un concetto fondamentale, ovvero che un piano hosting non è solo un prodotto, ma sopratutto un servizio.

Senza un’adeguata assistenza che risponda in tempi ragionevoli alle proprie esigenze, un piano hosting è potenzialmente un problema più che una soluzione.

Ciò che va considerato infatti prima dell’acquisto è la reale competenza dell’acquirente nella gestione/configurazione ed uso di ciò che ha comprato.

Ad acquisto ultimato infatti l’hosting provider vi comunicherà i dati di accesso e i parametri di configurazione dei vari servizi (web, email, ecc.), ed è compito vostro saper giostrarvi tra concetti come POP3, Client, FTP, modalità passiva/attiva, DNS e simili.

Siamo sicuri di aver padronanza di ciò ? Oppure sarebbe meglio delegare e spendendo qualcosa in più avere la garanzia di un’assistenza disponibile e cordiale e che non sia menefreghista e sfuggente, pur di rientrare nel misero budget con cui vi hanno venduto un prodotto ?

La qualità di un servizio di hosting infatti si vede sopratutto dell’assistenza.

Cosa succederebbe se foste attaccati da hacker ? Se un trojan infettasse il vostro sito, o se più banalmente non riusciate a configurare Outlook per ricevere e inviare posta ?

Quanto tempo sarebbe in grado di dedicarvi il reparto tecnico di fronte ad un canone annuale di 10 euro ? Normale che non vadano troppo per le lunghe, limitandosi a rimandarvi a insoddisfacenti FAQ ed a improbabili ricerche su Google.

Nel comprare un servizio di hosting dunque valutiamo la nostra reale competenza informatica e  l’importanza di un assistenza umana e professionale che ad oggi è l’unica componente che faccia ancora la differenza.

Presenza e visibilità in rete. L’importanza di un nome a dominio strategico per veicolare visitatore e possibili clienti. Un esempio reale.

presenza_online_economicaNon c’è nulla da meravigliarsi nel dire e sostenere con prova, che in alcune cittadine la maggior parte dei liberi professionisti hanno investito poco o niente in rete.
Vuoi per la scarsa stima che si ripone nelle tecnologie, vuoi per “risparmiare”, la realtà è comunque questa.

Moltissimi liberi professionisti (Avvocati, Notai, Idraulici, Geometri, Architetti, Dentisti, Osteopati, ecc…) sono infatti sprovvisti di una presenza incisiva in rete, che nella maggior parte dei casi si riduce ad una banale FAN Page su Facebook o ad essere presenti su pagine gialle o directory online come misterimprese.

Ciò è un errore madornale, in primis perchè oggi come oggi c’è più gente che cerca in rete che su pagine gialle, secondariamente perchè avere una presenza in rete significa aumentare le possibilità di successo senza dover stipulare un mutuo.

Vanno oltretutto spese due parole su un concetto fondamentale : liberi professionisti ed area di intervento.

Se è vero che in alcuni settori (ecommerce ad esempio) il target di possibili clienti è su scala nazionale o addirittura internazionale, è altrettanto vero che nel caso di alcuni lavori molto spesso si cercano professionisti in zone limitrofe per ovvi motivi logistici e comunicativi. Dunque un professionista dovrebbe innanzitutto aumentare la visibilità nella zona in cui opera maggiormente sopratutto se volesse investire il minimo possibile.

Ma cosa significa avere buona visibilità al minimo prezzo ?

Significa essere presenti in prima pagina di google digitando la chiave di ricerca “professione nome della città”.

Ad esempio :

  • Dentista civitanova
  • Studio legale civitanova marche
  • avvocato civitanova
  • geometra civitanova marche

 

L’ultimo caso “Geometra civitanova marche” è stato un esperimento reale per dimostrare come con un pizzico di impegno del cliente e con un costo davvero irrisorio (10 euro di dominio e 10 per caricare la pagina html) si possa essere presenti e visibili in rete in una zona come Civitanova Marche in cui attualmente i geometri non investono sulla presenza e visibilità in rete.

Avere nulla o poca concorrenza significa arrivare primi col minimo sforzo e il minimo prezzo.

Lo scopo era quello di far conoscere il Geometra Devid Scalese a tutti coloro che necessitano di un geometra a Civitanova Marche e zone limitrofe.
Dunque, nuovi clienti. Utenti che su google digiteranno la chiave di ricerca “Geometra civitanova” o “Geometra civitanova marche” e simili.

Per far ciò abbiamo comperato un nome a dominio inerente alle nostre intenzioni e molto appetibile ai motori di ricerca : geometracivitanovamarche.it

Abbiamo caricato un iframe del suo profilo che aveva precedentemente creato in maniera autonoma su archilovers, e tramite un div di altezza 0 pixel (ovvero invisibile all’utente) abbiamo scritto una breve presentazione con le parole chiave pertinenti e un elenco
dei servizi offerti.

Nel giro di meno di 24 ore ci si trova già in prima pagina.

Questo è volutamente un esempio estremo di come creare una valida presenza in rete al minimo costo. Il profilo incorporato sarebbe potuto essere linkedin, about.me, facebook, Google+ piuttosto che Archilovers, ma comunque il concetto non cambia : basta veramente poco per farsi trovare, sopratutto in quei casi in cui i nostri concorrenti sottovalutano la rete, uno strumento che in moltissimi casi da noi vissuti ha decretato il successo dei nostri clienti.

 

Ottimizzare le performance di un sito web. Alcuni passi fondamentali per gestire siti con migliaia di visite al secondo

ottimizzazione-siti-webQuando si ha a che fare con un sito web con moltissime visite, prima o poi si dovrà fare i conti con le risorse insufficienti, l’inefficienza del sito e col portafogli.

Col portafogli perchè se continuerete ad avere un sito lento, non venderete; ma anche perchè per aumentare le performance probabilmente vi venderanno servizi cloud e servizi di hosting da svariate migliaia di euro al mese.

Questo è infatti il modo di ragionare puramente commerciale e per niente etico di molti fornitori di hosting.

Nella maggior parte dei casi invece sarebbe bastato solo rivolgersi alle persone giuste per fare un tuning intelligente del sistema, sostituire eventuali servizi con equivalenti più efficienti e mettere in piedi tecniche per massimizzare le performance e minimizzare i costi.

Verosimilmente in alcuni casi potremmo dimezzare i costi o addirittura decimare, aumentando le prestazioni in quei casi particolarissimi in cui realmente serve avere il massimo dell’efficienza.

Tra gli esempi di alcuni casi potrebbero essere portali giornalistici, community online, blog, o altri siti generici che hanno molte visite concorrenti e che richiedono funzionalità di lettura/scrittura verso il database ed hanno un interprete lato server come PHP.

Siti del tipo “Il fatto quotidiano” o la community su android “Tuttoandroid“.

Come gestire tutti quegli utenti in contemporanea ? Come dimensionare l’hardware ? Come settare il database per avere il massimo delle performance ? Quale webserver usare ? Come configurare l’interprete PHP ?

Per rispondere a queste domande bisogna avere una approfondita conoscenza sistemistica, conoscere i pro e i contro delle varie soluzioni disponibili e mettere in piedi un ambiente ottimale per dare il massimo dell’efficienza. In poche parole : Ottimizzare.

Brevemente possiamo dire che nell’ottica di gestire una mole elevatissima di utenti concorrenti bisogna scordarsi di implementare le soluzioni standard che il mercato offre in ambiente hosting.

In primis va scelto un hosting dedicato e non condiviso. Un server dedicato ben dimensionato con connettività possibilmente europea se si vuol rimanere contenuti nei costi.

Uno Xeon Quad core con 32 Giga di RAM e 3 terabyte di dati, 100 Mbit di banda normalmente lo si può trovare a meno di 80 euro / Mese.

Il webserver che normalmente viene configurato in questi casi è NGINX che offre (a differenza di Apache) di servire rapidamente i contenuti statici con un utilizzo efficiente delle risorse di sistema. È possibile distribuire contenuti dinamici HTTP su una rete che utilizza i gestori FastCGI per gli script, e può servire come un bilanciatore di carico software molto capace.

Ad esso dovrà essere abbinato PHP-FPM.

PHP-FPM è una derivazione di Php Fastcgi molto interessante, che apporta modifiche ed un nuovo modello di utilizzo al progetto originario. Incluso ultimamente nella release di Php 5.3.3, PHP-FPM rappresenta una tecnologia abbastanza matura da poter essere utilizzata in ambienti di un certo calibro. PHP-FPM ha la capacità di avviare pool multipli di processi Fastcgi in ascolto su porte separate per soddisfare le richieste su ambienti di hosting virtuale multidominio, anche se il modello di progettazione principale non consiglia utilizzi orientati all’hosting multiplo. PHP-FPM è stato principalmente pensato per siti web oberati da numerose richieste HTTP ed è dunque molto indicato per ambienti mono sito, con web server come Nginx e Lighttpd.

Il database se MySQL dovrà essere configurato in maniera adeguata in modo di gestire al meglio l’allocazione delle risorse come la cache delle query, i thread concorrenti, i vari engine di storage (MyISAM e InnoDB in primis), ecc…
Non basterebbe un libro intero sul tuning di MySQL, ma vi basti sapere che il settaggio può fare il buono e il cattivo tempo.

Se utilizzate CMS che lo permettono (o applicazioni da voi scritte appositamente) potrete affiancare a questa potentissima ricetta MEMCACHED.

Memcached aumenta le prestazioni e la scalabilità di siti web dinamici con tecnologia MySQL attraverso un caching dei dati e degli oggetti nella memoria per minimizzare il carico del database. I più grandi nomi del web, come YouTube, Facebook, Fotolog e Wikipedia utilizzano Memcached e MySQL per soddisfare le esigenze di milioni di utenti e di miliardi di visualizzazioni delle pagine ogni mese.

A livello WEB invece molti CMS (Drupal, Joomla, WordPress, ecc…) permettono l’implementazione di appositi moduli per effettuare il caching dei contenuti, ovvero far in modo di ridurre sensibilmente la generazione di pagine dinamicamente tramite PHP e MySQL e dunque far in modo di servire contenuti statici.

A questo potrebbe essere utile implementare e configurare servizi CDN specifici per distribuire le risorse e rendere più efficace il tutto.
I nodi CDN sono geograficamente distribuiti, spesso connessi a diverse dorsali; questi nodi collaborano vicendevolmente per soddisfare le richieste di contenuti, trasferendoli in maniera trasparente al fine di ottimizzarne il processo di consegna: un sistema centralizzato con unico server centrale non sarebbe in grado di soddisfare le molteplici richieste di servizio da parte di numerosi utenti. Le ottimizzazioni possono portare come vantaggi la riduzione dei costi per l’ampiezza di banda, o il miglioramento delle prestazioni, o entrambi.

Per gestire forum con centinaia di migliaia di iscritti invece, bisogna affidarsi alla soluzione commerciale di punta (peraltro molto economica), ovvero Vbulletin. Molto malleabile ed estremamente ricco di funzionalità, eccelle per la sua indiscussa velocità.

Abbiamo visto fino a qui alcuni dei passi principali per mettere online un sito rivolto a centinaia di migliaia di utenti, sicuramente non tutti, e non discussi approfonditamente.

Si potrebbe parlare di APC, di database NOSQL come MongoDB, Redis, ecc… di Web Accelerator come Varnish, o di un sacco di altre cose che sapientemente installate e configurate possano portare a risultati a dir poco sorprendenti.

Se pensi che il tuo sito Web abbia bisogno di dare il massimo in termini di velocità, o se credi di spendere troppo per la tua soluzione hosting o server dedicato attuale non ottimizzato e vuoi risparmiare oltre 2 terzi del canone mensile, siamo sicuramente la soluzione ai tuoi problemi.

Con un’analisi iniziale gratuita possiamo farti la nostra migliore offerta per avere il massimo delle performance al minor costo.

Contattaci per un preventivo gratuito