Creando ZIPs con PHP

Vamos a ver una manera sencilla de crear ZIPs con PHP, para ello primero necesitamos una libreria que se llama ZipFile:

Mirror # 1
Mirror # 2

luego renombramos el archivo a: zipfile.php, incluimos la libreria en nuestra carpeta de librerias (en mi caso se llama "require") y la usamos asi:

<?php
require ("require/zipfile.php");
$zipfile = new zipfile();
$zipfile->add_file("res.pdf", "res.pdf");
$zipfile->add_file("tab.pdf", "tab.pdf");
$zipfile->add_file("err.pdf", "err.pdf");
$zipfile->add_file("c3d.pdf", "c3d.pdf");
$zipfile->add_file("pila.pdf", "pila.pdf");

header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=archivos.zip");
echo $zipfile->file();
?>


Primero importamos la libreria "require ("require/zipfile.php");" luego instanciamos la clase "$zipfile = new zipfile();" y seguido empezamos a anadir archivos: "$zipfile->add_file("pila.pdf", "pila.pdf");", el primer parametro indica el archivo y el segundo el nombre que contendra dentro del zip, por ultimo le damos nombre con " header("Content-disposition: attachment; filename=archivos.zip");" y regresamos el zip creado con "echo $zipfile->file();".

Tambien podemos crear carpetas dentro del zip, usando el metodo "add_dir":

$zipfile->add_dir("carpeta/");
$zipfile->add_file("archivo.html","carpeta/archivo.html");

Fuente: Devco.net

Normalizacion de bases de datos

Resumen: Se pretende mostrar el proceso de normalización, desde la primera forma normal 1FN hasta la quinta forma normal 5FN, explicación y describiendo cada una paso a paso, debido que es importante si se pretende formar un modelo optimo y eficaz para la base de datos.

Abstract: We intend to show the normalization process, from the first normal form 1FN to fifth normal form 5FN, explaining and describing each step, because it is important if we want to make an optimal and effective database model.

Palabras claves: base de datos, diseño, normalización, proceso.


Descargar articulo

Opera vrs Firefox vrs IE

En cuanto a exploradores web el primero que senalaba era IE, cabe mencionar que el ultimo release mejoro bastante pero a mi parecer no lo suficiente, en segundo lugar ponia a Opera, un browser realmente muy bueno, pero debido a los addons.. ponia en primer luegar a mi querido Firefox. Resulta que un estudio a destacada que Firefox podria ser el browser mas inseguro de la red, el estudio se realizo sobre los 4 browser mas usados

  • IE
  • Firefox
  • Opera
  • Safari

Los resultados revelaron que Firefox era vulnerable al 44% de los ataques, Safari en segundo lugar con un 35%, mientras que IE 15% y Opera un 6%. Las pruebas se realizaron usando 3100 web atacantes, entre los que se cuentan inyecciones SQL, phishing, scripts maliciosos y mas.

Fuente

Referencias tipo IEEE en Office

Para usar referencias del tipo IEEE en Microsoft Office debemos anadirlas, para ello descargamos el siguiente archivo:

Mirror #1 IEEE Reference
Mirror #2 IEEE Reference

Una vez descargado nos vamos para

% Archivos de programa % \ Microsoft Office \ Office12 \ Bibliografía \ estilo

% programfiles% \ Microsoft Office \ Office12 \ Bibliography \ Style

y lo pegamos ahi:


Luego abrimos Word y listo, ya podremos usar referencias tipo IEEE en Word:

Innovation labs

Broken Promises

Recursos PDF Online

Cuando necesitemos de recursos en pdf, ya sea para convertir de una pagina web o un documento escrito a pdf o vicecersa podemos disponer de los siguientes recursos:

Pagina Web a PDF - http://www.htm2pdf.co.uk/
Creo que es el mejor recurso que he encontrado hasta ahora por ser rapido, facil de usar, no requiere registro y la calidad de los archivos pdfs. Basta simplemente con ingresar la direccion web luego hacemos clic en "convert" y luego nos dara un link que dice "Download PDF" y listo.


