PHP è un linguaggio di scripting generico ampiamente utilizzato, particolarmente adatto per lo sviluppo Web e può essere incorporato in HTML. PHP funziona su tutti i principali sistemi operativi, dalle varianti Unix tra cui Linux, FreeBSD, Ubuntu, Debian e Solaris a Windows e Mac OS X. Può essere utilizzato con tutti i principali server Web, inclusi Apache, Nginx, OpenBSD, solo per citarne alcuni; anche gli ambienti cloud come Azure e Amazon sono in aumento.
Di seguito sono riportati alcuni dei modi in cui uno script PHP può essere testato.
Test di script PHP semplici
1. Creare un file con i seguenti contenuti. Assegna al file un nome come myphpInfo.php:
<?php phpinfo(); ?>
2. Copiare il file nella directory DocumentRoot del server Web, ad esempio – /var/www/html. Potresti avere una directory DocumentRoot diversa a seconda del server web che stai utilizzando e della configurazione eseguita per esso.
3. Modifica le autorizzazioni in 755 (solo Linux):
# chmod 755 myphpInfo.php
4. Richiamare il file da un browser:
http://Fully-Qualified-Hostname:PORT#/phpinfo.php
Test di uno script PHP che utilizza le connessioni al database
1. Creare un file con i seguenti contenuti. Assegna al file un nome come phpdbchk.php:
<html> <head> <title>PHP Database Connection Test</title> </head> <body> <?php $username = 'scott'; $password = 'password'; $database_hostname = 'host.domain'; $database_port = 'port'; $database_sid = 'sid'; $database_srvc = 'servicename'; $easy_connect_syntax = '//'.$database_hostname.':'.$database_port.'/'.$database_srvc; // If Oracle 10g libraries are used by PHP try the new Easy Connect syntax. // No long connection string is needed. No tnsnames.ora file is required. // This does not work with standalone HTTP Server installations // $conn = OCILogon($username, $password, $easy_connect_syntax); // Use this line if TNS is setup properly in $ORACLE_HOME/network/admin $conn = OCILogon($username, $password, $database_sid); if (!$conn) { $e = ocierror(); print htmlentities($e['message']); exit; } $query = 'SELECT SYSDATE FROM DUAL'; $stmt = ociparse($conn, $query); ociexecute($stmt, OCI_DEFAULT); print 'Checking for the Date and Database Connectivity<br>'; $success = 0; while (ocifetch($stmt)) { print "Date: " . ociresult($stmt, "SYSDATE") . "<br>\n"; $success = 1; } if ($success) { print 'Success.<p>'; } else { print 'Failed to retrieve the date.<p>\n'; } OCILogoff($conn); print 'PHP Configuration<br>'; print '======================<p>'; phpinfo(); ?> </body> </html>
2. Imposta ORACLE_HOME e TNS_ADMIN sui valori corretti.
3. Copia il file nella directory DocumentRoot.
4. Modificare le variabili $username, $password, $database_hostname, $database_port, $database_sid e $database_srvc come necessario per il sistema di test
5. Modifica le autorizzazioni in 755 (solo Linux):
chmod 755 phpdbchk.php
6. Richiama il file da un browser:
http://Fully-Qualified-Hostname:PORT#/phpdbchk.php
Il seguente errore si verifica se ORACLE_HOME\network\admin\tnsnames.ora non è impostato correttamente o manca. Se manca, quello del database può essere copiato e utilizzato così com'è.
Warning: ocilogon(): _oci_open_server: ORA-12560: TNS:protocol adapter error in [oracle_home]\apache\apache\htdocs\phpdbchk.php on line 25 ORA-12560: TNS:protocol adapter error
Esecuzione dello script PHP in un'altra directory al di fuori di htdocs
Ad esempio, se desideri inserire script php in $ORACLE_HOME/Apache/Apache/phpsrc ed eseguirli da lì tramite browser, ad esempio http:FQHN:[port]/php/info.php, procedi come segue:
1. crea la directory $ORACLE_HOME/Apache/Apache/phpsrc
2. Copia lo script info.php in $ORACLE_HOME/Apache/Apache/phpsrc
3. Modifica httpd.conf e aggiungi questa riga:
Alias /php/ $ORACLE_HOME/Apache/Apache/phpsrc
4. Riavvia il server http e ora dovrebbe funzionare:
http:FQHN:[port]/php/info.phpNota :Lo script php info.php è stato usato come esempio, puoi usare qualsiasi nome tu scelga per i tuoi script php