Introducción a PHP


Autor: F. Javier García Castellano
Web: http://decsai.ugr.es/~fjgc, Mail: fjgc@decsai.ugr.es
IndiceInicioPHP

(C) GeNeura Team
Web: http://geneura.ugr.es, Mail: todos@geneura.ugr.es

1.- Introducción

PHP es un lenguaje rápido pese a ser interpretado, multiplataforma y dispone de una gran cantidad de bibliotecas para el desarrollo de aplicaciones Web.

Está basado en herramientas de software libre (Apache, MySQL, etc.), es decir, no hay que pagarlas; además proporciona los mecanismos para poder trabajar con casi cualquier base de datos (sea software libre o no) y servidor web.

Cuando pedimos a nuestro servidor web una página PHP, que no es sino un programa PHP que genera una página HTML, el servidor le pasa la página al interprete PHP y es el resultado lo que se le envía al cliente.

El interprete de PHP permite ser compilado y utilizado como un CGI. De esta forma cualquier servidor web que soporte CGI podría ejecutar páginas PHP. Nosotros en este tutorial lo vamos a usar como un módulo de Apache, la ventaja es que obtenemos una velocidad de ejecución bastante superior, asi como un consumo menor de recursos. En el caso de tener PHP instalado como un módulo del servidor Apache, este hereda todas las características del servidor.

PHP se contruyó para ser utilizado conjuntamente con la base de datos MySQL, pero actualmente soporta la mayoría de bases de datos (Oracle, Informix, ODBC, SQl Server, etc.). Nosotros utilizaremos MySQL, porque la interacción entre PHP y MySQL funciona a la perfección y además es software libre.

Debido a que PHP has sido diseñado de forma modular y sencilla, hay multitud de bibliotecas entre ellas destacamos el soporte para:

2.- Instalación de PHP en Windows

2.1.- Instalar Apache 1.3.x

2.2.- Instalar Mysql

2.3.- Instalar PHP para windows

2.4.- Configurar Apache para que funcione con PHP

Probar el PHP creando un fichero llamdo info.php con el siguiente contenido:

Info.php:

          <?php PHPinfo(); ?>

dicho fichero se guardará en el directorio htdocs del Apche (normalmente en C:\Archivos de programa\Apache Group\Apache\htdocs\ )

2.5.- Instalar extensiones de windows para PHP

Después de instalar PHP y servidor web en windows, puede que se quiera instalar algunas extensiones para ñadir funcionalidades al PHP. Las extensiones que se quieran utilizar cuando PPH arranque se activarán descomentando las línes del tipo 'extension=php_*.dll' en el fichero php.ini.

Para esto se requieren algunas DLLs adicionales. Hay que copiar el conjunto de Dlls que hay en el directorio php/dlls en windows/system (Win 9.x/Me), winnt/system32 o windows/system32 (estos dos últimos en Win NT/2000/XP). Si ya existen dichos ficheros, se deben sobreescribir, aunque es aconsejable hacer una copia de seguridad por si las cosas no funciona como debieran.

Algunas DLLs necesitan extensiones de otros, por ejemplo, php_oci8.dll necesita las librerías del cliente de Oracle 8 para poder instalarse, las cuales no vienen con la distribución de PHP.

Las DLLs para las extensiones de PHP llevan el prefijo 'php_'. Asi se previene la confusión entre extensiones de PHP y librerías para PHP.

Nota: A partir de PHP 4.0.5 el soporte para MySQL, ODBC, FTP, Calendar, BCMath, COM, PCRE, Session, WDDX y XML está dentro de PHP. No se necesita añadir ninguna funcionalidad extra para usar estas funciones

Ejemplos de extensiones de PHP

Para más documentación buscar la sección de extensiones de windows (Windows extensions) en http://www.php.net/manual/en/install.windows.php#install.windows.extensions

3.- Instalación de PHP en Linux

3.1.- Instalar Apache 1.3.x

3.2.- Instalar MySQL

Lo más rápido es bajarse una versión compilada de MySQL de http://www.mysql.com. Por ejemplo, nos bajamos un fichero binario del estilo mysql-XXX.tar.gz Lo descomprimimos con:

      tar xvfz mysql-XXX.tar.gz 

Renombramos el directorio y nos metemos en dicho directorio

      mv mysql-XXX mysql
      cd mysql

Ejecutamos el fichero de configuración

./configure 

Para cambiar el password de administrador de MySQL se hace con

./bin/mysqladmin -u root -p password 'new-password'

(La primera vez, cuando pregunta por el password anterior, se debe pulsar return)

Para arrancar el MySQL:

./bin/safe_mysqld &

Para probar si el MySQL está funcionando se hace con:

./bin/mysqladmin version

Para crear una base de datos se ejecuta ./bin/mysqladmin -u usuario -p create nombre_BD donde usuario es el usuario de la base de datos (normalmente root). Para eliminarla se ejecuta ./bin/mysqladmin -u usuario -p drop nombre_BD.

Para parar MySQL: ./bin/mysqladmin -u usuario -p shutdown.

Para trabajar con las bases de datos en MySQL se ejecuta ./bin/mysql.exe -u usuario -p que es un interprete de comandos que acepta sentecias SQL. Para Cambiar de base de datos se usa use nombre_BD. Para ver las tablas show tables; y para ver el formato de una tabla en particular, se usará desc nombre_tabla;.

3.3.- Instalar PHP para Linux

3.4.- Configurar Apache para que funcione con PHP

Al igual que en windows, podemos configurar el PHP para que se ejecute como un módulo de Apache o podemos instalarlo como un CGI. Aqui sólo consideraremos la opción de que sea un módulo de Apache. Ya que como CGI es más lento.

Probar el PHP creando un fichero llamdo info.php con el siguiente contenido:

Info.php:

          <?php PHPinfo(); ?>

dicho fichero se guardará en el directorio htdocs del Apache (normalmente en PREFIX_APACHE/htdocs )

4. Ejercicios

Ejercicio: Aprende a instalar PHP+Apache+MySQL en tu sistema operativo favorito (windows o Linux, lo siento si eres de los Mac). Va a ser necesario para el resto de los apartados del tutorial.Y para programar con PHP en casa.

Ejercicio: Si no has conseguido instalar el PHP+Apache+MySQL en tu sistema opeerativo favorito. Puedes probar a instalarlo en Linux, para ello ejecuta:

                 BAJAR el fichero http://flanagan.ugr.es/php/util/instalaPHP2.tgz en /tmp
                 cd /tmp
                 tar xvfz instalaPHP.tgz
                 rm /tmp/instalaPHP.tgz 
                 /tmp/instala.pl
  
                 Ejecuta el netscape con la dirección http://localhost:8080/info.php