SlideShare una empresa de Scribd logo
1 de 92
Descargar para leer sin conexión
Entorno PHP
Profesores
Carlos A. Iglesias
Puedes contactarme en cif@gsi.dit.upm.es - Despacho C-211
2
3
Índice
1. Infraestructura PHP
2. Instalar PHP en Ubuntu
3. Ejecutar PHP en Ubuntu
4. Configurar phpStorm en Ubuntu
5. Instalar PHP y configurar phpStorm en
Windows
6. Instalar PHP y configurar phpStorm en Mac
7. Entorno virtualizado del DIT
8. Entorno en la nube
9. Conclusiones
1.
Infraestructura
PHP
Dónde
podemos
ejecutar
nuestros
programas PHP
4
Entornos para ejecutar PHP
Servidor Web
Interno
▣ Instalamos el
intérprete de
php (php5-cli)
▣ Nos
proporciona
un servidor
web propio
Servidor Web
Externo
▣ Instalamos un
servidor web
(ej. Apache2)
▣ Instalamos un
módulo
(php5-cgi)
para procesar
PHP
En la Nube
▣ Usamos un
entorno con
entorno LAMP
instado
5
Entorno LAMP
Navegador Servidor Web Apache2
+ extensión CGI PHP
o
Servidor Web Interno que
viene en el intérprete PHP
(sólo para desarrollo)
Servidor mySQL
puerto 80 puerto 3306
6
Arquitectura
7
Servidor web
▣ Escucha en un puerto, en el que acepta
conexiones http
▣ Normalmente, ese puerto es el puerto 80
□ Ej. http://localhost o http://localhost:80
▣ Si es otro puerto, debo indicarlo
□ Ej. http://localhost:8080
8
Servidores Web: Alternativas
▣ Apache2 http://httpd.apache.org/
▣ Nginx http://nginx.org/en/
▣ Zend http://www.zend.
com/en/products/server
▣ Appserver.io http://appserver.io/
9
2.
Instalar PHP en
Ubuntu
Administración
básica para
instalar PHP en
Ubuntu
10
Sistema Operativo del curso: Linux
▣ PHP puede utilizarse en cualquier entorno:
Linux, MS-Windows, MacOS....
□ Windows: http://www.wampserver.com
□ Mac: ya instalado. Ejecutar php en terminal. Para
mySQL, http://www.mamp.info
▣ En este curso las instrucciones serán para
Linux en la distribución Ubuntu
▣ Se puede instalar en Ubuntu/Mac/Windows
con un único paquete:
□ https://www.apachefriends.org/download.html
□ https://confluence.jetbrains.
com/display/PhpStorm/Installing+and+Configuring
+XAMPP+with+PhpStorm+IDE#InstallingandConfig
uringXAMPPwithPhpStormIDE-
11
Paquete 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'
12
Instalar PHP
>sudo apt-get install tasksel
>sudo tasksel
Seleccionar con
cursores y
espacio, y
tabuladores
para el botón
Aceptar
Nos pide
contraseña de
mysql
(apuntarla!)
13
Comprobar instalación
http://localhost:80
14
Comprobar puertos de servidores
> sudo netstat -plunt
Conexiones activas de Internet (solo servidores)
Proto Recib Enviad Dirección local Dirección remota Estado PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ESCUCHAR 9620/mysqld
tcp6 0 0 :::80 :::* ESCUCHAR 11926/apache2
15
Iniciar / reiniciar /parar servicios
▣ Sintaxis general
▣ Ej. Servidor web apache2 y mysql
> sudo service <servicio> start|restart|shutdown
> sudo service apache2 start
> sudo service apache2 restart
> sudo service apache2 stop
> sudo service mysql start
> sudo service mysql stop 16
Configurar apache2
▣ Ficheros de configuración /etc/apache2
□ apache2.conf: configuración global
□ ports.conf: puertos de escucha
□ ficheros de configuración en mods-enabled, conf-
enabled y sites-enabled: configuraciones para
gestionar módulos, fragmentos de la configuración
global y hosts virtuales, respectivamente
□ Los directorios x-enabled contienen enlaces
simbólicos a configuraciones de x-available: mods-
available, conf-available, sites-available
17
apache2.conf
▣ /etc/apache2/apache2.conf incluye el resto
de ficheros
> sudo service <servicio> start|restart|shutdown
▣ Define directivas globales y se carga al lanzar
apache. Podemos recargarlo con:
> sudo service apache2 start
▣ Si una directiva la ponemos dos veces, se
sobreescribe
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
> sudo service apache2 reload
18
Administración básica
▣ El servidor por defecto está configurado en
□ /etc/apache2/sites-enabled/000-default.conf
▣ Ejemplo de configuración
□ cambiar la carpeta donde tenemos las páginas web
□ poner el nombre del servidor (o IP)
DocumentRoot /var/www/html
ServerName localhost
En esta carpeta necesitamos permisos de root (sudo), podemos
cambiarlo a otra carpeta en nuestra cuenta
19
Administración básica: cambiar puerto
▣ 1. Cambio ports.conf
▣ 2. Cambio el sitio (ej. 000-default.conf)
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Listen 80
Listen 80
Listen 8080
Listen 192.168.0.54:8081
<VirtualHost *:80>
…
</VirtualHost>
20
Activar / desactivar configuraciones
▣ Para activar / desactivar módulos,
configuraciones o sitios, se pueden usar
a2enmod a2dismod a2ensite a2dissite
a2enconf a2disconf
> cd /etc/apache2
> ls mods-available/userdir*
mods-available/userdir.conf mods-available/userdir.load
> ls mods-enabled/userdir*
ls: cannot access mods-enabled/userdir*: No existe el archivo
o directorio
> sudo a2enmod userdir
Enabling module userdir.
To activate the new configuration, you need to run:
service apache2 restart
> ls mods-enabled/userdir*
mods-enabled/userdir.conf mods-enabled/userdir.load 21
Logs
▣ Se configuran en
□ envvars → APACHE_LOG_DIR
□ 000-default.conf → ErrorLog y CustomLog
▣ La ruta por defecto es /var/log/apache2
donde tenemos access.log y error.log
> tail -f /var/log/apache2/access.log
127.0.0.1 - - [17/Mar/2015:16:07:58 +0100] "GET / HTTP/1.1" 200 3594 "-" "Mozilla/5.0
(X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89
Safari/537.36"
127.0.0.1 - - [01/Mar/2015:16:07:59 +0100] "GET /icons/ubuntu-logo.png HTTP/1.1"
200 3688 "http://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
22
Virtual host (I)
▣ Nos permiten servir más de un sitio web en
un mismo servidor web
▣ Vamos a simular un host
▣ Añado (con sudo) en /etc/hosts
#virtual host
127.0.0.1 www.tewc.upm.edu
http://www.tewc.upm.edu
23
Virtual host (II)
▣ Quiero ahora escuchar en *:80 y www.tewc.
upm.edu:8080
▣ Añado
□ en ports.conf Listen 8080
□ en 000-default.conf (misma configuración que
<VirtualHost *:80>
<VirtualHost www.tewc.upm.edu:8080>
...
</VirtualHost>
http://www.tewc.upm.edu:8080
24
Ejemplo de directivas
▣ Dar permisos de acceso a directorios con la
directiva Directory
▣ Definir el número máximo de procesos hijos
con MaxRequestWorkers o número máximo
de peticiones por proceso hijo
MaxConnectionsPerChild. Si lo superamos,
pondrá, servidor ocupado.
25
Ejemplo de módulos
▣ libapache2-mod-auth-mysql - Apache 2
module for MySQL authentication
▣ libapache2-mod-php5 - lado servidor,
lenguaje de guionización HTML-embebido
(módulo Apache 2)
▣ libapache2-mod-python - módulo integrado
Python para Apache 2
▣ Ver más con
> sudo apt-cache search libapache2-mod |more
26
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
Fuente_ http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.
html
27
Fallos habituales
▣ Intentamos lanzar un servidor web, y ya hay
un proceso escuchando en el puerto 80
▣ Solución: 'acabar' con el proceso
28
¿Cómo acabo con el proceso?
▣ Si sospechas que está lanzado apache2
> sudo service apache2 stop
29
¿Cómo listo los procesos?
▣ Opción 1: fuser
▣ Opción 2: ps |grep
30
¿Cómo mato los procesos?
▣ Opción 1: kill -9
▣ Opción 2: killall
31
3.
Ejecutar PHP
Cómo ejecutar
PHP
32
Ejecutar como script
▣ Con php5-cli instalado
▣ Ejecuto
33
Ejecutar como consola interactiva
▣ Con php5-cli instalado
34
Ejecutar como servidor web interno
▣ Con php5-cli instalado
▣ Puedo indicar puerto y DocumentRoot
35
Usar un puerto diferente de 80 (p.ej. 81) si tenemos ya
lanzado un apache
Ejecutar en Apache
▣ Debemos copiar los ficheros php al document
root /var/www/html
▣ Y ya estará visible
36
Problemas de permisos
▣ Problema
□ /var/www/html pertenece a root
□ No podemos editar con nuestro usuario
directamente los ficheros ‘desplegados’
▣ Soluciones
□ Cambiar el document root de apache 2 a un
directorio nuestro
■ Debemos añadir el directorio con Directory y
cambiar DocumentRoot
□ Hacer un enlace simbólico desde /var/www a
nuestro directorio
□ Crear un grupo en el que estemos root, apache2 y
nosotros y dar permisos al grupo
37
Crear grupo y asignarle document root
▣ Crear grupo y añadir a tu usuario (ej. tu-login)
y a apache2 (www-data)
▣ Cambiar propietario de /var/www
38
> sudo groupadd www-pub
> sudo usermod -a -G www-pub tu-login
> sudo usermod -a -G www-pub www-data
> sudo chown -R root:www-pub /var/www
Cambiar permisos
▣ Dar permiso de lectura a todos, a los del
grupo de escritura y añade setguid para que
retengan el grupo
▣ Nos tenemos que salir de la sesión, entramos,
y ya podremos crear ficheros en /var/www
39
> sudo chmod -R o+r /var/www
> sudo chmod -R g+w /var/www
> sudo find /var/www -type d -exec chmod g+s {} +
> cd /var/www
> echo hola > hola.txt
> ls -al
drwxrwsr-x 2 root www-pub 4096 mar 1 08:19 .
drwxrwsr-x 3 root www-pub 4096 mar 1 08:54 ..
-rw-rw-r-- 1 cif www-pub 1 mar 18 01:19 hola.txt
-rw-rw-r-- 1 root www-pub 11510 mar 1 08:55 index.html
Crear proyecto
40
Rellenamos página PHP
41
Control+J bs3-template:html5
Vemos en navegador
42
Ejecución como script o en web
43
Script
Web
4.
Configuración
phpStorm en
Ubuntu
Cómo ejecutar
PHP desde
nuestro IDE
44
Integrar con phpStorm
45
▣ Mirar documentación en https://confluence.
jetbrains.
com/display/PhpStorm/Installing+and+Confi
guring+MAMP+with+PhpStorm+IDE#Installing
andConfiguringMAMPwithPhpStormIDE-
IntegratingMAMPwiththeIDE
Instalar php-cgi
▣ Si no lo tienes instalado, hay que instalarlo
46
> sudo apt-get install php5-cgi
Pasos
47
Configurar Intérprete
Configurar Despliegue
Configurar Ejecución
Paso 1. Configurar Intérprete
48
Pinchar
en los “...”
Escoger intérprete PHP
49
Dar al “+” y
seleccionar
intérprete
Intérprete listo
50
Prueba: crear página PHP y dar Run
51
Paso 2. Configurar Despliegue
52
▣ Tenemos varias opciones, todas soportadas
▣ Servidor en lugar (server in place):
□ servidor local con document root la carpeta madre
del raíz del proyecto
□ tenemos permisos para escribir en el document
root y desarrollamos directamente en esa carpeta
▣ Servidor local:
□ servidor local
□ la carpeta del proyecto no es el document root
▣ Servidor remoto:
□ servidor remoto y carpeta remota
Fuente https://www.jetbrains.com/phpstorm/help/configuring-synchronization-with-a-
web-server.html
Paso 2a. Configuración Servidor
▣ Vamos a Settings->Deployment (despliegue)
53
Paso 2b. Configurar Connection
54
Paso 2c. Configurar Mappings
55
Paso 3. Configurar Run Configuration
56
Desplegamos el menú de Run (botón
verde play) y seleccionamos Edit
Configurations
Paso 3a. Run/Debug Configurations
57
Añadimos configuración PHP Web Application
Paso 3b. Run/Debug Configurations
58
Añadimos configuración Before launch: upload
5.
Instalar PHP en
Windows
Cómo instalar
PHP en
Windows
59
Instalar PHP en Windows
60
▣ Instalar WAMP
□ http://www.wampserver.com/en/
▣ Te instala apache, mySQL, etc.
▣ Verás una aplicación para lanzar / parar
Apache, etc.
▣ Normalmente, será
□ $DIRECTORIO_WAMPbinphp.exe (intérprete
PHP)
□ $DIRECTORIO_WAMPwamp (carpeta
DocumentRoot donde poner tus páginas)
Configurar PHPStorm en Windows
▣ Sigue los pasos mostrados en la sección de
windows
▣ La diferencia está en:
□ cómo localizar php.exe (paso 1)
□ cómo configurar el despliegue (paso 2)
61
Paso 1. Localizar php.exe
62Agradecimientos: Javier Puente Aller
Localizar php.exe
63
Localizar php.exe en Windows
64
Localizar php.exe en Windows
65
Localizar php.exe en Windows
66
Localizar php.exe en Windows
67
Paso 2. Configurar Despliegue
68
▣ Hay dos opciones
□ Usar ‘Server in place’ y crear los proyectos
phpStorm DENTRO de la carpeta
$DIRECTORIO_WAMP/wamp
□ Usar ‘Server local’
■ Sigue los pasos descritos en la sección de
Ubuntu
Paso 2a. Configurar Servidor
69Agradecimientos: Óscar Vázquez
Paso 2b. Configurar Conexión
70
Paso 2c. Configurar mappings
71
6.
Instalar PHP en
Mac
Cómo instalar
PHP en Mac
72
Ej. XAMPP instalado
73
Paso 1. Configurar intérprete
74Agradecimientos: Alejandro
Paso 2b. Configurar conexión
75
Paso 2c. Configurar Mappings
76
Paso 3a. Configurar Run configuration
77
7.
Entorno
virtualizado en
el lab del DIT
Cómo usar una
máquina virtual
en el
laboratorio
78
Laboratorio. Acceso máquina virtual
▣ Tienes que estar en el laboratorio
▣ Paso 1. Copiar el escenario de prueba:
▣ Paso 2. Arrancar máquina virtual
▣ Paso 3. Acceder a la máquina virtual via ssh
con X-forwarding
> cp/mnt/vnx/repo/labo-cif/labo-cif.xml .
> sudo vnx -f labo-cif.xml -v -t
> slogin -X <cuenta_alumno>@10.1.0.4
79
Laboratorio. Realizar acciones en VM
▣ El home del alumno queda montado en la
máquina virtual. Todos los archivos están
accesibles y los cambios son persistentes.
▣ Se pueden ejecutar órdenes con sudo y
contraseña del alumno o como ‘root’ y
contraseña ‘xxxx’
▣ Acciones. Arrancar phpStorm en la máquina
virtual (terminal con login en @ubuntu) o
firefox
▣ Acciones. Instalar algo: con sudo apt-get <paquete>
> /opt/JetBrains/PhpStorm-139.732/bin/phpstorm.sh &
80
Gestionar VM
▣ Ejecutar en un terminal de la máquina (no el
el del login ubuntu, que es el virtual)
▣ Acciones. Parar escenario conservando
cambios
▣ Acciones. Volver a arrancar la VM
▣ Acciones. Parar escenario destruyendo
cambios
> sudo vnx -f labo-cif.xml -v --shutdown
> sudo vnx -f labo-cif.xml -v --shutdown
> sudo vnx -f labo-cif.xml -v --start
> sudo vnx -f labo-cif.xml -v --destroy
81
8.
Desarrollo en la
nube
Cómo ejecutar
PHP desde
nuestro IDE
82
Creciente número de IDEs en la nube
83
Codenvy
84
Codenvy
85
Codenvy
86
9.
Conclusiones
Qué hemos
aprendido
87
Conclusiones
▣ La primera tarea para aprender PHP es
instalar PHP y comprobar que somos capaces
de ejecutar un ejemplo en el navegador
▣ Un entorno IDE como phpStorm nos va a
permitir desarrollar, ejecutar y depurar tanto
PHP como HTML, CSS y JavaScript
88
Es importante conocer y saber administrar nuestro
entorno. La tendencia es automatizar entornos IT con
herramientas como Docker, Puppet, Vagrant, ...
89
¡Gracias!
¿Alguna pregunta?
cif@gsi.dit.upm.es
90
Referencias
▣ Tasksel
□ https://help.ubuntu.com/community/Tasksel
▣ Adminstración Ubuntu
□ http://proquest.safaribooksonline.
com/book/operating-systems-and-server-
administration/linux/9780133927368
▣ Configuración phpStorm con PHP
□ https://confluence.jetbrains.
com/display/PhpStorm/Installing+and+Configuring
+MAMP+with+PhpStorm+IDE#InstallingandConfigu
ringMAMPwithPhpStormIDE-
IntegratingMAMPwiththeIDE
91
Créditos
Gracias a todos los que han publicado estos
recursos de forma gratuita:
▣ Minicons de Webalys
▣ Plantilla de la presentación de SlidesCarnival
▣ Fotos de Unsplash y Wix
92

Más contenido relacionado

La actualidad más candente

La actualidad más candente (13)

A4 instalación de koha
A4   instalación de kohaA4   instalación de koha
A4 instalación de koha
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
php
phpphp
php
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 
Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)
Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)
Instalación de Servidores GNU/Linux - APACHE, MySQL, PHP (parte 2)
 
Servidor Web Apache para Linux
Servidor Web Apache para LinuxServidor Web Apache para Linux
Servidor Web Apache para Linux
 
Manual php y_mysql
Manual php y_mysqlManual php y_mysql
Manual php y_mysql
 
Instalación de Servidores GNU/Linux - parte 1
Instalación de Servidores GNU/Linux - parte 1Instalación de Servidores GNU/Linux - parte 1
Instalación de Servidores GNU/Linux - parte 1
 
Guía instalación koha por paquetes
Guía instalación koha por paquetesGuía instalación koha por paquetes
Guía instalación koha por paquetes
 
Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAP
 
Apache.http ftp-smtp
Apache.http ftp-smtpApache.http ftp-smtp
Apache.http ftp-smtp
 
Trabajo zabbix
Trabajo zabbixTrabajo zabbix
Trabajo zabbix
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 

Destacado

Herramientas para el desarrollo en plataformas móviles web
Herramientas para el desarrollo en plataformas móviles   webHerramientas para el desarrollo en plataformas móviles   web
Herramientas para el desarrollo en plataformas móviles webjoycesita
 
Vishub description Global Excursion
Vishub description Global ExcursionVishub description Global Excursion
Vishub description Global ExcursionJuan Quemada
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSSLuis Miguel Martín
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorialjobfan
 
Isabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetIsabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetJuan Quemada
 
Arquitectura del Web 2
Arquitectura del Web 2Arquitectura del Web 2
Arquitectura del Web 2Juan Quemada
 
Internet Ice091117
Internet Ice091117Internet Ice091117
Internet Ice091117Juan Quemada
 
Nuevos retos de Internet: Movilidad y Cloud Computing
Nuevos retos de Internet: Movilidad y Cloud ComputingNuevos retos de Internet: Movilidad y Cloud Computing
Nuevos retos de Internet: Movilidad y Cloud ComputingJuan Quemada
 
Human Interaction, Social Protocols and Collaborative Applications
Human Interaction, Social Protocols and Collaborative ApplicationsHuman Interaction, Social Protocols and Collaborative Applications
Human Interaction, Social Protocols and Collaborative ApplicationsJuan Quemada
 
GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group PresentationCarlos A. Iglesias
 
Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5joycesita
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video TutorialSilvia Pfeiffer
 
Introduccion al Web 2.0
Introduccion al Web 2.0Introduccion al Web 2.0
Introduccion al Web 2.0Juan Quemada
 

Destacado (20)

Herramientas para el desarrollo en plataformas móviles web
Herramientas para el desarrollo en plataformas móviles   webHerramientas para el desarrollo en plataformas móviles   web
Herramientas para el desarrollo en plataformas móviles web
 
Vishub description Global Excursion
Vishub description Global ExcursionVishub description Global Excursion
Vishub description Global Excursion
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSS
 
Google html5 Tutorial
Google html5 TutorialGoogle html5 Tutorial
Google html5 Tutorial
 
Isabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de InternetIsabel: Reuniones, Clases y Congresos a través de Internet
Isabel: Reuniones, Clases y Congresos a través de Internet
 
Arquitectura del Web 2
Arquitectura del Web 2Arquitectura del Web 2
Arquitectura del Web 2
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
CSS
CSSCSS
CSS
 
Internet Ice091117
Internet Ice091117Internet Ice091117
Internet Ice091117
 
Fundamentos de CSS
Fundamentos de CSSFundamentos de CSS
Fundamentos de CSS
 
Empresa 2.0
Empresa 2.0Empresa 2.0
Empresa 2.0
 
Nuevos retos de Internet: Movilidad y Cloud Computing
Nuevos retos de Internet: Movilidad y Cloud ComputingNuevos retos de Internet: Movilidad y Cloud Computing
Nuevos retos de Internet: Movilidad y Cloud Computing
 
Human Interaction, Social Protocols and Collaborative Applications
Human Interaction, Social Protocols and Collaborative ApplicationsHuman Interaction, Social Protocols and Collaborative Applications
Human Interaction, Social Protocols and Collaborative Applications
 
GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5Proyecto de Topicos II - HTML5
Proyecto de Topicos II - HTML5
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video Tutorial
 
HTML5 Canvas
HTML5 CanvasHTML5 Canvas
HTML5 Canvas
 
Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Introduccion al Web 2.0
Introduccion al Web 2.0Introduccion al Web 2.0
Introduccion al Web 2.0
 

Similar a Entorno PHP

Instalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estableInstalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estableBartOc3
 
Receta red social
Receta red socialReceta red social
Receta red socialwalterose7
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxykaliz
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hatjcausil1
 
Instalacion moodle en ubuntu
Instalacion moodle en ubuntuInstalacion moodle en ubuntu
Instalacion moodle en ubuntuJesús Ayús
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerceDavid Ramirez
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4David Ramirez
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracioncriscega
 
CACTI herramienta de monitoreo
CACTI herramienta de monitoreoCACTI herramienta de monitoreo
CACTI herramienta de monitoreoJenny Galicia
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0wcuestas
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apachegarciadebora
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingHacking Bolivia
 
Manual ldap
Manual ldapManual ldap
Manual ldapomarhl2
 
Red t3 practica1_apachecms
Red t3 practica1_apachecmsRed t3 practica1_apachecms
Red t3 practica1_apachecmsgarciadebora
 
Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxJulio Pari
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/LinuxMartin Gregorio
 

Similar a Entorno PHP (20)

Instalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estableInstalacion y configuracion de squid 2.6 estable
Instalacion y configuracion de squid 2.6 estable
 
Receta red social
Receta red socialReceta red social
Receta red social
 
Servidir Proxy
Servidir ProxyServidir Proxy
Servidir Proxy
 
Squid
SquidSquid
Squid
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hat
 
Instalacion moodle en ubuntu
Instalacion moodle en ubuntuInstalacion moodle en ubuntu
Instalacion moodle en ubuntu
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracion
 
CACTI herramienta de monitoreo
CACTI herramienta de monitoreoCACTI herramienta de monitoreo
CACTI herramienta de monitoreo
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical Hacking
 
Manual ldap
Manual ldapManual ldap
Manual ldap
 
Php andmysql
Php andmysqlPhp andmysql
Php andmysql
 
Red t3 practica1_apachecms
Red t3 practica1_apachecmsRed t3 practica1_apachecms
Red t3 practica1_apachecms
 
Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linux
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 
Servidor HTTP Apache
Servidor HTTP ApacheServidor HTTP Apache
Servidor HTTP Apache
 

Más de Carlos A. Iglesias (20)

Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 
Tema 4.8 Preferencias
Tema 4.8 PreferenciasTema 4.8 Preferencias
Tema 4.8 Preferencias
 
Tema 4.9 Hebras
Tema 4.9 HebrasTema 4.9 Hebras
Tema 4.9 Hebras
 
Gestion de Ideas
Gestion  de IdeasGestion  de Ideas
Gestion de Ideas
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
 
Tema 2 diccionarios_grupo_23
Tema 2 diccionarios_grupo_23Tema 2 diccionarios_grupo_23
Tema 2 diccionarios_grupo_23
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (19)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Entorno PHP

  • 2. Profesores Carlos A. Iglesias Puedes contactarme en cif@gsi.dit.upm.es - Despacho C-211 2
  • 3. 3 Índice 1. Infraestructura PHP 2. Instalar PHP en Ubuntu 3. Ejecutar PHP en Ubuntu 4. Configurar phpStorm en Ubuntu 5. Instalar PHP y configurar phpStorm en Windows 6. Instalar PHP y configurar phpStorm en Mac 7. Entorno virtualizado del DIT 8. Entorno en la nube 9. Conclusiones
  • 5. Entornos para ejecutar PHP Servidor Web Interno ▣ Instalamos el intérprete de php (php5-cli) ▣ Nos proporciona un servidor web propio Servidor Web Externo ▣ Instalamos un servidor web (ej. Apache2) ▣ Instalamos un módulo (php5-cgi) para procesar PHP En la Nube ▣ Usamos un entorno con entorno LAMP instado 5
  • 6. Entorno LAMP Navegador Servidor Web Apache2 + extensión CGI PHP o Servidor Web Interno que viene en el intérprete PHP (sólo para desarrollo) Servidor mySQL puerto 80 puerto 3306 6
  • 8. Servidor web ▣ Escucha en un puerto, en el que acepta conexiones http ▣ Normalmente, ese puerto es el puerto 80 □ Ej. http://localhost o http://localhost:80 ▣ Si es otro puerto, debo indicarlo □ Ej. http://localhost:8080 8
  • 9. Servidores Web: Alternativas ▣ Apache2 http://httpd.apache.org/ ▣ Nginx http://nginx.org/en/ ▣ Zend http://www.zend. com/en/products/server ▣ Appserver.io http://appserver.io/ 9
  • 10. 2. Instalar PHP en Ubuntu Administración básica para instalar PHP en Ubuntu 10
  • 11. Sistema Operativo del curso: Linux ▣ PHP puede utilizarse en cualquier entorno: Linux, MS-Windows, MacOS.... □ Windows: http://www.wampserver.com □ Mac: ya instalado. Ejecutar php en terminal. Para mySQL, http://www.mamp.info ▣ En este curso las instrucciones serán para Linux en la distribución Ubuntu ▣ Se puede instalar en Ubuntu/Mac/Windows con un único paquete: □ https://www.apachefriends.org/download.html □ https://confluence.jetbrains. com/display/PhpStorm/Installing+and+Configuring +XAMPP+with+PhpStorm+IDE#InstallingandConfig uringXAMPPwithPhpStormIDE- 11
  • 12. Paquete 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' 12
  • 13. Instalar PHP >sudo apt-get install tasksel >sudo tasksel Seleccionar con cursores y espacio, y tabuladores para el botón Aceptar Nos pide contraseña de mysql (apuntarla!) 13
  • 15. Comprobar puertos de servidores > sudo netstat -plunt Conexiones activas de Internet (solo servidores) Proto Recib Enviad Dirección local Dirección remota Estado PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* ESCUCHAR 9620/mysqld tcp6 0 0 :::80 :::* ESCUCHAR 11926/apache2 15
  • 16. Iniciar / reiniciar /parar servicios ▣ Sintaxis general ▣ Ej. Servidor web apache2 y mysql > sudo service <servicio> start|restart|shutdown > sudo service apache2 start > sudo service apache2 restart > sudo service apache2 stop > sudo service mysql start > sudo service mysql stop 16
  • 17. Configurar apache2 ▣ Ficheros de configuración /etc/apache2 □ apache2.conf: configuración global □ ports.conf: puertos de escucha □ ficheros de configuración en mods-enabled, conf- enabled y sites-enabled: configuraciones para gestionar módulos, fragmentos de la configuración global y hosts virtuales, respectivamente □ Los directorios x-enabled contienen enlaces simbólicos a configuraciones de x-available: mods- available, conf-available, sites-available 17
  • 18. apache2.conf ▣ /etc/apache2/apache2.conf incluye el resto de ficheros > sudo service <servicio> start|restart|shutdown ▣ Define directivas globales y se carga al lanzar apache. Podemos recargarlo con: > sudo service apache2 start ▣ Si una directiva la ponemos dos veces, se sobreescribe IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf > sudo service apache2 reload 18
  • 19. Administración básica ▣ El servidor por defecto está configurado en □ /etc/apache2/sites-enabled/000-default.conf ▣ Ejemplo de configuración □ cambiar la carpeta donde tenemos las páginas web □ poner el nombre del servidor (o IP) DocumentRoot /var/www/html ServerName localhost En esta carpeta necesitamos permisos de root (sudo), podemos cambiarlo a otra carpeta en nuestra cuenta 19
  • 20. Administración básica: cambiar puerto ▣ 1. Cambio ports.conf ▣ 2. Cambio el sitio (ej. 000-default.conf) Listen 80 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule> Listen 80 Listen 80 Listen 8080 Listen 192.168.0.54:8081 <VirtualHost *:80> … </VirtualHost> 20
  • 21. Activar / desactivar configuraciones ▣ Para activar / desactivar módulos, configuraciones o sitios, se pueden usar a2enmod a2dismod a2ensite a2dissite a2enconf a2disconf > cd /etc/apache2 > ls mods-available/userdir* mods-available/userdir.conf mods-available/userdir.load > ls mods-enabled/userdir* ls: cannot access mods-enabled/userdir*: No existe el archivo o directorio > sudo a2enmod userdir Enabling module userdir. To activate the new configuration, you need to run: service apache2 restart > ls mods-enabled/userdir* mods-enabled/userdir.conf mods-enabled/userdir.load 21
  • 22. Logs ▣ Se configuran en □ envvars → APACHE_LOG_DIR □ 000-default.conf → ErrorLog y CustomLog ▣ La ruta por defecto es /var/log/apache2 donde tenemos access.log y error.log > tail -f /var/log/apache2/access.log 127.0.0.1 - - [17/Mar/2015:16:07:58 +0100] "GET / HTTP/1.1" 200 3594 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36" 127.0.0.1 - - [01/Mar/2015:16:07:59 +0100] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3688 "http://localhost/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 22
  • 23. Virtual host (I) ▣ Nos permiten servir más de un sitio web en un mismo servidor web ▣ Vamos a simular un host ▣ Añado (con sudo) en /etc/hosts #virtual host 127.0.0.1 www.tewc.upm.edu http://www.tewc.upm.edu 23
  • 24. Virtual host (II) ▣ Quiero ahora escuchar en *:80 y www.tewc. upm.edu:8080 ▣ Añado □ en ports.conf Listen 8080 □ en 000-default.conf (misma configuración que <VirtualHost *:80> <VirtualHost www.tewc.upm.edu:8080> ... </VirtualHost> http://www.tewc.upm.edu:8080 24
  • 25. Ejemplo de directivas ▣ Dar permisos de acceso a directorios con la directiva Directory ▣ Definir el número máximo de procesos hijos con MaxRequestWorkers o número máximo de peticiones por proceso hijo MaxConnectionsPerChild. Si lo superamos, pondrá, servidor ocupado. 25
  • 26. Ejemplo de módulos ▣ libapache2-mod-auth-mysql - Apache 2 module for MySQL authentication ▣ libapache2-mod-php5 - lado servidor, lenguaje de guionización HTML-embebido (módulo Apache 2) ▣ libapache2-mod-python - módulo integrado Python para Apache 2 ▣ Ver más con > sudo apt-cache search libapache2-mod |more 26
  • 27. 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 Fuente_ http://www.w3.org/Daemon/User/Installation/PrivilegedPorts. html 27
  • 28. Fallos habituales ▣ Intentamos lanzar un servidor web, y ya hay un proceso escuchando en el puerto 80 ▣ Solución: 'acabar' con el proceso 28
  • 29. ¿Cómo acabo con el proceso? ▣ Si sospechas que está lanzado apache2 > sudo service apache2 stop 29
  • 30. ¿Cómo listo los procesos? ▣ Opción 1: fuser ▣ Opción 2: ps |grep 30
  • 31. ¿Cómo mato los procesos? ▣ Opción 1: kill -9 ▣ Opción 2: killall 31
  • 33. Ejecutar como script ▣ Con php5-cli instalado ▣ Ejecuto 33
  • 34. Ejecutar como consola interactiva ▣ Con php5-cli instalado 34
  • 35. Ejecutar como servidor web interno ▣ Con php5-cli instalado ▣ Puedo indicar puerto y DocumentRoot 35 Usar un puerto diferente de 80 (p.ej. 81) si tenemos ya lanzado un apache
  • 36. Ejecutar en Apache ▣ Debemos copiar los ficheros php al document root /var/www/html ▣ Y ya estará visible 36
  • 37. Problemas de permisos ▣ Problema □ /var/www/html pertenece a root □ No podemos editar con nuestro usuario directamente los ficheros ‘desplegados’ ▣ Soluciones □ Cambiar el document root de apache 2 a un directorio nuestro ■ Debemos añadir el directorio con Directory y cambiar DocumentRoot □ Hacer un enlace simbólico desde /var/www a nuestro directorio □ Crear un grupo en el que estemos root, apache2 y nosotros y dar permisos al grupo 37
  • 38. Crear grupo y asignarle document root ▣ Crear grupo y añadir a tu usuario (ej. tu-login) y a apache2 (www-data) ▣ Cambiar propietario de /var/www 38 > sudo groupadd www-pub > sudo usermod -a -G www-pub tu-login > sudo usermod -a -G www-pub www-data > sudo chown -R root:www-pub /var/www
  • 39. Cambiar permisos ▣ Dar permiso de lectura a todos, a los del grupo de escritura y añade setguid para que retengan el grupo ▣ Nos tenemos que salir de la sesión, entramos, y ya podremos crear ficheros en /var/www 39 > sudo chmod -R o+r /var/www > sudo chmod -R g+w /var/www > sudo find /var/www -type d -exec chmod g+s {} + > cd /var/www > echo hola > hola.txt > ls -al drwxrwsr-x 2 root www-pub 4096 mar 1 08:19 . drwxrwsr-x 3 root www-pub 4096 mar 1 08:54 .. -rw-rw-r-- 1 cif www-pub 1 mar 18 01:19 hola.txt -rw-rw-r-- 1 root www-pub 11510 mar 1 08:55 index.html
  • 43. Ejecución como script o en web 43 Script Web
  • 45. Integrar con phpStorm 45 ▣ Mirar documentación en https://confluence. jetbrains. com/display/PhpStorm/Installing+and+Confi guring+MAMP+with+PhpStorm+IDE#Installing andConfiguringMAMPwithPhpStormIDE- IntegratingMAMPwiththeIDE
  • 46. Instalar php-cgi ▣ Si no lo tienes instalado, hay que instalarlo 46 > sudo apt-get install php5-cgi
  • 48. Paso 1. Configurar Intérprete 48 Pinchar en los “...”
  • 49. Escoger intérprete PHP 49 Dar al “+” y seleccionar intérprete
  • 51. Prueba: crear página PHP y dar Run 51
  • 52. Paso 2. Configurar Despliegue 52 ▣ Tenemos varias opciones, todas soportadas ▣ Servidor en lugar (server in place): □ servidor local con document root la carpeta madre del raíz del proyecto □ tenemos permisos para escribir en el document root y desarrollamos directamente en esa carpeta ▣ Servidor local: □ servidor local □ la carpeta del proyecto no es el document root ▣ Servidor remoto: □ servidor remoto y carpeta remota Fuente https://www.jetbrains.com/phpstorm/help/configuring-synchronization-with-a- web-server.html
  • 53. Paso 2a. Configuración Servidor ▣ Vamos a Settings->Deployment (despliegue) 53
  • 54. Paso 2b. Configurar Connection 54
  • 55. Paso 2c. Configurar Mappings 55
  • 56. Paso 3. Configurar Run Configuration 56 Desplegamos el menú de Run (botón verde play) y seleccionamos Edit Configurations
  • 57. Paso 3a. Run/Debug Configurations 57 Añadimos configuración PHP Web Application
  • 58. Paso 3b. Run/Debug Configurations 58 Añadimos configuración Before launch: upload
  • 59. 5. Instalar PHP en Windows Cómo instalar PHP en Windows 59
  • 60. Instalar PHP en Windows 60 ▣ Instalar WAMP □ http://www.wampserver.com/en/ ▣ Te instala apache, mySQL, etc. ▣ Verás una aplicación para lanzar / parar Apache, etc. ▣ Normalmente, será □ $DIRECTORIO_WAMPbinphp.exe (intérprete PHP) □ $DIRECTORIO_WAMPwamp (carpeta DocumentRoot donde poner tus páginas)
  • 61. Configurar PHPStorm en Windows ▣ Sigue los pasos mostrados en la sección de windows ▣ La diferencia está en: □ cómo localizar php.exe (paso 1) □ cómo configurar el despliegue (paso 2) 61
  • 62. Paso 1. Localizar php.exe 62Agradecimientos: Javier Puente Aller
  • 64. Localizar php.exe en Windows 64
  • 65. Localizar php.exe en Windows 65
  • 66. Localizar php.exe en Windows 66
  • 67. Localizar php.exe en Windows 67
  • 68. Paso 2. Configurar Despliegue 68 ▣ Hay dos opciones □ Usar ‘Server in place’ y crear los proyectos phpStorm DENTRO de la carpeta $DIRECTORIO_WAMP/wamp □ Usar ‘Server local’ ■ Sigue los pasos descritos en la sección de Ubuntu
  • 69. Paso 2a. Configurar Servidor 69Agradecimientos: Óscar Vázquez
  • 70. Paso 2b. Configurar Conexión 70
  • 71. Paso 2c. Configurar mappings 71
  • 72. 6. Instalar PHP en Mac Cómo instalar PHP en Mac 72
  • 74. Paso 1. Configurar intérprete 74Agradecimientos: Alejandro
  • 75. Paso 2b. Configurar conexión 75
  • 76. Paso 2c. Configurar Mappings 76
  • 77. Paso 3a. Configurar Run configuration 77
  • 78. 7. Entorno virtualizado en el lab del DIT Cómo usar una máquina virtual en el laboratorio 78
  • 79. Laboratorio. Acceso máquina virtual ▣ Tienes que estar en el laboratorio ▣ Paso 1. Copiar el escenario de prueba: ▣ Paso 2. Arrancar máquina virtual ▣ Paso 3. Acceder a la máquina virtual via ssh con X-forwarding > cp/mnt/vnx/repo/labo-cif/labo-cif.xml . > sudo vnx -f labo-cif.xml -v -t > slogin -X <cuenta_alumno>@10.1.0.4 79
  • 80. Laboratorio. Realizar acciones en VM ▣ El home del alumno queda montado en la máquina virtual. Todos los archivos están accesibles y los cambios son persistentes. ▣ Se pueden ejecutar órdenes con sudo y contraseña del alumno o como ‘root’ y contraseña ‘xxxx’ ▣ Acciones. Arrancar phpStorm en la máquina virtual (terminal con login en @ubuntu) o firefox ▣ Acciones. Instalar algo: con sudo apt-get <paquete> > /opt/JetBrains/PhpStorm-139.732/bin/phpstorm.sh & 80
  • 81. Gestionar VM ▣ Ejecutar en un terminal de la máquina (no el el del login ubuntu, que es el virtual) ▣ Acciones. Parar escenario conservando cambios ▣ Acciones. Volver a arrancar la VM ▣ Acciones. Parar escenario destruyendo cambios > sudo vnx -f labo-cif.xml -v --shutdown > sudo vnx -f labo-cif.xml -v --shutdown > sudo vnx -f labo-cif.xml -v --start > sudo vnx -f labo-cif.xml -v --destroy 81
  • 82. 8. Desarrollo en la nube Cómo ejecutar PHP desde nuestro IDE 82
  • 83. Creciente número de IDEs en la nube 83
  • 88. Conclusiones ▣ La primera tarea para aprender PHP es instalar PHP y comprobar que somos capaces de ejecutar un ejemplo en el navegador ▣ Un entorno IDE como phpStorm nos va a permitir desarrollar, ejecutar y depurar tanto PHP como HTML, CSS y JavaScript 88
  • 89. Es importante conocer y saber administrar nuestro entorno. La tendencia es automatizar entornos IT con herramientas como Docker, Puppet, Vagrant, ... 89
  • 91. Referencias ▣ Tasksel □ https://help.ubuntu.com/community/Tasksel ▣ Adminstración Ubuntu □ http://proquest.safaribooksonline. com/book/operating-systems-and-server- administration/linux/9780133927368 ▣ Configuración phpStorm con PHP □ https://confluence.jetbrains. com/display/PhpStorm/Installing+and+Configuring +MAMP+with+PhpStorm+IDE#InstallingandConfigu ringMAMPwithPhpStormIDE- IntegratingMAMPwiththeIDE 91
  • 92. Créditos Gracias a todos los que han publicado estos recursos de forma gratuita: ▣ Minicons de Webalys ▣ Plantilla de la presentación de SlidesCarnival ▣ Fotos de Unsplash y Wix 92