Office a PDF o PDF a Office - http://www.pdfonline.com/convert-pdf/
Convierte tus documentos escritos como Office 2003 y 2007, archivos de texto, etc a PDF o viceversa, muy facilmente con esta aplicacion, solo debes seleccionar el archivo a subir.. e ingresar tu correo y momentos despues te llegara un correo de la aplicacion con el PDF adjunto. Debo mencionar que en el tiempo que tengo de usar esta aplicacion nunca he recibido spam de este sitio web, asi que lo catalogare como muy bueno.

Usando PHPMailer

Vamos a aprender a mandar correos usando PHPMailer, PHPMailer nos presenta la ventaja que podemos mandar correos a un servidor SMTP solo debemos conocer el nombre o la IP, o bien mandar correos a localhost y adjuntar archivos, empezaremos disenando un formulario simple para el envio de correos:

<form action="contact.php" method="post">
<b>Para:</b><br /><select name="area">
<option value="correo1@micorreo.com">Correo 1</option>
<option value="correo2@micorreo.com">Correo 2</option></select><br />
<b>Nombre:</b><br>
<input name="nombres" type="text" /><br />
<b>Asunto:</b><br />
<input name="empresa" type="text"><br><b>E-mail:</b><br>
<input name="email" type="text"><br />
<b>Comentarios:</b><br>
<textarea name="comentarios" cols="50" rows="5"></textarea><br>
<input name="action" type="hidden" value="send">
<input name="enviar" type="submit" value="Enviar">
</form>


Las acciones las vamos a ejecutar en la pagina "contact.php", ahora bien.. descargamos las clases del pagina principal de PHPMailer solo nos interesan dos:

  • class.phpmailer
  • class.smtp
Ahora empezaremos a contruir nuestra pagina PHP que se encargara de mandar los correos, iniciamos con los datos que vamos a incluir en el mail:

$nombre = $_REQUEST["nombres"];
$asunto = $_REQUEST["empresa"];
$email = $_REQUEST["email"];
$comentarios = $_REQUEST["comentarios"];
$dest = $_POST["area"];

Estos datos son obtenidos del formulario que creamos al inicio, luego usando estos datos contruimos el mensaje:

$msg.= "De: ".$_POST['nombres']."\n";
$msg.= "Asunto: ".$_POST['empresa']."\n";
$msg.= "Email: ".$_POST['email']."\n";
$msg.= "Hora: ".date("h:i:s a ")."\n";
$msg.= "Fecha: ".date("D, d M Y")."\n";
$msg.= "------------------------------- \n\n";
$msg.= $comentarios;
$msg.= "\n\n------------------------------- \n";
$msg.= " Mensaje creado por PhpMailer \n";

Ahora importamos los archivos de PHPMailer (yo los tengo un una carpeta llamada "includes"), creamos un objeto, le ponemos las propiedades conforme nuestra configuracion y lo enviamos:

require("includes\\class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "192.168.184.131";
$mail->From = $email;
$mail->FromName = $nombre;
$mail->AddAddress($_POST["area"]);
$mail->Subject = $asunto;
$mail->Body = $msg;

Finalmente lo enviamos

if(!$mail->Send()) {
echo "<script>alert('Error:\n'.$mail->ErrorInfo')</script>";
echo '<script>window.location = "index.php"</script>'; }
else {
echo "<script>alert('Mensaje enviado')</script>";
echo '<script>window.location = "index.php"</script>'; }

Si existiese algun error tambien lo mostramos con ayuda de javascript.

Codigo fuente en blogger

Puesto que blogger nos permite manejar codigo HTML dentro del blog o cualquier post, como hacemos cuando queremos mostrar un codigo fuente y que no lo ejecute?

Bueno el secreto esta en insertar los tags HTML con codigo ascii...

en vez de poner " < " usamos &lt y en vez de " > " usamos &gt seguido de un punto y coma ";"

&lt -> less than o menor que
&gt -> greater than o mayor que

Si ya tienes un codigo HTML y es demasiado como para hacer el cambio manual.. SimpleCode es una pagina que te hace esa tranformacion, luego ya solo debes copiar y pegar tu codigo.

Posicionando objetos con CSS

Es importante aprender a poner objetos (botones, imagenes, labels, etc) en el lugar apropiado, vamos a ver una manera muy facil de hacerlo, usando CSS.

Posicionando un boton (tambien aplica a labes, dropdown, radiobuttons, etc)
En nuestra hoja de estilo definimos la posicion del boton:

/* Boton - correo */
#css0{
position:fixed;
top:190px;
left:225px;
}
Creamos un estilo "css0" que posiciona el objeto en la posicion top 190 pixeles ( del tope superior de la pantalla para abajo) y left 225 pixeles ( del extremo izquierdo contando 225 pixeles a la derecha ). Ahora vamos a usar este estilo en nuestra pagina HTML, para ellos solo agragamos un segmento con estilo "css0" que fue el que acabamos de agregar en nuestra hoja de estilos.

