Posts Tagged ‘WAMP’

Xampp

divendres, maig 13th, 2011

Xampp és un paquet gratuït que inclou Apache MySQL PHP Perl PEAR així com extensions de Zend.

És una distribució similar a Wamp però molt més complerta.

Està disponible per a Linux, Solaris, Mac OS X i Windows.

Adreça curta Twitter: http://wp.me/szeab-xampp

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Curs de programació en PHP – segona part

dissabte, febrer 19th, 2011

La primera part de l’article és aquí.

Programar és donar les instruccions a l’ordinador sobre què ha de fer i com s’ha de comportar.
Ha de tenir en compte tots els possibles escenaris i totes les possibilitat: controlar les accions de l’usuari com si prem una tecla, com coses que passen al sistema, com ara que no s’hagi acabat l’espai en disc abans d’escriure-hi un arxiu.
Això vol dir que el programador o la programadora haurà d’estar en tot i haurà de pensar en totes les possibilitats. Altrament en algun moment alguna cosa fallarà.
Els ordinadors no saben respondre a coses per a les que no els hem preparat, només per al que prèviament hem programat.

Com és un programa?

Un programa clàssic és un seguit d’instruccions seqüencials, és a dir seguides, com en un llibre, amb iteracions o bucles (per exemple quan el Bart Simpson escriu a la pissarra 100 vegades: no hackejaré la web de l’escola, un programa el que faria és: repeteix 100 vegades: escriu “no hackejaré la web de l’escola”) i condicionals (si passa això fes allò, si no fes això altre).

Un programa és molt similar a un llibre només que a aquells llibres que es van posar de moda quan jo era un bailet que es deien escull la teva pròpia aventura i en que tu podies triar: si esculls enfrontar-te als lladres i salvar a la noia passa a la plana 100, si escull avisar la policia a la 127).

La nostra feina és redactar el llibre (el programa) per a que després el lector (l’usuari) experimenti l’aventura (el programa).

Ara ja t’has instal·lat el WAMP o per separat el servidor web Apache, el PHP i el MySQL, la qüestió és que tens el servidor Web llest per a executar programes PHP.

Si no heu indicat a WAMP que s’iniciï quan arrenqui windows, llavors l’haureu d’executar manualment des del menú de programes.

Llavors us apareixerà una icona a la barra lateral dreta de windows (tray bar), al costat de l’hora. Des d’allí podreu parar, o reiniciar alguns serveis.

Reiniciar el servidor web Apache serà necessari quan canviem un paràmetre de configuració per a que Apache carregui la nova configuració i s’adoni dels canvis.

WAMP 2.1 incorpora el següent programari:

– Apache 2.2.17
– Php 5.3.3
– Mysql 5.1.53 (la versió de 64 bits)
– Mysql 5.5.8 (la versió de 32 bits)
– PhpMyadmin 3.2.0.1
– SQLBuddy 1.3.2

Ara és un bon moment per a explicar com funciona el procés de demanar una plana web a un servidor web.

Les planes web que visitem diàriament, són allotjades en servidors.

Quan nosaltres escrivim al nostre navegador una url, per exemple: http://www.php.net el navegador primer ha de descobrir quina és l’adreça ip d’aquesta plana, és a dir, saber quin servidor li entregarà aquesta plana.

Podem saber quina adreça ip hi ha darrera de www.php.net obrint una finestra ms-dos (a windows) o una finestra de terminal (a Linux i Mac Os X) i teclejant:

ping www.php.net

El número 69.147.83.197 és l’adreça ip.

L’adreça ip és un número únic, i quan un ordinador es vol comunicar amb una adreça ip, tot d’aparells (enrutadors o routers en anglès) des del router ADSL que tenim a casa, fins al que tenen al lloc on és el servidor, saben com fer arribar la informació al servidor, i de tornada cap al nostre ordinador.

Un cop el navegador sap que l’adreça de php.net és 69.147.83.197, llavors s’hi connecta, i demana la plana web que volem.

