Tecnologías Web de Cliente Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es Entorno PHP
Tecnologías Web de Cliente
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Entorno PHP
2
ÍndiceInstalar PHPServidor web 'interno'Apache Web ServerConfigurar Eclipse
– Crear proyecto
– Ejecutar PHP
Trabajar en la nube
3
Entorno del curso: Linux● PHP puede utilizarse en cualquier entorno: Linux, MS-Windows, MacOS....
– Windows: www.wampserver.com
– Mac: ya instalado. Ejecutar php en terminal. Para mySQL, www.mamp.info
● En este curso las instrucciones serán para Linux en la distribución Ubuntu● Puedes mirar manuales para ver cómo instalar las cosas en otro entorno
4
Instalar PHP como script● En linux, instalar php5-cli
● Ejecutar
5
Servidor web● Escucha en un puerto, en el que acepta conexiones http● Normalmente, ese puerto es el puerto 80
– Ej. http://localhost● Si es otro puerto, debo indicarlo
– Ej. http://localhost:8080
6
DocumentRoot Serv. Web● En un servidor web, tenemos que configurar la carpeta que es publicada por ese servidor (conocida como 'Document Root)● De todo el servidor, sólo son públicos los ficheros de esa carpeta
– Podemos cambiar la configuración
– Lo normal es usar /var/www pero tiene permisos de root
7
Puertos privilegiados● Los puertos TCP/IP menores de 1024 están reservados para usuarios privilegiados● Si ejecutamos un servidor web como usuario normal, lo habitual son los puertos 2784, 5000, 8001, 8080
http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html
8
Fallos habituales● Intentamos lanzar un servidor web, y ya hay un proceso escuchando en el puerto 80● Solución: 'acabar' con el proceso
9
¿Cómo acabo un servicio?● Si sospechas que está lanzado apache2, como es un servicio, podemos usar
– sudo servide <service> start|stop|restart
http://httpd.apache.org/docs/2.0/
10
¿Cómo listo los procesos?● Opción a): fuser
● Opción b): ps |grep
11
¿Cómo mato los procesos?● Opción a) kill -9
● Opción b) killall
12
Servidor 'de serie'● Si no queremos instalar apache
● Con el parámetro -t podemos indicar la raíz de documentos.
– Ej. php -S localhost:8080 -t /home/pepe
13
Entorno LAMP● LAMP = Linux + Apache Web Server + MySQL/MariaDB + PHP/Perl/Python● En Mac: MAMP, Windows: WAMP, en cualquier sistema operativo X: XAMP.● En linux, puedes instalarlo con el paquete tasksel, lanzarlo y seleccionar LAMP server. Luego conéctate en un navegador a http://localhost:80 y verás el mensaje 'It works'
– El mensaje que ves está en /var/www/index.html
14
Ejecutar PHP ● Editamos
● Copio en el documentroot y lo miro en el navegador
– Si es apache2, copio con permisos de root en /var/www y damos permisos de lectura (chmod 644)
15
Configurar Apache para Eclipse
● Por defecto, apache2 tiene document-root en /var/www donde no tenemos permiso de escritura● Tenemos que cambiar la configuración de apache2 para que sirva nuestro workspace
– /etc/apache2/apache2.conf
– /etc/apache2/enabled/000-default.conf
16
Configurar apache2● Añado el directorio nuevo en apache2.conf
● Cambio DocumentRoot en 00-default-conf
Directorio del workspace
17
Otra alternativa● Para cada proyecto, me creo un enlace desde /var/www● Ej. sudo ln -s $home/workspace /var/www
– Con $home/workspace el directorio workspace de eclipse
● La principal ventaja es que irán todas las aplicaciones que tengamos instaladas (p.ej. PhpMyAdmin).
18
Eclipse● Vamos a utilizar el plugin PDT
– http://www.eclipse.org/pdt/downloads/● Hay una versión 'todo en 1'
– Con eclipse, apache, etc.● Y una versión como plugin para añadir a nuestro eclipse si ya lo tenemos (seguimos con esta opción)
19
Instalar - Plugin PDT● Eclipse
– Help->Install new software
– Add• http://download.eclipse.org/tools/pdt/updates/release
20
Eclipse PDT● File → New Project → Other → PHP Project
21
Proyecto PHP
22
Crear fichero ● Botón derecho->New->PHP File
23
Ejecutar fichero ● Botón derecho->Run As->PHP Web Application
24
Ejecutar (II)
25
Configurar PHP● Window->Preferences->PHP
26
Trabajar en la nube● Hay un creciente número de IDEs en la nube con soporte para PHP● Ej. codenvy
27
28
Codenvy (I)
29
Codenvy (II)
30
Codenvy (III)
31
Conclusiones● La primera tarea para aprender PHP es instalar PHP y comprobar que somos capaces de ejecutar un ejemplo en el navegador● Un entorno como Eclipse nos va a permitir desarrollar, ejecutar y depurar tanto PHP como HTML, CSS y JavaScript
32
Referencias●Programming PHP, O'Reilly, 2013,
– http://proquest.safaribooksonline.com/book/programming/php/9781449361068
●Head first PHP & MySQL, O'Reilly, 2008,– http://proquest.safaribooksonline.com/book/
databases/mysql/9780596157739