<div id="css0"><input name="correo" value="correo" type="submit"></div>

El segmento que agregamos le decimos que use el estilo que creamos mediante id="css0" y entre los tags de <div id="css0"> y </div> ponemos el objeto que estamos posicionando.


Posicionando imagenes
Si deseamos en vez de un objeto posicionar una imagen hacemos unas pequenas modificaciones, en el CSS ponemos:

* Imagen - blog.png */
#css1 {
position:fixed;
width: 100px;
height: 75px;
top:50px;
left:100px;
background:url(images/blog.png) no-repeat right;
}

Ahora agregamos unos parametros mas en el CSS, width y height que son para indicar el ancho y alto de la imagen, ademas de background, con el indicaremos el path de la imagen que queremos mostrar, ahora para insertar esta imagen dentro de nuesto HTML solo agregamos el segmento con el estilo que recien creamos:

<div id="css1"></div>

No olvides importar la hoja de estilo en el tag HEAD de tu HTML
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />


TEENpup... uno mas para coleccion

Otra distro de linux para coleccionar basada en la serie PuppyLinux

Release: Junio 2009
Tamano: 696 MB
Descarga | Pagina Oficial

Video de muestra:
http://blip.tv/file/2234341



Software incluido
===================

Graficos:

Office:

Network:

Internet:


Multimedia:

Grabacion

Gnome Fitness

Gnome Fitness es un programa con el cual puedes medir tu condicion fisica en casa. Calcula tu indice de masa corporal, las calorias que tu cuerpo necesita por dia, el pocentaje de grasa en tu cuerpo o tu metabolismo.


Instalacion
Para Debian, Ubunto y cualquier distribucion que use paquetes .deb, puedes descargar el .deb y solo darle doble clic.

http://launchpadlibrarian.net/17361954/gnome-fitness_0.1.0-1_all.deb

Tambien lo puedes anadir a tus repositorios:
Edita el archivo /etc/apt/sources.list y anade el repositorio:
deb http://ppa.launchpad.net/zootropo/ubuntu hardy main

Actualiza la lista de paquetes y lo instalas con:
sudo aptitude install gnome-fitness

Para cualquier otra distribucion de linux tambien puedes usar el tarball:
Descarga gnome-fitness_0.1.0.tar.gz

.tar.gz
http://launchpadlibrarian.net/17361930/gnome-fitness_0.1.0-1.tar.gz

descomprimelo y ejecuta el comando (como root):
make install

Tambien existe un instalador para los usuarios de windows:
http://edge.launchpad.net/gnome-fitness/0.1/0.1.0/+download/gnome-fitness-0.1.0.exe

Compiz Check

Compiz-Check: chequea la compatibilidad de tu equipo para ejecutar compiz-fusion

Compiz-Check is a script to test if Compiz is able to run on your system/setup and if not, it will tell you the reason why.

The test consists mainly of three parts:
1. List relevant system information
2. Run several Compiz related checks
3. Check for problematic hardware and problems with the setup in use.

So the output will eventually look like this:



If anything is OK like in this example, your system is most probably able to run Compiz.
In case anything fails, you will be prompted a reason and ideally a hint how to solve the problem.


Descarga y uso:
SCRIPT

puedes usar el siguiente comando para descargarlo a tu home
wget http://blogage.de/files/9124/download -O compiz-check

luego debes hacerlo ejecutable
chmod +x compiz-check

y por ultimo solo lo corres
./compiz-check

Fuente:
http://forlong.blogage.de/entries/pages/Compiz-Check
http://www.makeuseof.com/tag/check-if-compiz-will-run-well-on-your-linux-box-with-compiz-check/

DHCP - Instalacion y configuracion de servidor y clientes