Hi ha uns servidors que fan la traducció (resolució) del nom www.php.net a adreça ip. Aquests servidors es diuen servidors DNS.

Però una cosa important que us vull comentar és que abans de fer la consulta als servidors DNS l’ordinador mira a un fitxer especial, per si de cas nosaltres volem especificar manualment que un nom d’adreça es resolgui amb una adreça ip concreta.

Això ens serà molt útil més endavant quan programem.

Aquest arxiu es diu hosts. I es troba a les següents rutes:

En el cas de Linux i unix POSIX:

/etc/hosts

En el cas de Mac Os X (10.2 i superiors):

/private/etc/hosts

En el cas de windows l’arxiu es diu:

C:\Windows\system32\drivers\etc\hosts

És important saber que hi ha un nom especial que es diu localhost.

L’adreça localhost es resol com Ip 127.0.0.1

És molt important saber que 127.0.0.1 és una adreça ip especial, que sempre apunta al nostre propi ordinador.

Així si ens connectem des del navegador a http://localhost o http://127.0.0.1 ambdues accions el que faran és demanar una plana al servidor web Apache que tenim instal·lat al nostre ordinador.

En el cas del meu arxiu /etc/hosts tinc definit localhost com 127.0.0.1 i una entrada addicional que es diu dev.codic.cat també a la 127.0.0.1. D'aquesta manera desenvolupo sobre el bloc en local i jo accedeixo amb el navegador posant dev.codic.cat que seguint el que diu l'arxiu hosts resol 127.0.0.1 i per tant va al meu ordinador.

Escriure http://localhost i http://localhost/ té el mateix resultat ja que si no diem res, la plana per defecte que es demana és /

Normalment si es demana la plana / el servidor web envia l’arxiu index.html o index.htm o index.php o default.asp en el cas de servidor IIS de microsoft.

En tot cas això es pot canviar als arxius de configuració d’Apache o IIS (servidor web de microsoft).

 

Us ensenyo a programar en Web perquè la majoria de vegades que programem en PHP ho farem per a Web, i actualment quasi totes les feines són per a Web.

Les planes web no deixen de ser arxius, com llibres, i els navegadors web les interpreten i pinten les coses que li diem que pintin.

Per exemple obriu l’editor de textes, l’eclipse, o qualsevol programa amb el que volgueu programar i copieu aquest codi:

<html>
<head>
<title>La nostra primera plana Web</title>
</head>
<body>
Hola, aquesta és la primera plana web!.<br />
Això és <b>negreta</b>.<br />
Això és <font color="#ff2222">vermell</font>.<br />
Això és un <a href="http://www.codic.cat">hipervincle a Codi Ç</a>.
</body>
</html>

Com podeu observar si executeu plana.html és a dir, si feu funcionar aquest arxiu (això es fa fent doble clic sobre l’arxiu o dient-li al navegador que obri l’arxiu)

veureu que tenim una plana web amb el títol: La nostra primera plana web i on apareix el text que hi ha dins de <body>…</body>, que després de <br /> es genera un salt a la linia següent, que el que hi ha dins de <b>…</b> surt en negreta, i que el que hi ha entre <a href=”http://www.codic.cat”>….</a> és un enllaç cap a http://www.codic.cat
<font color=”#ff2222″>…</font> el que fa és que el text que hi ha entre <font…> i </font> estigui en el color ff2222 que vol dir: intensitat de vermell FF, intensitat de verd 22 i intensitat de blau 22. Aquests són valors exadecimals, bàsicament vol dir que hi haurà a tope de vermell, i una miqueta verd i una miqueta de blau.

Els espais que hi ha que fan que les comandes comencin més cap a la dreta són per a facilitar la lectura del codi, i el fet de programar amb aquests espais es diu indentar.
Quan obrim un bloc, el codi que va dins del bloc l’indentem i així es veu de manera molt clara què forma part del bloc.
La feina d’aprendre HTML l’haureu de fer vosaltres, però és quelcom molt més fàcil que aprendre a programar en PHP.

