<?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>Programmazione Web &#187; Web Server</title>
	<atom:link href="http://www.programmazione-web.com/categorie/web-server/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmazione-web.com</link>
	<description>il Blog open degli sviluppatori del web!</description>
	<lastBuildDate>Mon, 25 Jul 2011 16:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Windows Azure e il cloud computing</title>
		<link>http://www.programmazione-web.com/windows-azure-e-il-cloud-computing.php</link>
		<comments>http://www.programmazione-web.com/windows-azure-e-il-cloud-computing.php#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:39:01 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[microsoft windows azure]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=372</guid>
		<description><![CDATA[Quante volte in quest&#8217;ultimo periodo avete sentito o letto il termine “cloud computing”? E quante volte appena dopo averlo letto, vi siete chiesti: “cos’è questo cloud computing?” È molto semplice da spiegare: il cloud computing è, in questo momento, il futuro del nostro modo di lavorare. Le grandi aziende che forniscono servizi su internet si [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Verdana} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Verdana; min-height: 12.0px} span.s1 {font: 10.0px 'Lucida Grande'} -->Quante volte in quest&#8217;ultimo periodo avete sentito o letto il termine “<strong>cloud computing</strong>”? E quante volte appena dopo averlo letto, vi siete chiesti: “cos’è questo cloud computing?” È molto semplice da spiegare: il <strong>cloud computing</strong> è, in questo momento, il futuro del nostro modo di lavorare.<br />
Le grandi aziende che forniscono servizi su internet si sono dotate di computer talmente potenti e talmente “spaziosi” da rendersi conto di poter offrire ai propri clienti la possibilità di usare le loro macchine semplicemente tramite una connessione internet, ovunque essi siano. All’inizio c’erano i servizi di storage di dati (ad esempio Amazon S3) ed ora siamo arrivati al sistema operativo che gira sulla “nuvola” con Windows Azure di Microsoft.</p>
<p>Cerchiamo di capire meglio come funziona questo tipo di cloud. La casa di Redmond ha creato un CED con una potenza di calcolo molto elevata, capace di ospitare una notevole quantità di dati, sul quale gira un sistema operativo sviluppato ad hoc che prende il nome di Windows Azure.<br />
Ma a chi serve <strong>Windows Azure</strong>? Serve a parecchie persone, siano esse sviluppatori, piccole e medie aziende ma anche a privati, che magari cercano un&#8217;alternativa ai servizi di hosting a basso costo.</p>
<p>Analizziamo un esempio che rende l&#8217;idea del funzionamento di Azure. Una piccola azienda decide di sviluppare un software gestionale, accessibile via web dai suoi potenziali utenti. Inizia quindi a sviluppare internamente il programma fino ad arrivare alla fase di test. Da quel momento, per essere presente su internet, bisogna scegliere se affidarsi ad un servizio di housing o comprare una macchina dedicata e installarla in sede.<br />
In tutti e due i casi sarebbe necessario acquistare un server, occuparsi della manutenzione ordinaria e straordinaria, dotarsi di una buona connessione internet, aggiornare sempre il sistema operativo con le patch che escono ogni mese, acquistare le licenze dei programmi installati ecc.. Tutto questo senza sapere se l’applicazione avrà successo o meno. Nel caso in cui questa spopoli su web, bisognerà affrontare in breve tempo un cambiamento di server, perché quello scelto all&#8217;inizio sarà ormai sottodimensionato per la notevole affluenza raggiunta dall’applicazione. In caso contrario, se l&#8217;applicazione è un flop clamoroso, l&#8217;azienda si ritroverà ad aver investito un’ingente somma di denaro per l&#8217;acquisto di una macchina configurata con tanto di licenze, che non servirà a nulla.</p>
<p>&nbsp;</p>
<p>E se invece tutto questo fosse fatto con Azure? Lo scenario sarebbe il seguente. Bisogna fare l’iscrizione sul portale dedicato, ambientarsi un po&#8217; per scoprire la piattaforma attraverso i tutorial presenti sulla knowledge base di Microsoft e iniziare a configurare la propria macchina.<br />
Si sceglie un biprocessore, 3,5 gb di Ram, 490Gb di spazio su disco, a 0,24$ l&#8217;ora. Si, avete letto bene, neanche 25 centesimi di dollaro all&#8217;ora. E inoltre l&#8217;ora è calcolata in base al reale utilizzo. Si viene quindi tariffati solo per il reale utilizzo della macchina virtuale in cloud. Una volta creato l&#8217;hardware, svilupparci sopra è semplicissimo. Come per la configurazione del server (che si fa sul proprio browser, comodamente seduti nel proprio ufficio), si configura l&#8217;ambiente di sviluppo. Possiamo usare Windows Server 2008 come sistema operativo, Visual Studio 2008 (o Visual Studio 2010 RC) come tool di sviluppo, Sql Server 2005 e logicamente IIS 7 (senza neanche doverlo scegliere, c&#8217;è già). Ecco creato il nostro server virtuale, gestito da browser, pronto per sviluppare e comodamente raggiungibile da qualsiasi parte del mondo con una semplice connessione internet. Da questo momento, qualunque cosa in più ci servisse, è comodamente addizionabile con un click e ci verrà tariffata dal momento dell&#8217;utilizzo. La scalabilità immediata di Azure è uno dei punti a suo favore. Il sistema può infatti adattarsi alle esigenze del cliente anche solo per 2 giorni o per 2 ore, il tempo di provare o fare un esperimento per vedere se proseguire su una strada o meno.</p>
<p>E quindi Windows Azure è utilizzabile solo con gli strumenti di sviluppo Microsoft? No. Ecco un altro punto a favore del cloud di Microsoft: è possibile utilizzare una notevole quantità di tool di sviluppo semplicemente installando i pacchetti di compatibilità, che troveremo nella gestione del nostro neonato server virtuale. Siamo soliti sviluppare con Eclipse? Nessun problema, c&#8217;è il modulo Eclipse per Azure e, in pochi click, avremo gli strumenti che siamo abituati ad usare.</p>
<p>In questo modo l&#8217;azienda non deve preoccuparsi della manutenzione, di aggiornare il sistema operativo, i tool di sviluppo, di cercare le patch in giro per internet, di fare backup, di pagare la bolletta per l&#8217;energia elettrica del server. Esce un service pack per Windows Server 2008? Al nostro login lo troveremo già installato sul nostro server virtuale. Tutto quello che viene realizzato in Azure, viene quindi tariffato all&#8217;utente, dall&#8217;utilizzo della potenza computazionale alla banda utilizzata per le transazioni, tutto calcolato al centesimo (al minuto per la potenza computazionale, al GB per le transazioni). Non si paga niente di più di quello che si usa realmente. Se poi pensiamo all’utilizzo di Azure in una grande azienda che ha un CED con 20 server in rack, 20 licenze per i sistemi operativi, gruppi di continuità, temperatura della sala server sempre a 16°, unità di backup, sorveglianza H24, router e firewall da bilanciare con il carico dati, potremo allora immaginare a quale risparmio in termini economici porterà la scelta di affidarsi al cloud.</p>
<p>Ecco la strada che oggi l&#8217;informatica sta seguendo. Come detto da Nicholas Carr, è in corso lo stesso processo che a fine ottocento si sviluppò in seguito all’avvento della corrente elettrica. Appena venne introdotta, tutte le aziende si dotarono infatti di costosi generatori, diventando produttrici della propria energia elettrica. Con il passare del tempo, sorsero le prime aziende che producevano più energia di quella che serviva loro, iniziando a rivenderla. In breve tempo acquistare l&#8217;energia da fuori senza produrla, divenne molto più conveniente e nessuno produsse più l&#8217;energia in casa. Lo stesso ora accade per i computer. In futuro non ci sarà più bisogno di avere un pc con hard disk e sistema operativo installato, basterà una connessione internet e tutto sarà sul web.</p>
<p>&nbsp;</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fwindows-azure-e-il-cloud-computing.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/windows-azure-e-il-cloud-computing.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5 su IIS7 nessun problema!!!</title>
		<link>http://www.programmazione-web.com/php-5-su-iis7-nessun-problema.php</link>
		<comments>http://www.programmazione-web.com/php-5-su-iis7-nessun-problema.php#comments</comments>
		<pubDate>Sat, 10 Oct 2009 22:46:24 +0000</pubDate>
		<dc:creator>mtagliani</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Windows IIS]]></category>
		<category><![CDATA[blog wordpress]]></category>
		<category><![CDATA[DotNetNuke]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Internet Information Services (IIS)]]></category>
		<category><![CDATA[linguaggio php]]></category>
		<category><![CDATA[Microsoft Web Platform]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sviluppo software]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=266</guid>
		<description><![CDATA[Installare PHP 5 sul web server IIS tramite il tool Microsoft Web Platform 2.0]]></description>
			<content:encoded><![CDATA[<p>Molti  programmatori web si saranno sicuramente trovati davanti alla necessità di configurare i propri server di sviluppo,  di testing o di produzione per le loro applicazioni ma chi ha avuto la necessità di installare PHP sul proprio IIS, non ha sicuramente avuto vita facile&#8230; Adesso non è più così&#8230; Vi presento un nuovo tool distribuito da Microsoft per la configurazione della nostra piattaforma web basata su IIS: <strong> <a title="Microsoft Web Platform" href="http://www.microsoft.com/web/downloads/platform.aspx" target="_blank">Microsoft Web Platform 2.0<br />
</a></strong></p>
<p>Scaricate a questo <a title="Microsoft Web Platform" href="http://www.microsoft.com/web/downloads/platform.aspx">link </a>l&#8217;installer della nostra Web Platform 2.0 e procedete con l&#8217;installazione</p>
<div>
<p><img class="size-full wp-image-268" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/1_INSTALL.gif" alt="Installazione Microsoft Web Platform 1" width="251" height="99" /></div>
<p>ancora un istante ..</p>
<div><img class="size-full wp-image-269" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/2_INSTALL.gif" alt="Installazione Mircosoft Web Platform" width="332" height="245" /></div>
<p>e il gioco è fatto.</p>
<p>Adesso non ci resta che aprire la <strong>Gestione di Internet Information Services (IIS)</strong></p>
<p><em>START &gt;&gt; Strumenti di Amministrazione &gt;&gt; Gestione  Internet Information Services (IIS)</em></p>
<p>cliccare sull&#8217;icona che è stata automaticamente creata nel pannello di gestione.</p>
<div style="overflow: hidden">
<p><img class="size-large wp-image-293" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/2IIS_CONTROL_PANEL-1024x646.gif" alt="2IIS_CONTROL_PANEL" width="717" height="452" /></p>
<p>Selezioniamo  la check-box relativa a PHP</p></div>
<div>
<p><img class="size-full wp-image-271" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/PHP_INSTALL.gif" alt="Installazione PHP 5.2.11" width="326" height="243" /></div>
<p>e procediamo con l&#8217;installazione&#8230;</p>
<div>
<p><img class="size-full wp-image-272" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/1_PHP_INSTALL.gif" alt="Installazione PHP 5.2.11" width="303" height="209" /></div>
<div><img class="size-full wp-image-273" src="http://www.programmazione-web.com/wp-content/uploads/2009/10/2_PHP_INSTALL.gif" alt="Installazione PHP 5.2.11" width="301" height="207" /></div>
<p>Finita l&#8217;istallazione potrebbe essere necessaria qualche piccola modifica al file di configurazione <strong>php.ini </strong>per soddisfare tutte le nostre esigenze, ma niente di apocalittico.</p>
<p>Attraverso questo tool è possibile installare sul nostro web server anche applicazioni  web  e cms noti, come DotNetNuke, Drupal, Word Press e tanti altri con pochi click.</p>
<p>Personalmente ritengo che <a href="http://www.thewebhostinghero.com/tutorials/install-iis7-php5-mysql5-win2008server-pt2.html" target="_blank">l&#8217;installazione manuale </a>sia molto più appagante e  istruttiva dell&#8217;uso di questo tool, ma una volta fatte le proprie esperienze risulta uno strumento di grande resa e produttività.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fphp-5-su-iis7-nessun-problema.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/php-5-su-iis7-nessun-problema.php/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Installazione e configurazione di Apache, PHP e Oracle</title>
		<link>http://www.programmazione-web.com/apache-php-oracle-installazione-configurazione.php</link>
		<comments>http://www.programmazione-web.com/apache-php-oracle-installazione-configurazione.php#comments</comments>
		<pubDate>Mon, 07 Jul 2008 19:42:33 +0000</pubDate>
		<dc:creator>ssaravalli</dc:creator>
				<category><![CDATA[DBMS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[dbms oracle]]></category>
		<category><![CDATA[debian oracle php apache2]]></category>
		<category><![CDATA[installazione apche php oracle]]></category>
		<category><![CDATA[installazione oracle su linux]]></category>
		<category><![CDATA[linux apache php oracle]]></category>
		<category><![CDATA[linux web server]]></category>
		<category><![CDATA[oracle linux web server]]></category>
		<category><![CDATA[web server oracle]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=63</guid>
		<description><![CDATA[Questa guida nasce allo scopo di realizzare un'alternativa alla classica architettura LAMP (Linux, Apache, MySQL, PHP) in cui il DBMS MySQL viene sostituito da Oracle Database Server 10g in versione XE (Express Edition), liberamente scaricabile ed utilizzabile da chiunque.]]></description>
			<content:encoded><![CDATA[<h3>Introduzione</h3>
<p>In genere si sente spesso parlare di LAMP (Linux, Apache, MySQL e PHP), con riferimento alla famosa e diffusa piattaforma open per lo sviluppo di applicazioni web based (per informazioni complete e dettagliate sull&#8217;impostazione di un sistema LAMP vi invito a leggere la guida <a title="Linux, Apache, MySQL e PHP" href="http://guide.debianizzati.org/index.php/LAMP:_Linux%2C_Apache%2C_MySQL_e_PHP">LAMP: Linux, Apache, MySQL e PHP</a>). In questa guida, invece, vorrei proporvi una variante di tale piattaforma in cui il DBMS MySQL viene sostituito da Oracle Server 10g Express Edition, una versione free del più blasonato DBMS commerciale, disponibile anche per il pinguino, seppur con alcune limitazioni di cui parlerò in seguito. In questa guida si focalizzerà l&#8217;attenzione sull&#8217;installazione e la configurazione di <a class="external text" title="http://httpd.apache.org/" rel="nofollow" href="http://httpd.apache.org/">Apache</a>, <a class="external text" title="http://www.php.net/" rel="nofollow" href="http://www.php.net/">PHP</a> ed <a class="external text" title="http://www.oracle.com/technology/software/products/database/xe/index.html" rel="nofollow" href="http://www.oracle.com/technology/software/products/database/xe/index.html">Oracle Database Server 10g XE</a> e sulle modalità di interazione tra questi software, in modo tale da disporre di una piattaforma completa per lo sviluppo di applicazione web-based. Tutti i passaggi indicati in questa guida sono stati eseguiti su un sistema Debian GNU/Linux 4.0 R3 Netinst. Buona lettura!</p>
<h3>Oracle Database Server 10g XE</h3>
<h3>Installazione</h3>
<p>Sul sito di Oracle Corp., previa procedura di registrazione, sono disponibili i pacchetti per Debian, Ubuntu, Suse Novell, Red Hat/Fedora e Mandriva di Oracle Database Server 10g XE con una serie di limitazioni rispetto alla versione a pagamento:</p>
<ul>
<li> se Oracle Database Server 10g XE viene installato su un computer con più di una CPU (incluse anche le CPU dual core), esso utilizzerà esclusivamente le risorse di una sola CPU</li>
<li> su un singolo computer può essere effettuata l’installazione di una sola copia di Oracle Database Server 10g XE; in aggiunta, gli utenti possono far girare una sola istanza del database Oracle su ciascun computer. Quest’ultima limitazione può comunque essere aggirata in quanto, anche sulla stessa installazione di Oracle Database Server 10g XE possono convivere più schemi, ciascuno dei quali contenente le proprie tabelle. Di fatto, è come se sulla stessa macchina fossero presenti più database simultaneamente</li>
<li> la quantità massima di dati contenuta in un database Oracle Database Server 10g XE non può superare i 4 gigabytes di spazio disco, tuttavia se i dati degli utenti dovessero superare tale quota, il sistema invierebbe l’errore ORA-12592</li>
<li> la quantità massima di memoria RAM che Oracle Database Server 10g XE utilizza non può eccedere un gigabyte, anche se ne è disponibile una quantità maggiore. La quantità di memoria totale utilizzata dal server Oracle viene ricavata come somma della System Global Area (SGA) e della Program Global Area (PGA) aggregata</li>
<li> il protocollo HTTPS (Secure HTTP) non è supportato nativamente dal listener HTTP presente in Oracle 10g XE, quindi è necessario far uso di un web server, come Apache, che supporti tale protocollo</li>
</ul>
<p>Limitazioni a parte, Oracle Database Server 10g XE resta, a mio avviso, un buon prodotto utilizzato, tra l&#8217;altro, anche dalla <a href="http://www.oracle.com/technologies/virtualization/index.html">recente soluzione di virtualizzazione</a> proposta dalla stessa Oracle.Una volta effettuato il download del pacchetto, l&#8217;installazione di Oracle Database Server 10g XE si riduce al seguente comando:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># dpkg –i oracle-xe<span class="nu0">-10.2</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="nu0">-1.0</span>.deb</span></div>
</li>
</ol>
</div>
<p>L&#8217;installazione di Oracle Database Server 10g XE richiede la presenza di alcuni pacchetti che vanno installati a parte, se non presenti, con il seguente comando:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># apt-get <span class="kw2">install</span> <span class="kw2">bc</span> libaio1 libxml2 libxml2-dev libxml2-utils python-libxml2</span></div>
</li>
</ol>
</div>
<h3><span class="mw-headline">Configurazione</span></h3>
<p>Al termine dell&#8217;installazione, bisogna configurare opportunamente Oracle Database Server 10g XE lanciando lo script <strong>oracle-xe</strong> con l&#8217;opzione <em>“configure”</em>. Tale script si trova nella directory <em>/etc/init.d/</em> e va eseguito sempre con i privilegi di root. Lo script in questione richiede interattivamente all&#8217;utente di fornire una serie di informazioni per eseguire Oracle Database Server 10g XE tra cui:</p>
<ul>
<li> il numero di porta (per default la 8080) tramite cui è possibile raggiungere l’interfaccia web (una sorta di Enterprise Manager, ma depotenziato) per la configurazione di Oracle all’url <a class="external free" title="http://127.0.0.1:8080/apex" rel="nofollow" href="http://127.0.0.1:8080/apex">http://127.0.0.1:8080/apex</a></li>
<li> il numero di porta (per default la 1521) su cui si mette in attesa il listener di Oracle Server, ossia un demone preposto a ricevere e servire le richieste di connessione al server Oracle, appunto. Se si dispone di un firewall potrebbe essere necessario configurarlo in modo tale da lasciare passare il traffico sulla porta 1521 o, diversamente, è possibile indicare allo script di configurazione di Oracle Server 10g XE di mettere il listener in ascolto su una porta differente</li>
<li> quando far partire l’istanza di Oracle Database Server 10g XE; si può decidere se schedulare la partenza di Oracle al boot del sistema, oppure se eseguirla manualmente di volta in volta (io ho optato per la prima opzione, per comodità, ma è pur sempre possibile realizzare uno script bash per gestire l&#8217;avvio e l&#8217;arresto di Oracle in modo manuale).</li>
</ul>
<h3>Impostazione delle variabili d’ambiente di Oracle Server 10g XE</h3>
<p>Al termine dell&#8217;installazione di Oracle Server 10g XE è necessario settare le variabili d&#8217;ambiente indispensabili per il funzionamento di tool come, ad esempio, SQL*Plus, utilizzato per le classiche operazioni di gestione del database come inserimenti, modifiche, cancellazioni, consultazioni di dati e così via. Per procedere in questo senso, è sufficiente lanciare uno script di configurazione delle variabili d’ambiente di Oracle Database Server 10g XE, disponibile in due distinte versioni dipendentemente dalla shell in uso. I due script si trovano nella directory <em>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/</em> e sono:</p>
<ul>
<li> oracle_env.sh (valido anche per le shell Bourne e Korn)</li>
<li> oracle_env.csh (valido anche per le shell C e tsh)</li>
</ul>
<p>Lo script <em>oracle_env.sh</em>, si occupa di impostare una serie di variabili d&#8217;ambiente tra cui:</p>
<ul>
<li> ORACLE_HOME: il path dell’installazione di Oracle 10g XE</li>
<li> ORACLE_SID: il nome del database (XE)</li>
<li> NLS_LANG: il character set, rilevato in base alle impostazioni in uso sul sistema operativo, che verrà utilizzato per la memorizzazione dei dati nel database</li>
<li> PATH: il percorso che porta alla directory contenente gli eseguibili di Oracle Server 10g XE</li>
<li> LD_LIBRARY_PATH: il percorso della directory contenente le librerie principali per Oracle Server 10g XE</li>
</ul>
<p><a name="Impostazione_delle_variabili_d.E2.80.99ambiente_di_Oracle_Server_10g_XE"></a></p>
<blockquote><p><strong>ATTENZIONE</strong>: Va ricordato che riavviando il computer, i settaggi impostati con lo script <em>oracle_env.sh</em> vengono persi, perciò è buona norma inserire la stringa:</p>
<p><em>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh</em></p>
<p>all’interno del file <em>.bash_profile</em>; inoltre, per poter mantenere le stesse impostazioni all’apertura di ogni nuova shell durante la sessione corrente, è conveniente aggiungere l&#8217;istruzione precedente anche all’interno del file <em>.bashrc</em> (sia per il proprio utente, sia per l&#8217;utente root).</p></blockquote>
<p>Bene, l&#8217;installazione e la configurazione di Oracle Database Server 10g XE sono complete! Per assicurarsi che Oracle sia partito correttamente, è possibile lanciare il comando seguente di cui riporto anche un esempio di output:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># /etc/init.d/oracle-xe status</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">LSNRCTL <span class="kw1">for</span> Linux: Version <span class="nu0">10.2</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="nu0">.0</span> &#8211; Beta on <span class="nu0">14</span>-FEB<span class="nu0">-2007</span> <span class="nu0">10</span>:<span class="nu0">14</span>:<span class="nu0">01</span></div>
</li>
<li class="li1">
<div class="de1">Copyright <span class="br0">&#40;</span>c<span class="br0">&#41;</span> <span class="nu0">1991</span>, <span class="nu0">2005</span>, Oracle. All rights reserved.</div>
</li>
<li class="li2">
<div class="de2">Connecting to <span class="br0">&#40;</span><span class="re2">DESCRIPTION=</span><span class="br0">&#40;</span><span class="re2">ADDRESS=</span><span class="br0">&#40;</span><span class="re2">PROTOCOL=</span>TCP<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="re2">HOST=</span>localhost<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="re2">PORT=</span><span class="nu0">1521</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">STATUS of the LISTENER</div>
</li>
<li class="li1">
<div class="de1">————————</div>
</li>
<li class="li1">
<div class="de1">Alias LISTENER</div>
</li>
<li class="li1">
<div class="de1">Version TNSLSNR <span class="kw1">for</span> Linux: Version <span class="nu0">10.2</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="nu0">.0</span> &#8211; Beta</div>
</li>
<li class="li2">
<div class="de2">Start Date <span class="nu0">14</span>-FEB<span class="nu0">-2007</span> <span class="nu0">10</span>:<span class="nu0">13</span>:<span class="nu0">44</span></div>
</li>
<li class="li1">
<div class="de1">Uptime <span class="nu0">0</span> days <span class="nu0">0</span> hr. <span class="nu0">0</span> min. <span class="nu0">17</span> sec</div>
</li>
<li class="li1">
<div class="de1">Trace Level off</div>
</li>
<li class="li1">
<div class="de1">Security ON: Local OS Authentication</div>
</li>
<li class="li1">
<div class="de1">SNMP OFF</div>
</li>
<li class="li2">
<div class="de2">Default Service XE</div>
</li>
<li class="li1">
<div class="de1">Listener Parameter File /usr/lib/oracle/xe/app/oracle/product/<span class="nu0">10.2</span><span class="nu0">.0</span>/server/network/admin/listener.ora</div>
</li>
<li class="li1">
<div class="de1">Listener Log File /usr/lib/oracle/xe/app/oracle/product/<span class="nu0">10.2</span><span class="nu0">.0</span>/server/network/log/listener.log</div>
</li>
<li class="li1">
<div class="de1">Listening Endpoints Summary…</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="re2">DESCRIPTION=</span><span class="br0">&#40;</span><span class="re2">ADDRESS=</span><span class="br0">&#40;</span><span class="re2">PROTOCOL=</span>tcp<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="re2">HOST=</span>localhost<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="re2">PORT=</span><span class="nu0">1521</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">Services Summary…</div>
</li>
<li class="li1">
<div class="de1">Service “PLSExtProc” has <span class="nu0">1</span> instance<span class="br0">&#40;</span>s<span class="br0">&#41;</span>.</div>
</li>
<li class="li1">
<div class="de1">Instance “PLSExtProc”, status UNKNOWN, has <span class="nu0">1</span> handler<span class="br0">&#40;</span>s<span class="br0">&#41;</span> <span class="kw1">for</span> this service…</div>
</li>
<li class="li1">
<div class="de1">The <span class="kw3">command</span> completed successfully</div>
</li>
</ol>
</div>
<p>Come si può notare dall&#8217;output dello script, il listener Oracle ha un&#8217;istanza attiva sulla porta 1521, come stabilito in fase di configurazione.</p>
<p><a name="Apache_e_PHP"></a></p>
<h3>Apache e PHP</h3>
<p>Il secondo passo consiste nell&#8217;installazione e configurazione di Apache e PHP con supporto al DBMS Oracle. È possibile installare il web server Apache e il linguaggio di scripting server side PHP tramite i pacchetti forniti dalla propria distribuzione, oppure ricompilare il tutto da sorgenti. La possibilità di compilare questi due software da sorgenti consente di scegliere autonomamente le opzioni di compilazione più adatte alle proprie necessità (ad esempio, nel caso di PHP, si può decidere di abilitare o meno il supporto per Oracle, oppure per MySQL, per LDAP, per la libreria di compressione zlib e così via).</p>
<h3>Installazione e configurazione di Apache</h3>
<p>I comandi seguenti consentono il download, la scompattazione e la compilazione del web server Apache sulla propria Linux box (ovviamente il numero di versione dei software indicati fa riferimento al periodo in cui questa guida è stata scritta):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">wget</span> -c http://apache.fis.uniroma2.it/httpd/httpd<span class="nu0">-2.2</span><span class="nu0">.3</span>.<span class="kw2">tar</span>.gz</div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">tar</span> xzf httpd<span class="nu0">-2.2</span><span class="nu0">.3</span>.<span class="kw2">tar</span>.gz /usr/<span class="kw3">local</span>/src/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw3">cd</span> /usr/<span class="kw3">local</span>/src/httpd<span class="nu0">-2.2</span><span class="nu0">.3</span>/</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re3"># ./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3">local</span>/apache2/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">make</span> &amp;amp;&amp;amp; <span class="kw2">make</span> install</span></div>
</li>
</ol>
</div>
<p>il parametro <em>&#8211;prefix</em> passato al comando <em>configure</em> richiede il path in cui verrà installato il web server Apache. Dalla documentazione del web server si legge che il percorso di default da indicare è /<em>usr/local/apache2/</em>. Le impostazioni del server web Apache risiedono nel file <em>httpd.conf</em> (che si trova nella directory <em>/usr/local/apache2/conf/</em> nel caso sia stata effettuata l&#8217;installazione da sorgenti); tale file può essere modificato, disponendo dei privilegi di root, con un qualsiasi editor di testi. Le direttive da impostare nel file httpd.conf per ottenere un funzionamento minimale del web server Apache sono:</p>
<ul>
<li> Listen: consente ad Apache di porsi in ascolto su un determinato indirizzo IP e/o porta</li>
<li> ServerName: il nome del server, o l&#8217;indirizzo IP e il numero di porta che il server utilizza per identificare se stesso</li>
<li> DocumentRoot: la directory contenente le pagine web delle proprie applicazioni. È anche possibile indicare un alias, o un link simbolico per puntare ad altre locazioni del filesystem.</li>
</ul>
<p>Una volta salvate le modifiche apportate al file httpd.conf, si può far partire Apache con il comando:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># /usr/<span class="kw3">local</span>/apache2/bin/apachectl start</span></div>
</li>
</ol>
</div>
<p>quindi, puntando il proprio browser web all&#8217;indirizzo specificato anche con la direttiva <strong>ServerName</strong> precedentemente citata, si dovrebbe poter visualizzare la pagina di benvenuto di Apache.</p>
<h3><span class="mw-headline">Installazione e configurazione di PHP</span></h3>
<p>PHP è un linguaggio di scripting server side che consente di integrare il codice HTML al fine di realizzare pagine web dinamiche, ossia il cui contenuto varia in base alle azioni intraprese dagli utenti. Poichè lo scopo di questa guida è quello di realizzare un server web in grado di interagire con una base di dati Oracle, è necessario che PHP disponga del supporto per tale DBMS. Ancora una volta, per poter abilitare esclusivamente le funzionalità richieste di PHP, si è optato per la compilazione dei sorgenti di questo software.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$ <span class="kw2">wget</span> -c http://it2.php.net/get/php5<span class="nu0">.1</span><span class="nu0">.6</span>.<span class="kw2">tar</span>.gz/from/it.php.net/mirror</div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">tar</span> xzf php<span class="nu0">-5.1</span><span class="nu0">.6</span>.<span class="kw2">tar</span>.gz /usr/<span class="kw3">local</span>/src/</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw3">cd</span> /usr/<span class="kw3">local</span>/src/php5<span class="nu0">.1</span><span class="nu0">.6</span>/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re3"># ./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3">local</span>/php \</span></div>
</li>
<li class="li1">
<div class="de1">&#8211;with-<span class="re2">apxs2=</span>/usr/<span class="kw3">local</span>/apache2/bin/apxs \</div>
</li>
<li class="li1">
<div class="de1">&#8211;with-config-file-<span class="re2">path=</span>/usr/<span class="kw3">local</span>/apache2/conf \</div>
</li>
<li class="li1">
<div class="de1">&#8211;with-<span class="re2">oci8=</span>/usr/lib/oracle/xe/app/oracle/product/<span class="nu0">10.2</span><span class="nu0">.0</span>/server \</div>
</li>
<li class="li1">
<div class="de1">&#8211;enable-sigchild \</div>
</li>
<li class="li2">
<div class="de2">&#8211;without-mysql</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">make</span> &amp;amp;&amp;amp; <span class="kw2">make</span> install</span></div>
</li>
</ol>
</div>
<p>Come si può notare dal codice precedente, il comando <em>configure</em> è seguito da una serie di opzioni da attivare nella successiva fase di compilazione:</p>
<ul>
<li> &#8211;prefix: permette di indicare in quale directory installare PHP</li>
<li> &#8211;with-apxs2: indica che si vuole compilare PHP come un moulo condiviso di Apache</li>
<li> &#8211;with-config-file-path: indica il percorso dei file di configurazione di Apache</li>
<li> <strong>&#8211;with-oci8</strong>: abilita il supporto per il DBMS Oracle di cui è necessario indicare il path dell&#8217;installazione.</li>
<li> &#8211;enable-sigchild: abilita il gestore dei segnali proprio di PHP</li>
<li> &#8211;without-mysql: disabilita il supporto al DBMS MySQL, non necessario, visto che si vuole utilizzare Oracle Database Server</li>
</ul>
<p>Il parametro<em> &#8211;with-oci8</em> richiede di specificare il percorso, sul filesystem locale, dell&#8217;installazione di Oracle Database Server, se tale installazione è stata effettuata sullo stesso server fisico di Apache e PHP. Se, invece, web server e db server risiedono su due macchine distinte, come spesso accade, allora sulla macchina che funge da server web deve essere installato l&#8217;<a class="external text" title="http://www.oracle.com/technology/tech/oci/instantclient/index.html" rel="nofollow" href="http://www.oracle.com/technology/tech/oci/instantclient/index.html">Oracle Instant Client</a>. I passi da seguire per installare tale software sono molto semplici:</p>
<ul>
<li> Scaricare, dal link sopra indicato, i package <strong>Basic</strong> e <strong>SDK</strong></li>
<li> Scompattare i file scaricati in una directory a piacere (ad es. /usr/local/src/)</li>
</ul>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">mkdir</span> /usr/<span class="kw3">local</span>/src/instantclient</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw3">cd</span> /usr/<span class="kw3">local</span>/src/instantclient</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">unzip</span> instantclient-basic-linux32<span class="nu0">-10.2</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="nu0">-20050713</span>.zip</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># <span class="kw2">unzip</span> instantclient-sdk-linux32<span class="nu0">-10.2</span><span class="nu0">.0</span><span class="nu0">.1</span><span class="nu0">-20050713</span>.zip</span></div>
</li>
</ol>
</div>
<ul>
<li> Creare un link simbolico alle librerie <em>libclntsh.so.10.1</em> e <em>libocci.so.10.1</em></li>
</ul>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">ln</span> -s libclntsh.so<span class="nu0">.10</span><span class="nu0">.1</span> libclntsh.so</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">ln</span> -s libocci.so<span class="nu0">.10</span><span class="nu0">.1</span> libocci.so</div>
</li>
</ol>
</div>
<p>La scompattazione dei due file precedenti crea una directory, contenente i files dell&#8217;Oracle Instant Client. Nel mio caso, tale directory si chiama <em>instantclient_11/</em>, ma il nome potrebbe differire, quindi <strong>ATTENZIONE</strong>. Il comando configure precedentemente lanciato per PHP va quindi modificato indicando, con la direttiva <em>&#8211;with-oci8</em>, il percorso in cui è stato installato l&#8217;Oracle Instant Client:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># ./configure &#8211;<span class="re2">prefix=</span>/usr/<span class="kw3">local</span>/php \</span></div>
</li>
<li class="li1">
<div class="de1">&#8211;with-<span class="re2">apxs2=</span>/usr/<span class="kw3">local</span>/apache2/bin/apxs \</div>
</li>
<li class="li1">
<div class="de1">&#8211;with-config-file-<span class="re2">path=</span>/usr/<span class="kw3">local</span>/apache2/conf \</div>
</li>
<li class="li1">
<div class="de1">&#8211;with-<span class="re2">oci8=</span>instantclient,/usr/<span class="kw3">local</span>/src/instantclient/instantclient_11/ \</div>
</li>
<li class="li2">
<div class="de2">&#8211;enable-sigchild \</div>
</li>
<li class="li1">
<div class="de1">&#8211;without-mysql</div>
</li>
</ol>
</div>
<p>Per concludere l’installazione di PHP è sufficiente inserire il percorso <em>/usr/local/php/lib/php</em> all’interno del file <em>php.ini</em>, il quale deve essere successivamente copiato dalla directory dei sorgenti di PHP nella directory <em>/usr/local/lib</em> e in <em>/usr/local/apache2/conf/</em> (se Apache è stato compilato da sorgenti). Se la compilazione di PHP è andata a buon fine, nel file httpd.conf sarà stata aggiunta in automatico la seguente stringa:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">LoadModule php5_module modules/libphp5.so</div>
</li>
</ol>
</div>
<p>Questa riga indica che Apache ha caricato il modulo per il funzionamento delle pagine web contenenti codice PHP (nella versione 5), tuttavia, per far sì che i browser web interpretino correttamente il codice PHP, è necessario modificare nuovamente il file httpd.conf di configurazione del web server Apache aggiungendo le due righe seguenti all&#8217;interno della sezione <em><br />
<ifmodule mime_module></ifmodule></em></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;ifmodule mime_module&gt;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">AddType application/x-httpd-php .php .phtml</div>
</li>
<li class="li1">
<div class="de1">AddType application/x-httpd-php-<span class="kw3">source</span> .phps</div>
</li>
<li class="li2">
<div class="de2">&lt;/ifmodule&gt;</div>
</li>
</ol>
</div>
<p>Di default, PHP offre il supporto per il DBMS MySQL, mentre nel caso di questa guida esso è stato sostituito con il supporto ad Oracle. Questo richiede di modificare alcune direttive presenti nel file <em>php.ini</em> per rendere PHP aderente alla sintassi utilizzata da Oracle. In particolare, MySQL ed Oracle considerano il carattere apice(’) come delimitatore di stringhe, o di date. Se si deve memorizzare una stringa all’interno di una tabella e questa stringa contiene una o più occorrenze del carattere apice, entrambi i DBMS ritorneranno un errore a meno di non eseguire un escape di tale carattere jolly. Questa operazione si rende, ovviamente, necessaria anche per i dati che gli utenti inseriscono, ad esempio, tramite i form di un sito e che poi andranno inseriti all’interno di un database, ma con una importante differenza: MySQL effettua l’escape del carattere apice tramite il carattere backslash (\), mentre Oracle utilizza un ulteriore apice. PHP consente l’escape del carattere apice, se presente nei dati passati tramite GET, POST o persino cookie, per mezzo delle seguenti direttive contenute nel php.ini:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">; Magic quotes <span class="kw1">for</span> incoming GET/POST/Cookie data.</div>
</li>
<li class="li1">
<div class="de1">magic_quotes_gpc = Off</div>
</li>
<li class="li1">
<div class="de1">; Magic quotes <span class="kw1">for</span> runtime-generated data, e.g. data from SQL, from <span class="kw3">exec</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, etc.</div>
</li>
<li class="li1">
<div class="de1">magic_quotes_runtime = Off</div>
</li>
<li class="li2">
<div class="de2">; Use Sybase-style magic quotes <span class="br0">&#40;</span>escape <span class="st0">&#8216; with &#8216;</span><span class="st0">&#8216; instead of &#8216;</span><span class="br0">&#41;</span>.</div>
</li>
<li class="li1">
<div class="de1">magic_quotes_sybase = On</div>
</li>
</ol>
</div>
<p>Impostando <em>magic_quotes_gpc</em> e <em>magic_quotes_sybase</em> a “<strong>On</strong>” si ottiene l’escape del carattere apice alla maniera di Oracle, mentre se <em>magic_quotes_sybase</em> viene impostato a “<strong>Off</strong>” si ottiene l’escape alla maniera di MySQL.</p>
<p><a name="PEAR"></a></p>
<h3>PEAR</h3>
<p>PHP mette a disposizione delle funzioni che consentono la comunicazione con una base di dati, ma esse dipendono strettamente dal tipo di DBMS con cui le pagine web scritte in PHP devono interagire. Per questo motivo è necessario servirsi del framework <a class="external text" title="http://pear.php.net/" rel="nofollow" href="http://pear.php.net/">PEAR</a> (PHP Extension and Application Repository), ossia un repository di package con cui è possibile estendere le funzionalità del linguaggio PHP. In particolare, il <a class="external text" title="http://pear.php.net/package/MDB2" rel="nofollow" href="http://pear.php.net/package/MDB2">package MDB2</a>, fornisce un’API che si frappone tra PHP e il DBMS sottostante, permettendo di slegare un&#8217;applicazione web dal DBMS in uso. Il vantaggio è che se dovesse rendersi necessaria una migrazione del database verso un DBMS diverso da quello attuale non vi sarà l&#8217;obbligo di modificare tutte le funzioni che PHP utilizza per interagire con la base di dati, ma solo il protocollo di comunicazione utilizzato (oci8 per Oracle, oppure mysql per MySQL, ecc).</p>
<blockquote><p><strong>ATTENZIONE</strong>:  Attualmente, il package MDB2 è da considerarsi come standard per la connessione, mediante il framework PEAR, di un&#8217;applicazione web-based scritta in PHP con un DBMS sottostante. Tale package è andato a sostituire l&#8217;ormai obsoleto <a class="external text" title="http://pear.php.net/package/DB" rel="nofollow" href="http://pear.php.net/package/DB">package DB</a> che si sconsiglia di utilizzare.</p></blockquote>
<h3><span class="mw-headline">Configurazione di PEAR</span></h3>
<p>Conclusa la configurazione di PHP, è necessario passare a quella del framework PEAR aggiungendo i pacchetti necessari per la comunicazione con una base di dati gestita tramite Oracle. Le API messe a disposizione da PEAR potranno poi essere sfruttate nelle proprie pagine PHP per slegarsi dal DBMS in uso. L&#8217;aggiunta di un pacchetto in PEAR si esegue con il comando:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">pear <span class="kw2">install</span> <span class="br0">&#91;</span>nome_pacchetto<span class="br0">&#93;</span></div>
</li>
</ol>
</div>
<p>tramite cui si può installare un package prelevandolo direttamente dai repository di PEAR. Di seguito vengono indicati i comandi necessari per installare sia il package DB, sia MDB2: Per il package DB (obsoleto):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># ./pear <span class="kw2">install</span> DB</span></div>
</li>
</ol>
</div>
<p>Per il nuovo package MDB2, invece:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3"># ./pear <span class="kw2">install</span> MDB2</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re3"># ./pear <span class="kw2">install</span> pear/MDB2#oci8</span></div>
</li>
</ol>
</div>
<p><strong>Nota Bene:</strong> è necessario ricordarsi di includere il file <em>MDB2.php</em>, oppure <em>DB.php</em>, a seconda del pacchetto installato, all&#8217;interno delle proprie pagine PHP per poter utilizzare le funzioni messe a disposizione da questo package per l&#8217;interazione con una base di dati Oracle. L&#8217;istruzione da utilizzare all&#8217;inizio del codice PHP è la seguente:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span> <span class="br0">&#40;</span><span class="st0">&#8216;MDB2.php&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p><a name="Conclusioni"></a></p>
<h3>Conclusioni</h3>
<p>Bene, a questo punto disponiamo di un web server con Apache e PHP configurati per comunicare con una base di dati Oracle sottostante e il tutto in salsa open source!</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fapache-php-oracle-installazione-configurazione.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/apache-php-oracle-installazione-configurazione.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