Material de apoyo:
http://rapidshare.com/files/249481360/Plantilla_Onto-CIF__DHCP_.pdf

Instalacion y configuracion DHCP


Configuracion cliente Linux Ubuntu


Configuracion cliente Windows Vista

USAC - Redes 1 - Virtualizacion de servidores + Wireshar!!!






Recomendacion: Usa la opcion HQ para mejor calidad de video.

Instalando programas en linux usando Synaptic

Este es un pequeno tutorial de como instalar / desinstalar programas usando synaptic.

Primero iniciamos el Synaptic.



Podemos anadir o quitar repositorios asi:



Un repositorio es un servidor en el que se almacenan paquetes de programas, ya sean en formato deb (Debian y basados en él), rpm (Red Hat, Mandriva, etc). En el caso de Ubuntu o Debian, serán repositorios de paquetes deb. La principal ventaja que tienen los repositorios es que no tienes que ir buscando los programas ni compilarlos, y son muy cómodos de usar. Son el método más usado (por cómodo y eficaz) para instalar programas en Linux.

Pues bien, los repositorios pueden añadirse de dos formas: editando manualmente el archivo sources.list o mediante una herramienta gráfica que proporciona Ubuntu. Una forma es más rápida, la otra es más sencilla de usar para los que le temen a al terminal. Los pasos que normalmente hay que dar para añadir un repositorio y comenzar a instalar son:

1. Añadir el repositorio a la lista de repositorios.

2. Añadir (si se tiene) la clave pública PGP de ese servidor. Esto permite asegurarse de que el servidor es seguro.

3. Actualizar la base de datos de paquetes. A continuación se exponen las dos maneras. A mí personalmente me gusta hacerlo editando el sources.list, y usando la consola, simplemente porque es más rápido.


Gráficamente

1. Abrir Sistema->Administración->Orígenes del Software, te pedirá la contraseña. En la pestaña “otros proveedores”, hay que pinchar el botón “Añadir” para añadir repositorios, y en la ventana que aparece tienes que pegar la dirección del repositorio. Para quitar un repositorio (cosa que no te aconsejo por si luego te arrepientes), marca uno y pulsa “Quitar”. Lo mejor que se puede hacer si no se quiere un repositorio es deshabilitarlo, quitándole la marca de la izquierda.

2. Para añadir claves PGP, en las líneas que te dan en las webs se ve la dirección de la clave, lo único que hay que hacer es copiarla y pegarla en el navegador, y guardarla en una carpeta. Luego, en la ventana “Orígenes del software” (la de antes), en la pestaña “autentificación” (me gustaría saber quién ha inventado semejante palabro, existiendo “identificación”), pulsando el botón Añadir puedes elegir el archivo que has descargado y añadirlo. Por ejemplo, si en una web te encuentras con esta orden para añadir una clave PGP:

wget http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg -O- | sudo apt-key add -

Copias “http://ubuntu.beryl-project.org/root@lupine.me.uk.gpg”, lo pegas en el navegador y ya puedes descargar la clave.

3. Cuando cierras la ventana “Orígenes del software”, se te pregunta si quieres actualizar la base de datos de paquetes. Ya puedes instalar programas con Synaptic.


Manualmente

1. Abre una terminal y escribe: sudo gedit /etc/apt/sources.list El archivo que se abre en el editor tendrá este aspecto aproximadamente (éste es mi sources.list):

# Archivo sources.list de gskbyte:
# Principal Ubuntu
deb http://es.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy main restricted

# Actualizaciones
deb [url]http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-updates main restricted

# Repositorio universe
deb http://es.archive.ubuntu.com/ubuntu/ edgy universe
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy universe

# Repositorio backports
deb http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse
deb-src http://es.archive.ubuntu.com/ubuntu/ edgy-backports main restricted universe multiverse

#Repositorios de seguridad
deb http://security.ubuntu.com/ubuntu edgy-security main restricted
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted
deb http://security.ubuntu.com/ubuntu edgy-security universe
deb-src http://security.ubuntu.com/ubuntu edgy-security universe

## Amarok
deb http://kubuntu.org/packages/amarok-144 edgy main

## Wine
deb http://wine.budgetdedicated.com/apt edgy main

## Transmission (cliente bittorrent)
#deb http://acorbeaux.free.fr/ubuntu edgy transmission

