2 de des. 2008

Jetty php

Fa uns dies que vaig comentar que faria aquest article. A continuació us detallo com fer que el Jetty interpreti els "scripts" de php.

El primer que hem de fer és descarregar-nos el Jetty, ho podem fer des d'aquest enllaç:
http://dist.codehaus.org/jetty/jetty-6.1.14/jetty-6.1.14.zip
Un cop descarregat, el descomprimim al disc dur.
Per poder executar fitxers de php necessitarem el "Quercus", una implementació 100% java del php.

El descarreguarem de http://quercus.caucho.com/download/quercus-3.2.1.war
Un cop al disc, renombrem el fitxer quercus-3.2.1.war a php.zip,
descomprimim el fitxer i copiem la carpeta php a jetty-6.1.14/webapps.
Ens situem a dins de la carpeta del jetty i executem la següent comanda.

java -jar start.jar



obrim el navegador i posem la següent adreça http://localhost:8080/php/ .
Ara hem de veure el següent:



Bé, ja hem aconseguit fer funcionar un script de php dins un entorn d'execució java.

Ara el pròxim pas, es fer que funcioni la connexió a una base de dades, per aquest article escollirem el mysql.
El primer que farem és aturar l'execució del Jetty, per fer-ho des de la consola on hem executat java -jar start.jar premerem les tecles Ctrl+c.

Per poder fer funcionar el mysql en un projecte java necessitem el connector jdbc de mysql, que el podem descarregar del web de mysql:
http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.8.zip/from/http://mysql.rediris.es/
Un cop al disc, el descomprimim i copiem el fitxer mysql-connector-java-5.0.8-bin.jar a la carpeta jetty-6.1.14\webapps\php\WEB-INF\lib
Creem el fitxer jetty-6.1.14\webapps\php\WEB-INF\jetty-env.xml amb aquest contingut:



jdbc/MyDataSource


jdbc:mysql://localhost:3306/prova
root
alex





Aquí heu de configurar les dades de connexió a la base de dades segons el vostre cas.
Editem el fitxer fitxer jetty-6.1.14\webapps\php\WEB-INF\web.xml i hem d'afegir això


jdbc/MyDataSource
javax.sql.DataSource
Container


database
jdbc/MyDataSource


a la part final abans del tancament de web-app.
Ara crearem el nostre escript que es connecti a la base de dades amb unes instruccions bàsiques.
Creem el fitxer jetty-6.1.14\webapps\php\prova.php*


$host="localhost";
$database="prova";
$username="root";
$password="alex";
$db = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM area";
$sth = $db->prepare($sql);
$sth->execute();
$rows = $sth->fetchAll( PDO::FETCH_ASSOC );
print_r($rows);


*Heu de posar els tags d'inici i fi de php, el blogger no me'ls deixa escriure.

Tornem a executar java -jar start.jar
i obrim el navegador a http://localhost:8080/php/prova.php
En el meu cas veig:













En els pròxims dies publicaré com fer que funcioni el zend framework en aquest entorn.

1 de des. 2008

Pampalluguejos ubuntu

Una cosa molt molesta que m'he trobat al treballar amb Ubuntu, ha estat que quan ha d'emetre un senyal sonor, per exemple quan borres i no queda res per borrar, és que Pampallugueja la pantalla.

Per treure aquesta funcionalitat s'ha de obrir el menú "Sistema >preferències > So"

A la finestra que surt, s'ha d'escollir la pestanya "Sons", i al llistat d'opcions i veureu a "alerta visual", doncs en aquesta s'ha de canviar el valor per "inhabilita".