De tota manera aquí hi ha uns quants exemples amb els que aprendreu HTML a tota velocitat.

Ara anem introduir PHP dins la plana web que hem generat.
Editem l’arxiu plana.html i el deixem així:

<html>
    <head>
        <title>La nostra segona plana Web</title>
    </head>
<body>
        Hola, aquesta és la primera plana web!.
<?php

/* Definim els colors */

$st_conjunt_de_colors = array("vermell"--> "#ff2222",
                              "blau" => "#2222ff",
                              "verd" => "#22ff22",
                              "negre" => "#000000",
                              "gris" => "#777777");

?>
        Això és <strong>negreta</strong>.<br />
<?php
/* Comença el bucle */
foreach($st_conjunt_de_colors as $s_clau-->$s_valor_del_color){
    echo "Això és <span style=\"color: #00de00;\">$s_clau</span>.<br />";
}
?>
Això és un hipervincle a Codi Ç.
</html>
</body>
</html>

Quantes coses noves en unes poques línies!!.
El que hi ha entre /* i */ és un comentari de PHP (remark en anglès).
Serveix per a fer anotacions nostres i PHP ho ignora.

La linia que comença per $st_conjunt_de_colors = array és el que anomenem un array o una matriu.
Un array és una llista que té una correspondència de clau i de valor associat a la clau.
El valor d’una clau pot ser un altre array.

Una de les grans potències que té PHP és la gran quantitat de funcions d’arrais que porta de sèrie.

El que estem definint són claus amb el nom dels colors, i els associem el valor el seu color, i després fem un bucle que recorre l’array i imprimim en format html la clau com a text visible i el valor associat com a color dins del tag d’html font.

La gràcia del PHP és que es pot barrejar amb el codi html i pot generar codi html, i així és capaç de retornar planes dinàmiques. El resultat final és el que s’envia al navegador que veuen les persones que naveguen per la nostra web.

Bé, tornant al nostre exemple, no funcionarà. No funcionarà perquè cal que anomenem l’extensió de .html a .php i que la executi el servidor web.

Això s’aconsegueix posant l’arxiu a la carpeta del nostre servidor web apache.

Si empres WAMP per a windows la ruta per defecte és C:\wamp\bin\http i per a Linux la ruta per defecta (documentRoot) per als arxius que serveix apache és: /var/www

Per a instal·lar apache en Linux feu:

sudo apt-get install apache2

Adreça curta Twitter: http://wp.me/pzeab-1Lp

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Instal·lació de Selenium amb PHPUnit per a windows

dimecres, novembre 17th, 2010

Unes petites instruccions per a instal·lar Selenium RC amb PHPUnit a windows.

Selenium és una eina per a testejar la funcionalitat de les nostres aplicacions web.

Hi ha un complement (plugin) per a Firefox que suporta guions (scripts):

Selenium IDE

Però té moltes menys funcionalitats que la versió servidor i quan intervé Ajax no és capaç de detectar les respostes siguin correctes o incorrectes.

Amb la versió servidor:

Selenium Remote Control (RC)

ho podrem controlar absolutament tot, i veurem les passes que segueix el nostre guió alhora que el navegador anirà fent les instruccions que indica el nostre codi PHP tal i com si fòrem nosaltres qui premèrem els butons al navegador (i veurem tot el que passa).

Primer cal instal·lar la darrera versió de PEAR, al moment d’escriure aquestes línies la 1.9.1.

Per a aquest fi teclejarem si emprem ZendServer:

c:\Program Files\Zend\ZendServer\bin\go-pear.bat

Si emprem wamp o php sense wamp:

c:\wamp\bin\php\php5.3.3\go-pear.bat

Un cop això farem:

pear channel-discover pear.phpunit.de