## Beryl
deb http://seerofsouls.com/ edgy contrib
# deb http://nvidia.limitless.lupine.me.uk/ubuntu edgy stable
deb http://download.tuxfamily.org/3v1deb edgy beryl-svn
deb-src http://download.tuxfamily.org/3v1deb edgy beryl-svn

## Ares para giFT, deshabilitados (no encuentro la clave PGP)
# deb http://hal.iwr.uni-heidelberg.de/debian/ gift/
# deb http://apt.cerkinfo.be/ unstable main contrib

## Automatix
deb http://www.getautomatix.com/apt edgy main

Cada línea que empieza por “deb” o “deb-src” es un repositorio. Los primeros indican repositorios de programas, los segundos, versiones de desarrollo o fuentes de los programas que contienen. Cuando una línea empieza por # (almohadilla), esa línea es un comentario y lo que haya a la derecha no tiene validez; por tanto, si pones una # antes de cada repositorio, lo estás deshabilitando. Para añadir un repositorio, simplemente pega la línea que lo describe, que normalmente será del tipo “deb [dirección] [programa]“. Para quitar un repositorio, puedes borrar su línea o ponerle el símbolo de comentario (#) delante (conviene separarlos con un espacio). Esto último es más práctico por si te arrepientes luego. Una vez añadidos o quitados los repositorios, puedes guardar y cerrar el editor.

2. Para añadir la clave PGP, normalmente te proporcionan la línea que tienes que escribir en la terminal. Simplemente copiar y pegar. Por ejemplo, para añadir el repositorio de Beryl tienes que escribir:

KEY=81836EBF; gpg –keyserver subkeys.pgp.net –recv $KEY && gpg –export –armor $KEY | sudo apt-key add -

3. Para actualizar la base de datos de paquetes, simplemente escribe: sudo aptitude update [El uso de aptitude ya se verá en otro post, aptitude es lo mismo que Synaptic pero en modo texto, de hecho, Synaptic es una interfaz gráfica para aptitude.] Por cierto, puedes alternar los pasos entre modo “ventanitas” y manual, es decir, puedes añadir los repositorios con la herramienta gráfica y luego con la consola añadir la clave PGP, por ejemplo. Espero que esto te haya sido útil si no lo conocías, especialmente si eres nuevo en esto de Linux.


Una vez anadidos los repositorios que desees le das clic en el boton "Reload" o "Actualizar" y se actualizara la lista de paquetes:

Luego usando el boton "Search" o "buscar" puede tipear el nombre del programa que estas buscando.

Te aparecera una lista de programas que concuerdan con tu criterio de busqueda:



clic derecho "install" o "instalar"

Y para terminar le das clic al boton "Apply" o "Aplicar" y listo.

Gfreqlet - Emifreq-applet - Controlar temperatura y rendimiento del PC en linux

Gfreqlet:

GFreqlet is a GNOME applet for Linux that not only monitors CPU frequency scaling, but also allows the end user to change the frequency or governor with just a click. It automatically detects which frequencies and governors your processor supports, so there is no configuration required. The applet itself is not run as root, nor required to modify to run with root ownership, but password prompts with gksudo if a super user action is required. GFreqlet is very straight forward and minimal.

GFreqlet is open source software, licensed under the GNU GPL (General Public License).


Pagina principal: http://gfreqlet.sourceforge.net/

Descarga: http://sourceforge.net/project/showfiles.php?group_id=190548



Puedes establecerlos en terminal con cpufrequtils:

hay 4 estados (governors) performance, ondemand, powersave, conservative

sudo aptitude install cpufrequtils

sudo cpufreq-selector -g


Ejemplo:

sudo cpufreq-selector -g powersaver




Emifreq-applet

Pagina principal: http://zzrough.free.fr/emifreq.php#download




sabes añadir un applet?

despues en la barra lo añades como applet-> boton derecho del raton en la misma barra y "añadir al panel" , estará el ultimo. lo arrastras a donde quieras ponerlo y a probar.

si quieres intentalo desde synaptic.

Fuente:
http://www.ubuntu-es.org/index.php?q=node/74371

Como nacen los ninos?

Guate es calida'

Debian Lenny: Flash Player 10

Algo importante cuando navegamos por internet es poder ver y reproducir archivos flash, a continuacion veremos como instalar flash player 10 en Debian Lenny:

1) Importamos la llave:

wget -O - http://backports.org/debian/archive.key | apt-key add -

2) Anadimos el repositorio:
{como root}
gedit /etc/apt/sources.list

y agregamos
deb http://www.backports.org/debian etch-backports main contrib

y listo!,
para instalar primero actualizamos los repositorios:
apt-get update

y luego instalamos el flash player
apt-get install flashplugin-nonfree


Tambien nos pasa que encontramos "flashes" molestos o que simplemente no queremos reproducir, si este es tu caso y usas firefox / iceweasel te recomiendo usar el plugin
Flash Block
https://addons.mozilla.org/es-ES/firefox/addon/433

fuente: wiki.debian.org

Geany: El 'Kate' de gnome


Geany es un pequeno y ligero IDE, ha sido desarrollado para proveer un pequeno y rapido IDE, el cual solo tiene unas pocas dependencias de otros paquetes. Otra caracteristica es que es lo mas independiente posible de KDE o GNOME, Geany solo necesita las librerias GTK2
Caracteristicas basicas:

  • Resaltado de escritura
  • Codigo plegable
  • Autocompletacion
  • Auto-cerrado de tags XML y HTML
  • Tips
  • Muchos lenguajes soportados como: C, Java, PHP, HTML, Python, Perl, Pascal
  • Lista de simbolos
  • Codigo de navegacion
  • Compilacion y ejecucion de codigo
  • Plugins y muchas mas...

Instalacion:
sudo apt-get install geany

Fuente: http://www.geany.org/Main/HomePage

Nivel de abstraccion en modelos entidad relacion ER

Algunas personas opinan que los diagramas Entidad-Relación deben contener un alto nivel de abstracción, otros opinan que se debe manejar un nivel bajo de abstracción. El articulo presenta el desarrollo de un ensayo sobre el presente tema.

http://rapidshare.com/files/196966174/Ensayo_1.pdf

Desarrollando PHP en NetBeans

Ahora podemos desarrollar PHP en NetBeans, solo debemos agregar el plugin PHP, que nos podemos descargar de la pagina oficial de netbeans (26 mb) ylisto.

Editor de PHP
"El editor PHP de NetBeans se integra con HTML, JavaScript y CSS, y tiene funciones como edición de sintaxis y el depurador JavaScript. NetBeans IDE 6.5 apoya plenamente el desarrollo iterativo, por lo que las pruebas de PHP proyectos sigue el clásico patrones familiares para los desarrolladores web."




Integracion MySQL
"También esperamos con interés trabajar con MySQL. El comando de insercion de codigo provee una tabla de base de datos que crea el codigo nevesario para ejecutar un "select"en MySQL. Abrir una ventana para realizar cambios en las tablas de MySQL, seleccione las celdas de una tabla con el ratón, y editar directamente."



Fuente:
http://www.netbeans.org/features/php/index.html
http://www.netbeans.org/downloads/index.html

Apache, PHP y MySQL: Parte II

Ya tenemos PHP funcionando con Apache, solo resta poner a funcionar la coneccion con la base de datos, para esto revisaremos una vez mas el archivo "php.ini", buscamos la seccion "paths and directories" y actualizamos la carpeta donde estan las extensiones:

extension_dir = "C:\PHP\ext\"

Mas abajo encontramos la lista de extensiones de PHP, seleccionamos las que vamos a usar, quitando el punto y coma al principio de la linea:

...
;extension=php_mime_magic.dll
;extension=php_ming.dll
extension=php_msql.dll
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
...


Y listo, ya tenemos PHP configurado para trabajar con MySQL, ahora solo falta instalar MySQL, de la manera mas sencilla, siguiente>siguiente>finish.

Si por cualquier motivo les da un error del tipo:

"to undefined function mysql_connect()..."

es que PHP no esta leyendo correctamente las extensiones, verificar la carpeta de extensiones (extension_dir), si el problema persiste copiar las extensiones (.dll) a la carpeta Windows/System32, y si el problema persiste, copiar el archivo "php.ini" a la carpeta de Windows/, con esto deberia de funcionar.

Apache, PHP y MySQL: Parte I

He decidido empezar un pequeño mini-tutorial, en donde vamos aprender a configurar Apache para trabajar con PHP con conexión a MySQL. En esta primera parte, expondremos como configurar Apache para trabajar con PHP, para después en una segunda parte exponer la conexión con MySQL. Las pruebas han sido realizadas sobre Windows Vista Ultimate de 64 bits, aunque no debería de haber ningún problema con otra versión.


Recomendaciones:

· Se está utilizando

o Apache Httpd 2.0.63

o PHP 5.2.6

o MySQL 5.0.67.

· Descargar PHP en archivo “Zip” para descomprimir.



CONFIGURANDO PHP.INI


Empezaremos descomprimiendo el archivo “php-5.2.6-Win32.zip” en una carpeta en el disco duro “C:\PHP”, para configurar PHP podemos tomar como base los archivos PHP.ini-dist o PHP.ini-recommended, usaremos este último, php.ini-recommended y lo renombraremos a php.ini. Primero debemos ubicar la carpeta donde esta nuestro sitio, en mi caso he puesto esta carpeta dentro de la carpeta de PHP (pero la pueden poner el cualquier lugar), esta carpeta contiene la paginas que formaran nuestro sitio, yo la he puesto en “C:\PHP\Site”, debemos de cambiar la dirección default en el “php.ini”, ubicamos la siguiente sección:


· ; cgi.force_redirect configuration below

doc_root =


y la modificamos con nuestra carpeta:


· ; cgi.force_redirect configuration below

doc_root = "C:\PHP\Site"


Ahora vamos a configurar las extensiones que va a usar PHP, estas se encuentran en la carpeta “/ext”, por ejemplo las librerías para la conexión con MySQL, para ellos ubicamos la sección de extensiones:


;;;;;;;;;;;;;;;;;;;;;;

; Dynamic Extensions ;

;;;;;;;;;;;;;;;;;;;;;;


Y habilitamos las extensiones de MySQL quitando los puntos y comas “;”al principio de cada línea.


extension=php_mysql.dll

extension=php_mysqli.dll


Nota: Algunas veces estas extensiones presentan problemas, debido a que no son encontradas por lo general en Windows XP, si esto sucede copie estas extensiones que vaya a usar a la carpeta principal, en este caso seria “C:\PHP”, si el problema persiste, copia también a las carpetas de /Windows y /Windows/System32 y el problema debería quedar solucionado.



CONFIGURANDO HTTPD.CONF


Empezaremos instalando Apache, de la manera más sencilla (siguiente>siguiente>finish). Una vez instalado Apache, debemos de configurarlo para soportar PHP, para ellos encontramos el archivo de configuración “httpd.conf” en “C:\Program Files (x86)\Apache Group\Apache2\conf” y lo editamos de la siguiente manera:

Debemos de añadir los módulos de PHP, buscamos la sección de carga de módulos y añadimos:


LoadModule php5_module C:\PHP\php5apache2.dll

AddType application/x-httpd-php .php


También debemos cambiar la carpeta donde esta nuestro sitio, para ellos buscamos y modificamos:


#

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

#

DocumentRoot "C:/PHP/Site"

...

...

#

# This should be changed to whatever you set DocumentRoot to.

#

...

...

#

# UserDir: The name of the directory that is appended onto a user's home

# directory if a ~user request is received. Be especially careful to use

# proper, forward slashes here. On Windows NT, "Personal/My Website"

# is a more appropriate choice.

#

UserDir "C:/PHP/Site"


El siguiente cambio es importante, debemos prestar atención, la pagina por defecto que abrirá el servidor es “index.html”, nos dará error si no existe, pero debido a que estamos usando PHP lo más probable es que nuestra página principal sea “index.php”, de ser así, debemos modificar el archivo, en la sección “Directory Index”


DirectoryIndex index.html index.html.var


Una vez cambiado nos quedara así:


#

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

#

# The index.html.var file (a type-map) is used to deliver content-

# negotiated documents. The MultiViews Option can be used for the

# same purpose, but it is much slower.

#

DirectoryIndex index.php index.html.var


Y listo!, hemos configurado Apache para poder desarrollar con PHP. Para probar que lo hemos hecho correctamente, vamos a probar una página sencilla:




Y el resultado debería ser el siguiente: