<?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>Tosolini.info &#187; PHP</title>
	<atom:link href="http://www.tosolini.info/category/howto/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tosolini.info</link>
	<description>Work in progress..</description>
	<lastBuildDate>Sat, 17 Dec 2011 16:14:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>phpVirtualBox</title>
		<link>http://www.tosolini.info/2011/07/phpvirtualbox/</link>
		<comments>http://www.tosolini.info/2011/07/phpvirtualbox/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 09:50:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[linux server]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Virtualizzazione]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macchine virtuali]]></category>
		<category><![CDATA[phpvirtualbox]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualizzazione]]></category>

		<guid isPermaLink="false">http://www.tosolini.info/?p=280</guid>
		<description><![CDATA[VirtualBox è uno dei miei software preferiti, si tratta di un gestore di macchine virtuale open source della Oracle. Nel corso della sua breve vita i miglioramenti sono stati tantissimi, tuttavia il suo ambito di utilizzo è sempre stato quello della workstation o meglio di virtualizzare in locale. A quanto pare dalla versione 4.x è [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> è uno dei miei software preferiti, si tratta di un gestore di macchine virtuale <strong>open source</strong> della Oracle. Nel corso della sua breve vita i miglioramenti sono stati tantissimi, tuttavia il suo ambito di utilizzo è sempre stato quello della workstation o meglio di virtualizzare in locale. A quanto pare dalla versione 4.x è maturata anche la possibilità di una gestione server per certi versi simile a prodotti business (di decennale esperienza) come <strong>Vmware Server</strong> o <strong>Virtual Server</strong> di Microsoft.</p>
<p><a href="http://tosolini.info/wp-content/uploads/2011/07/phpvbsm.png" rel="lightbox[280]" title="phpvbsm"><img class="aligncenter size-full wp-image-281" title="phpvbsm" src="http://tosolini.info/wp-content/uploads/2011/07/phpvbsm-e1311845482239.png" alt="" width="500" height="370" /></a></p>
<p><span id="more-280"></span></p>
<p>Infatti una installazione server tipica di <strong>Linux</strong> esente da GUI è possibile agire comunque su tutti gli aspetti di una creazione, gestione di una o più macchine virtuali, come descritto nel <a href="http://www.virtualbox.org/manual/ch08.html" target="_blank">capitolo 8</a> della guida di VirtualBox. Questo ha dato modo di &#8220;trasporre&#8221; i comandi all&#8217;interno di una interfaccia web, che con l&#8217;aiuto di <strong>Ajax</strong>, si è trasformata in una GUI di VirtualBox in tutto e per tutto senza rinunciare a nulla. Il progetto si chiama appunto <a href="http://code.google.com/p/phpvirtualbox/" target="_blank">phpVirtualBox</a> e come suggerisce il nome si appoggia ad un <strong>webserver Apache e PHP</strong>.</p>
<p>Si tratta, e bene dirlo, di un progetto che deve ancora esprimere il suo vero potenziale e non è esente da bugs. Tuttavia se non volete / potete spendere soldi per una virtual server farm potreste trovare l&#8217;accoppiata VirtualBox e <strong>webserver Linux</strong> decisamente vincente, considerando che phpVirtualBox già gestisce macchine virtuali in server multipli.</p>
<p>Vediamo come installare dalla nostra esperienza diretta.<br />
Abbiamo preso un server adeguatamente carrozzato, 18 GB Ram  e spazio disco a sufficienza, installato una Ubuntu Linux 10.04 con i pacchetti <strong>Apache2 e Php5</strong>.<br />
Dal sito della VirtualBox abbiamo aggiunto al nostro  <em>/etc/apt/sources.list</em>  il repository ufficiale</p>
<pre class="brush: powershell; title: ; notranslate">deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free</pre>
<p>Quindi aggiornato ed installato il software</p>
<pre class="brush: powershell; title: ; notranslate">sudo apt-get update
sudo apt-get install virtualbox-4.1</pre>
<p>Dal sito di phpVirtualBox abbiamo scaricato il pacchetto .zip e scompattato dentro <strong>/var/www</strong> rinominando opportunamente la cartella in phpvirtualbox affinché sia raggiungibile dal browser all&#8217;indirizzo <em>http://nomeserver/phpvirtualbox</em>.</p>
<p>Nel file di configurazione viene richiesto un utente che farà girare l&#8217;applicativo, quindi abbiamo preventivamente creato l&#8217;utente vbox</p>
<pre class="brush: powershell; title: ; notranslate">useradd -m vbox
passwd vbox</pre>
<p>Copiamo il <em>config.php.sample</em> in <em>config.php</em></p>
<pre class="brush: powershell; title: ; notranslate">cp config.php.sample config.php</pre>
<p>quindi editarlo con il vostro editor preferito, in particolare indicando l&#8217;IP del webserver nella seguente variabile:</p>
<pre class="brush: powershell; title: ; notranslate">/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://192.168.1.100:18083/';</pre>
<p>Da Root ora sarà necessario creare il file</p>
<pre class="brush: powershell; title: ; notranslate">vi /etc/default/virtualbox</pre>
<p>con i seguenti parametri</p>
<pre class="brush: powershell; title: ; notranslate">VBOXWEB_USER=vbox
VBOXWEB_LOGFILE=/var/log/virtualbox/virtualbox.log
VBOXWEB_HOST=192.168.1.100
INSTALL_DIR=&quot;/usr/bin&quot;</pre>
<p>In teoria seguendo le istruzioni la voce VBOXWEB_HOST non sarebbe necessario perché è persino previsto che l&#8217;interfaccia web possa essere in un server mentre l&#8217;applicativo delle macchine virtuali altrove, tuttavia senza questo parametro abbiamo riscontrato alcuni malfunzionamenti.</p>
<p>Ora l&#8217;utente vbox quasi sicuramente non sarà in grado di scrivere all&#8217;interno della cartella /var/log quindi andremo a creare la cartella virtualbox dando all&#8217;utente in questione i diritti per scriverci.</p>
<pre class="brush: powershell; title: ; notranslate">sudo mkdir /var/log/virtualbox
sudo chown vbox /var/log/virtualbox
sudo chmod 755 /var/log/virtualbox</pre>
<p>A questo punto l&#8217;interfaccia potrebbe già funzionare, ma nel primo avvio abbiamo riscontrato la mancanza di un extension pack di Oracle per Virtualbox che andremo a <a href="http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html" target="_blank">scaricare da questo sito</a>, ad esempio sulla nostra home /home/user. Per installarlo ci deve avvalere di uno specifico comando della VirtualBox:</p>
<pre class="brush: powershell; title: ; notranslate">wget http://download.virtualbox.org/virtualbox/4.1.0/Oracle_VM_VirtualBox_Extension_Pack-4.1.0-73009.vbox-extpack
VBoxManage extpack install /home/user/Oracle_VM_VirtualBox_Extension_Pack-4.1.0-73009.vbox-extpack</pre>
<p>Purtroppo le extension via CLI necessitano di un riavvio della macchina, prima però assicuriamoci che il servizio che lancia l&#8217;interfaccia web delle macchine virtuali sia installato</p>
<pre class="brush: powershell; title: ; notranslate">sudo update.rc vboxweb-services defaults</pre>
<p>Ora non ci resta che riavviare la macchina. Alla riaccensione il webserver dovrebbe essere disponibile con la phpVirtualBox attiva (la username e password di default sono admin:admin) dove poter procedere a creare la vostra prima virtual machine. Interessante il  sistema RDP (remote desktop) che permette di vedere tutta la fase di boot della macchina virtuale, troverete i dati di collegamento nei dettagli della macchina creata, che vi permetterà di scaricare un file .rdp con tutti i parametri pronti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2011/07/phpvirtualbox/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>phpMyAdmin: limitare l&#8217;accesso a IP privati</title>
		<link>http://www.tosolini.info/2011/03/phpmyadmin-limitare-laccesso-a-ip-privati/</link>
		<comments>http://www.tosolini.info/2011/03/phpmyadmin-limitare-laccesso-a-ip-privati/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 14:39:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[linux server]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[intranet]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[restrict ip access]]></category>

		<guid isPermaLink="false">http://www.tosolini.info/?p=207</guid>
		<description><![CDATA[phpMyAdmin è sicuramente il miglior programma per gestire ed amministrare il vostro Database MySQL. Essendo un programma web (di fatto un sito vero e proprio) permette di essere residente nel server, non usare tool esterni ed essere sempre disponibile. Questi vantaggi tuttavia possono presentare l&#8217;inconveniente che phpMyAdmin sia esposto a tentativi di brute force login. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.phpmyadmin.net/" target="_blank">phpMyAdmin</a> è sicuramente il miglior programma per gestire ed amministrare il vostro Database MySQL. Essendo un programma web (di fatto un sito vero e proprio) permette di essere residente nel server, non usare tool esterni ed essere sempre disponibile. Questi vantaggi tuttavia possono presentare l&#8217;inconveniente che <strong>phpMyAdmin</strong> sia esposto a tentativi di brute force login. Se il server è disponibile attraverso vostra rete locale (intranet), e volete &#8220;scudare&#8221; il suddetto programma basterà aggiungere qualche riga sotto il file <strong>config.inc.php</strong> presente nella root folder di phpMyAdmin.</p>
<pre class="brush: php; title: ; notranslate">
//previeni accessi indesiderati da reti non protette
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
'deny root from all',
'allow root from localhost',
'allow root from 192.168.1.0/24',
);
</pre>
<p>Questo permetterà l&#8217;accesso da locale, in console, e da tutta la rete 192.168.1.0 fino alla 254. E&#8217; possibile ovviamente inserire un solo IP, se la macchina che deve effettuare manutenzione è nota ed è solo una. E&#8217; possibile anche aggiungere più sottoreti o più IP singoli, duplicando di fatto la voce <em>&#8216;allow root from ####&#8217;</em></p>
<p>Alla fine dell&#8217;operazione, salvate il file (raccomandato sempre un backup prima di procedere a queste modifiche) e riavviate il vostro webserver ( <em>sudo service apache2 restart</em> )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2011/03/phpmyadmin-limitare-laccesso-a-ip-privati/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: utenti Autore e i video embedded</title>
		<link>http://www.tosolini.info/2011/01/wordpress-utenti-autore-e-i-video-embedded/</link>
		<comments>http://www.tosolini.info/2011/01/wordpress-utenti-autore-e-i-video-embedded/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 20:37:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[trucchi]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=185</guid>
		<description><![CDATA[In un altro sito che possiedo, ovviamente su piattaforma WordPress, un utente con i permessi di Autore, ovviamente con le facoltà di poter scrivere articoli che siano subito disponibili, mi indicava un problema alquanto strano e fuorviante. Quando pubblicava un video in embedded (ad esempio da Youtube) premendo il tasto dedicato all&#8217;inserzione di video in [...]]]></description>
			<content:encoded><![CDATA[<p>In un altro sito che possiedo, ovviamente su piattaforma <a href="http://www.wordpress.org">WordPress</a>, un utente con i permessi di Autore, ovviamente con le facoltà di poter scrivere articoli che siano subito disponibili, mi indicava un problema alquanto strano e fuorviante. Quando pubblicava un video in embedded (ad esempio da <a href="http://www.youtube.com" target="_blank">Youtube</a>) premendo il tasto dedicato all&#8217;inserzione di video in <strong>flash </strong>(il tasto verdognolo che rappresenta la pellicola tipica delle super8) in fase di editing questo compariva all&#8217;interno dell&#8217;editor <strong>TinyMCE</strong>, ma nel momento in cui premeva Salva Bozza o Pubblica, immancabilmente video e codice di embed scomparivano.</p>
<p>Ovviamente se a provare ero io, come admin del sito, tutto filava liscio. Il problema, o meglio la sicurezza, è dovuta dal fatto che l&#8217;inserzione di codice embed all&#8217;interno di un post richiede un minimo di attenzione, poiché si potrebbe veicolare codice malevolo.</p>
<p>Esistono più soluzioni, a livello plugin come <a href="http://wordpress.org/extend/plugins/members/" target="_blank">Members </a>o <a href="http://wordpress.org/extend/plugins/user-role-editor/" target="_blank">User Role Editor</a> oppure per i più pratici del codice, una piccola modifica nel file <strong>functions.php</strong> del vostro tema grafico.</p>
<pre class="brush: php; title: ; notranslate">
// get the &quot;author&quot; role object
$role = get_role( 'author' );

// add &quot;organize_gallery&quot; to this role object
$role-&gt;add_cap( 'unfiltered_html' );
</pre>
<p>C&#8217;è da specificare che questa modifica, di cui sopra, è bene che gli autori siano fidati e meglio se padroneggianti di un background a livello di editing web. Trovarsi il sito che spaccia codice malevolo non fa bene a nessuno&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2011/01/wordpress-utenti-autore-e-i-video-embedded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simfony: XSL modulo da installare in Ubuntu</title>
		<link>http://www.tosolini.info/2010/03/simfony-xsl-modulo-da-installare-in-ubuntu/</link>
		<comments>http://www.tosolini.info/2010/03/simfony-xsl-modulo-da-installare-in-ubuntu/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:51:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Simfony]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=123</guid>
		<description><![CDATA[Seguendo il tutorial di Simfony (noto Framework PHP) alle operazioni preliminari di pre-requisito, riscontro la mancanza del modulo XSL sotto Apache e sotto PHP. Nello specifico il messaggio che ho trovato è stato: Per ovviare al problema è stato necessario installare da apt-get i moduli mancanti, come segue: quindi riavviare l&#8217;istanza di Apache2 Riavviando il [...]]]></description>
			<content:encoded><![CDATA[<p>Seguendo il tutorial di <a href="http://www.symfony-project.org/jobeet" target="_blank">Simfony </a>(noto Framework PHP) alle operazioni preliminari di pre-requisito, riscontro la mancanza del modulo XSL sotto Apache e sotto PHP. Nello specifico il messaggio che ho trovato è stato:</p>
<pre class="brush: bash; title: ; notranslate">[[WARNING]] XSL module is installed: FAILED
*** Install the XSL module (recommended for Propel) ***</pre>
<p>Per ovviare al problema è stato necessario installare da apt-get i moduli mancanti, come segue:</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install libapache2-modxslt php5-xsl</pre>
<p>quindi riavviare l&#8217;istanza di Apache2</p>
<pre class="brush: bash; title: ; notranslate">
sudo /etc/init.d/apache2 restart</pre>
<p>Riavviando il check di configurazione il messaggio di errore dovrebbe essere scomparso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2010/03/simfony-xsl-modulo-da-installare-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual LAMP con VirtualBox</title>
		<link>http://www.tosolini.info/2010/02/virtual-lamp-con-virtualbox/</link>
		<comments>http://www.tosolini.info/2010/02/virtual-lamp-con-virtualbox/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:32:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[linux server]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macchine virtuali]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[wamp]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=119</guid>
		<description><![CDATA[Per sviluppare applicazioni web che gireranno sotto ambiente Linux, mentre noi abbiamo il nostro PC in ambiente Windows, esistono delle applicazioni dette WAMP (acronimo di windows, apache, MySQL, PHP) che permettono di far girare un webserver con database tipico dei server Linux. Tuttavia permangono differenze, anche piuttosto sostanziali, per cui la soluzione migliore è quella [...]]]></description>
			<content:encoded><![CDATA[<p>Per sviluppare applicazioni web che gireranno sotto ambiente <strong>Linux</strong>, mentre noi abbiamo il nostro PC in ambiente <strong>Windows</strong>, esistono delle applicazioni dette <strong>WAMP </strong>(acronimo di windows, <strong>apache, MySQL, PHP</strong>) che permettono di far girare un webserver con database tipico dei server Linux.<br />
Tuttavia permangono differenze, anche piuttosto sostanziali, per cui la soluzione migliore è quella di avere un sistema Linux completo. Per fortuna il mercato in questi ultimi anni ha proposto gratuitamente dei gestori di macchine virtuali che permettono di oltrepassare anche questa difficoltà.<br />
In particolare mi riferisco al progetto <a href="http:/www.virtualbox.org/" target="_blank">VirtualBox </a>della <strong>Sun Microsystem</strong>, un software leggero, <strong>multipiattaforma</strong> ed estremamente potente e duttile. Quindi vediamo come creare sul nostro sistema Windows, un ambiente operativo <strong>Linux Server </strong>(usando una <a href="http:/www.ubuntu.com" target="_blank">Ubuntu</a> Server a 64Bit) che serva allo scopo.<span id="more-119"></span></p>
<p>A questo punto sorge un problema &#8220;logico&#8221; ovvero la trasportabilità dei files. Se stiamo lavorando con il nostro editor di sviluppo sotto Windows, poi dovremo trasferire il tutto alla <strong>macchina virtuale</strong> per vederne i risultati. Questa situazione si rivela piuttosto seccante poichè l&#8217;operazione si svolgerà molto spesso. Per fortuna <a href="http://www.virtualbox.org" target="_blank">VirtualBox </a>dispone di una funzione chiamata &#8220;<strong>Cartelle Condivise</strong>&#8221; ovvero permette alla macchina virtuale (Guest) di accedere ad una specifica cartella del nostro sitema operativo Host.<br />
Pertanto nel nostro esempio condivideremo la cartella virtuale &#8220;home&#8221; di <a href="http://www.apache.org" target="_blank">Apache</a> con una cartella reale di Windows, dove noi andremo ad operare le modifiche.<br />
Procediamo con l&#8217;installazione di VirtualBox in ambiente Windows. Avviene con il classico setup a wizard, per cui non mi dilungo oltre nella descrizione.<br />
Al termine avviamo la creazione da wizard di una macchina virtuale Linux, terminata indichiamo di usare la ISO di <strong>ubuntu server</strong> come cd-rom che fungerà come sorgente di installazione. Potete farlo da File &#8220;<strong>Gestore supporti virtuali</strong>&#8221; sezione Immagini CD/DVD. Qui premiamo il tasto Aggiungi e indichiamo dove abbiamo salvato il file .iso della nostra Ubuntu server.</p>
<p>Rimane solo da modificare il comportamento della <strong>scheda di rete</strong>, dalle proprietà della macchina virtuale, scegliamo &#8220;<strong>Rete</strong>&#8221; quindi nel menu a tendina di &#8220;<strong>Connessa a</strong>&#8221; cambiamo il valore da  &#8221;<strong>NAT</strong>&#8221; a &#8220;<strong>Scheda con bridge</strong>&#8220;, dove poco sotto assinceriamoci che la scheda di rete sia quella in uso nel nostro personal computer.<br />
Avviamo la macchina virtuale, e partirà l&#8217;installazione di Ubuntu Server, che procederemo come meglio ci aggrada (non dimenticate di selezionare il pacchetto <strong>LAMP </strong>quando proposto nella lista software). Quando abbiamo ottenuto il prompt, al termine dell&#8217;installazione, dovremo procedere alla configurazione della scheda di rete. Se disponiamo di un <strong>server dhcp</strong> (ad esempio il router casalingo) possiamo anche saltare la configurazione, viceversa dobbiamo assegnare un <strong>IP statico</strong> e un <strong>gateway</strong> per raggiungere la macchina guest e affinchè questa esca su internet per reperire aggiornamenti o pacchetti aggiuntivi.</p>
<p>Risolto il problema della connettività passiamo ad installare le <strong>Virtual Box Guest Additions</strong>, che ci permetteranno non solo di migliorare le prestazioni della macchina virtuale, ma accedere anche alle &#8220;<strong>Cartelle Condivise</strong>&#8221; citate in precedenza.<br />
Prima di fare ciò è necessario installare il <strong>pacchetto dkms</strong> come segue:</p>
<pre class="brush: bash; title: ; notranslate">sudo apt-get install dkms</pre>
<p>Ora possiamo caricare la iso vbox guest addition, dalla finestra dove appare la macchina virtuale, scegliere dal menu a tendina in alto &#8220;<strong>Dispositivi</strong>&#8221; quindi &#8220;<strong>Installa Guest Addition</strong>s&#8221;. Con la ISO caricata sul CD-ROM occorre montarla sotto Linux come segue:</p>
<pre class="brush: bash; title: ; notranslate">sudo mkdir /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
sudo sh ./VBoxLinuxAdditions-amd64.run</pre>
<p>Effettuiamo uno shutdown ( <strong>sudo poweroff</strong> ) per dichiare la nostra &#8220;Cartella Condivisa&#8221;. Sotto le proprietà della macchina virtuale, cerchiamo la voce &#8220;<strong>Cartelle Condivise</strong>&#8220;, con il tasto aggiungi indicheremo una cartella già presente nel nostro Windows (se non esiste createla anticipatamente) e dichiariamo un nome. Nel nostro caso la cartella risiede sotto <em>C:\lamp</em> e la risorsa viene chiama lamp. Avviamo nuovamente la nostra macchina virtuale, e dalla shell facciamo un breve test per vedere che tutto funzioni. Nello specifico vogliamo condividere la cartella <em>/var/www</em> che è la root directory di Apache sulla cartella <em>C:\lamp</em></p>
<pre class="brush: bash; title: ; notranslate">sudo mount -t vboxsf lamp /var/www</pre>
<p>ora provate da Windows a creare il file test.txt in <em>C:\lamp</em>. Effettuando dalla shell di Ubuntu un</p>
<pre class="brush: bash; title: ; notranslate">cat /var/www/test.txt</pre>
<p>dovreste vederne il contenuto. Proviamo il metodo inverso, ovvero proviamo a modificare il file test.txt dalla shell di linux con Vi o il vostro editor preferito, e in Windows devono apparire le modifiche. Se apriamo il browser e puntiamo all&#8217;ip della nostra macchina virtuale, dovremo vedere il browsing della directory <em>/var/www</em> con il file test.txt in bella mostra. Non resta che rendere permanente il mount sotto Ubuntu, cosicchè all&#8217;avvio la cartella sia sempre condivisa con la macchina host. Sotto la cartella <em>/etc</em> dovremo modificare i files <strong>modules </strong>e <strong>fstab</strong>, per cui prima faremo una prudenziale copia di backup come segue:</p>
<pre class="brush: bash; title: ; notranslate">sudo cp /etc/modules /etc/modules.ori
sudo cp /etc/fstab /etc/fstab.ori</pre>
<p>Con  il nostro editor apriamo il file modules (ricordatevi di farlo da sudo, tipo: <em>sudo vi /etc/modules</em> ) e aggiungiamo alla fine del file la nuova riga <em>vboxsf</em> seguita da una nuova riga <em>vboxadd</em>.<br />
Salvate e chiudete il file. Apriamo (da sudo) il file <strong>fstab</strong>, sempre sotto <em>/etc</em> aggiungiamo alla fine della lista (scrivetelo come segue, con rispettando gli spazi e tutto in minuscolo)</p>
<pre class="brush: bash; title: ; notranslate">lamp /var/www vboxsf defaults 0 0</pre>
<p>salvate ed uscite, dal prossimo riavvio avremo la cartella <em>/var/www</em> residente sul disco fisico <em>C:\lamp</em> in windows, dove sarà modificabile a piacere sia da Windows con il vostro <strong>ambiente di sviluppo</strong>, sia da Linux, il tutto senza aver mai trasferito nulla.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2010/02/virtual-lamp-con-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: Aggiungere il pulsante per Google Buzz</title>
		<link>http://www.tosolini.info/2010/02/wordpress-aggiungere-il-pulsante-per-google-buzz/</link>
		<comments>http://www.tosolini.info/2010/02/wordpress-aggiungere-il-pulsante-per-google-buzz/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 19:31:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google buzz]]></category>
		<category><![CDATA[social network]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=96</guid>
		<description><![CDATA[Google Buzz oramai è sulla bocca di tutti per essere l&#8217;anti Facebook della situazione. Come non sfruttare questa situazione per il proprio blog, visto che il servizio è fortemente orientato ai social network. Tecnicamente Google Buzz è integrato in buona parte in Google Reader, l&#8217;aggregatore di RSS Feed, per cui possiamo sfruttare questa parentela per [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Google Buzz</strong> oramai è sulla bocca di tutti per essere l&#8217;anti <strong>Facebook</strong> della situazione. Come non sfruttare questa situazione per il proprio blog, visto che il servizio è fortemente orientato ai <strong>social network</strong>. Tecnicamente Google Buzz è integrato in buona parte in <a href="http://www.google.it/reader/">Google Reader</a>, l&#8217;aggregatore di <strong>RSS Feed</strong>, per cui possiamo sfruttare questa parentela per creare un pulsante apposito. Dovrete solo assicurarvi che nel vostro <a href="https://mail.google.com/mail/#buzz">profilo Buzz</a> (in alto sotto la voce &#8220;connected sites&#8221;) sia stato aggiunto Google Reader.</p>
<p>Ovviamente occorre avere una conoscenza minima di <strong>PHP</strong> e del sistema WordPress, ma basterà aggiungere poche righe nel punto giusto, attraverso l&#8217;editor di WordPress (nella sezione Appearance -&gt; Editor ).<br />
Innanzitutto ci serve il pulsante, ne possiamo creare uno personalizzato, oppure usare l&#8217;icona di Google che vedete qui a fianco <a href="http://tosolini.info/web/wp-content/uploads/2010/02/buzz-icon2.png" rel="lightbox[96]" title="buzz-icon2"><img class="alignnone size-full wp-image-97" title="buzz-icon2" src="http://tosolini.info/web/wp-content/uploads/2010/02/buzz-icon2.png" alt="" width="16" height="16" /></a> .</p>
<p>Ora passiamo al Codice:</p>
<pre class="brush: php; title: ; notranslate">
&lt;a rel=”nofollow” target=”_blank” href=”http://www.google.com/reader/link?url=&lt;?php echo get_permalink() ?&gt;&amp;title=&lt;?php the_title();?&gt;&amp;snippet=&lt;?php the_excerpt(); ?&gt;&amp;srcURL=&lt;?php echo get_settings(‘home’); ?&gt;” Title=”Share this via Google Buzz&gt;
&lt;img=&quot;&lt;?php echo bloginfo('template_url');&quot;&gt;/images/buzz-icon2.gif&quot;/&gt;
&lt;/a&gt; Google Buzz
</pre>
<p>Guardando tra le varie utility proposte in Google Reader è possibile aggiungere una <a href="http://www.google.it/reader/view/#friends-manager-page">piccola Clip</a> (in fondo alla pagina alla voce &#8220;Add a clip&#8221;) al proprio sito, con le proprie &#8220;share&#8221; che poi fanno parte di Google Buzz</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2010/02/wordpress-aggiungere-il-pulsante-per-google-buzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare un foglio di Excel da PHP</title>
		<link>http://www.tosolini.info/2009/08/creare-un-foglio-di-excel-da-php/</link>
		<comments>http://www.tosolini.info/2009/08/creare-un-foglio-di-excel-da-php/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 14:59:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[soluzioni]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=48</guid>
		<description><![CDATA[Dalla versione di Office 97, il foglio di calcolo Excel è in grado di leggere nelle tabelle in HTML le righe e colonne. Procedendo concettualmente al contrario, possiamo creare al volo un foglio di excel giocando con i tag TABLE di HTML. Di seguito un pratico esempio: Nella riga 3  indichiamo lo scambio tra HTML [...]]]></description>
			<content:encoded><![CDATA[<p>Dalla versione di Office 97, il foglio di calcolo Excel è in grado di leggere nelle tabelle in HTML le righe e colonne. Procedendo concettualmente al contrario, possiamo creare al volo un foglio di excel giocando con i tag TABLE di HTML. Di seguito un pratico esempio:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
    $filename=&quot;spreadsheet.xls&quot;;
    header (&quot;Content-Type: application/vnd.ms-excel&quot;);
    header (&quot;Content-Disposition: inline; filename=$filename&quot;);
?&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;My XLS title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;?
    for ($i=1;$i &lt; 100; $i++)
    {
        echo &quot;&lt;tr&gt;&quot;;
        for ($j=1; $j&lt;100;$j++)
        {
            $a = $i * $j;
            echo &quot;&lt;td&gt;$a&lt;/td&gt;&quot;;
        }
        echo &quot;&lt;/tr&gt;&quot;;
    }
?&gt;
&lt;/table&gt;
&lt;/body&gt;&lt;/html&gt;
</pre>
<p>Nella riga 3  indichiamo lo scambio tra HTML e Excel nel formato<br />
Nella riga 4 spcecifichiamo di scaricare il file anzichè aprirlo all&#8217;interno del browser.</p>
<p>Come si può vedere nell&#8217;esempio si può giocare con i tag  della famiglia TABLE , e prelevare dati direttamente da MySQL per generare un foglio di Excel, ad esempio un listino di un ecommerce.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2009/08/creare-un-foglio-di-excel-da-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Fatal error: session_start(): Failed to initialize storage module</title>
		<link>http://www.tosolini.info/2009/08/php-fatal-error-session_start-failed-to-initialize-storage-module/</link>
		<comments>http://www.tosolini.info/2009/08/php-fatal-error-session_start-failed-to-initialize-storage-module/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 13:58:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[errore]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[soluzione]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://tosolini.info/web/?p=41</guid>
		<description><![CDATA[A seguito di una installazione fresh di un Linux server dedicato a funzioni di Webserver mi sono imbattuto nel seguente errore: Fatal error: session_start(): Failed to initialize storage module La soluzione è stata quella di modificare alcune impostazioni nel file php.ini per la variabile session.save_handler con valore da &#8220;user&#8221; a &#8220;files&#8221;. modificandolo in Nel caso [...]]]></description>
			<content:encoded><![CDATA[<p>A seguito di una installazione fresh di un Linux server dedicato a funzioni di Webserver mi sono imbattuto nel seguente errore:</p>
<h3>Fatal error: session_start(): Failed to initialize storage module</h3>
<p>La soluzione è stata quella di modificare alcune impostazioni nel file php.ini per la variabile session.save_handler con valore da &#8220;user&#8221; a &#8220;files&#8221;.</p>
<pre class="brush: plain; title: ; notranslate">
[Session]
; Handler used to store/retrieve data.
session.save_handler = user
</pre>
<p>modificandolo in</p>
<pre class="brush: plain; title: ; notranslate">
[Session]
; Handler used to store/retrieve data.
session.save_handler = files
</pre>
<p>Nel caso in cui non possiate intervenire direttamente sul file php.ini potrete provare a forzare la funziona attraverso il file .htaccess immettendo queste due righe</p>
<pre class="brush: plain; title: ; notranslate">
RewriteEngine On
php_value session.save_handler files
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tosolini.info/2009/08/php-fatal-error-session_start-failed-to-initialize-storage-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