pear channel-discover components.ez.no

pear channel-discover pear.symfony-project.com

I un cop fet això:

pear install phpunit/PHPUnit

Si tinguèssim una versió molt antiga de PHP, per exemple la versió 5.2.11, i de PEAR, obtindriem un error i caldrà que actualitzem primer PEAR:

pear upgrade

Ara caldrà modificar la secció include_path de l’arxiu php.ini per afegir-hi les rutes a PEAR i al Framework de PHPUnit.

Per a Zend:

C:\Program Files\Zend\ZendServer\bin\PEAR;
C:\Program Files\Zend\ZendServer\bin\PEAR\PHPUnit\Framework;

Per a wamp:

include_path=”.;C:\Selenium\selenium-remote-control-1.0.3\selenium-php-client-driver-1.0.1\PEAR;C:\wamp\bin\php\php5.2.11\pear;c:\php\includes;C:\Program Files\Zend\ZendFramework-1.10.8\library;C:\Program Files\Zend\ZendFramework-1.10.8\library”

Recordeu reiniciar el servidor web per a  que els canvis sorgeixin efecte.

Finalment caldria descarregar el servidor Selenium RC de la URL:

 http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip

O de la seva plana de descàrregues:

http://seleniumhq.org/download/

Si el descomprimiu a C:\Selenium haureu d’executar Selenium amb les instruccions:

cd C:\Selenium\selenium-remote-control-1.0.3\selenium-server-1.0.3
java -jar selenium-server.jar

Caldrà que tingueu instal·lar el Java Runtime Environment (JRE).

La ruta a la carpeta PEAR de Selenium també s’haurà d’afegir a l’include_path de php.ini:

include_path=”.;C:\Selenium\selenium-remote-control-1.0.3\selenium-php-client-driver-1.0.1\PEAR;C:\wamp\bin\php\php5.2.11\pear;c:\php\includes;C:\Program Files\Zend\ZendFramework-1.10.8\library;C:\Program Files\Zend\ZendFramework-1.10.8\library”

Les primeres línies del nostre codi també hauran d’indicar on trobar els arxius del framework.

Per a wamp:

<?php
require_once 'Testing/Selenium.php';
spl_autoload_register('selenium_autoload');
function selenium_autoload($name) {
 $tempFilename = explode('_', $name);
 $filename = 'C:\\wamp\\bin\\php\\php5.2.11\\PEAR\\PHPUnit\\Framework\\' . array_pop($tempFilename) . '.php'; 
 if(is_file($filename)) require_once($filename);
}

Per a Zend Server:

<?php
require_once 'Testing/Selenium.php';
spl_autoload_register('selenium_autoload');
function selenium_autoload($name) {
 $tempFilename = explode('_', $name);
 $filename = 'C:\\Program Files\\Zend\\ZendServer\\bin\\PEAR\\PHPUnit\\Framework\\' . array_pop($tempFilename) . '.php'; 
 if(is_file($filename)) require_once($filename);
}

Tingueu present que Selenium executa el navegador amb un perfil (profile) diferent al que emprem normalment, amb la finalitat de realitzar les prives.

Això us causarà problemes en el cas de certificats SSL ja que els haureu d’acceptar cada vegada que comenceu uns nous tests.

Podeu solucionar aquest problema creant un perfil específic per a les proves i passant-li per línia de comandes a Selenium:

-firefoxProfileTemplate "ruta_al_perfil"

Podeu crear un perfil executant firefox -P sense cap procés firefox executant-se prèviament.

Amb windows 7 crearem es diu selenium.profile al directori c:\Documents and Settings\[el nostre usuari de windows]\Program Data\Mozilla\Firefox\Profiles\selenium.profile

Llavors executarem firefox amb aquest perfil (no marcar la opció no preguntar a l’inici) i posar com a url about:config

Als paràmetres de configuració crearem una nova entrada del tipus lògic amb el nom extensions.newAddons i valor false.

Dins del menú Eïnes – Opcions – Avançat – Actualització desmarcarem totes les opcions de la secció “Comprovar si hi ha actualitzacions de Firefox, complements i motors de cerca”.

Si pretenem testellar llocs SSL accedirem a la pestanya Xifrat del mateix menú, premerem sobre Visualitzar els certificats i a la pestanya Servidor afegirem totes les excepcions per als dominis que hem de testejar. Pe: *.codic.cat

Podeu trobar més informació a la documentació de Selenium:

http://seleniumhq.org/docs/05_selenium_rc.html

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Solució de problemes amb WAMP i PHP 5.3.x

dissabte, abril 24th, 2010

Si treballeu amb WAMP Wampserver 2.oi amb el mòdul de PHP 5.2.11,  us podeu haver trobat amb un error que fa que qualsevol versió de PHP 5.3.x falli.

En alguns webs he trobat que això es deu a que manca una llibreria (DLL), nogensmenys wampserver base amb PHP 5.3.0 sense el 5.2.11 funciona perfectament jo ho he pogut solucionar instal·lant el paquet original de PHP, el darrer a data de 24 d’Abril de 2010, PHP 5.3.2.

En el meu cas l’he instal·lat a C:\PHP mentre que els de WAMP són a c:\wamp\bin\php\ per exemple C:\wamp\bin\php\php5.3.0.

Ara bé, quan inicieu Wamp haureu de tenir cura ja que el PHP.INI que carregarà serà el de C:\PHP.

Això ho podeu revisar amb un phpinfo, si no sabeu què és, es tracta d’una funció que envia al navegador tota la informació de configuració de PHP:

<?php

// Mostra tota la informació, INFO_ALL
phpinfo();

// Si només volguéssim dels mòduls, INFO_MODULES
// phpinfo(8) és el mateix.
phpinfo(INFO_MODULES);

?>

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

WAMP

dijous, desembre 24th, 2009

WAMP vol dir:

Windows

Apache

MySql

PHP.

És habitual l’expressió LAMP:

Linux

Apache

MySql

PHP.

La gent de wampserver.com van desenvolupar un WAMP:

Apache + MySql +  PHP per a Windows.

Bàsicament han creat un executable que instal·la Apache, Php, i MySql tot llest per a començar a programar i que permet configurar la majoria de coses amb un clic.

Les directives de PHP.INI o d’Apache (httpd.conf) es poden modificar amb una simple pulsació del botó del ratolí, i llavors el programari modifica els fitxers de configuració.

Així per exemple per a activar en PHP que permeti usar <? i no només <?php, enlloc de modificar l’arxiu PHP.INI i acativar la directiva short open tag, fem clic a la opció pertinent, wamp fa que s’actualitzi la configuració, i al cap de 2 segons en el nostre entorn ja permet executar codis PHP com <?=”Hola Catalunya”?>.

Crear àlies al servidor web es fa també des del ratolí i és terriblement fàcil.

Una altra de les gràcies és que permet disposar de diverses versions d’Apache, de PHP o de MySql i de bescanviar quina s’està executant amb un clic.

Nogensmenys per a fer això s’ha d’instal·lar uns complements.

I per a acabar-ho d’adobar incorpora el PHPMyAdmin, que és un administrador web per a MySql, per a poder crear les taules, índexs, afegir usuaris, permisos, etc… des de la mateixa eina.

No podia faltar la opció phpinfo(). ;-)

Jo acostumo a desenvolupar en PHP contra Linux, o bé contra Windows, però en configuracions on tot és instal·lat manualment i els arxius s’han de modificar a mà: el servidor Web, MySql, i el PHP…

I haig de dir que amb wampserver va ser descarregar-lo i començar a programar en qüestió de segons.

El fet de poder parar tots els serveis per a que no consumeixin memòria ni CPU mentre no els fem servir, i poder-los reiniciar en segons amb un clic, també és d’agrair.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy