Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
com
Curso de instalación
de Linux como servidor
web Apache HTTPD
con Tomcat, PHP,
SolucionJava.com
y MySQL
Índice
1 Introducción al curso.....................................................................................................................................................................4
1.1Objetivo de este curso....................................................................................................................................................................4
1.2Manual del alumno........................................................................................................................................................................4
1.3Ejercicios prácticos........................................................................................................................................................................4
1.4Requisitos para atender a este curso...........................................................................................................................................4
1.5Soporte después del curso.............................................................................................................................................................4
2INSTALACIÓN DEL SERVIDOR Linux......................................................................................................................................5
2.1Planificación....................................................................................................................................................................................5
2.1.1Distribuciones de Linux....................................................................................................................................................5
2.1.2Requisitos materiales.........................................................................................................................................................5
2.1.3Sistemas de archivos.........................................................................................................................................................5
2.1.3.1XFS: ..........................................................................................................................................................................5
2.1.3.2EXT3: .......................................................................................................................................................................5
2.1.3.3ReiserFS: ..................................................................................................................................................................5
2.1.3.4Swap:.........................................................................................................................................................................5
2.1.4Determinar las cuentas apropiadas para el servidor..........................................................................................................6
2.2Instalación.......................................................................................................................................................................................6
2.2.1Arranque............................................................................................................................................................................6
2.2.2Bienvenido........................................................................................................................................................................6
2.2.3Modo de instalación..........................................................................................................................................................6
2.2.4Reloj y zona horaria..........................................................................................................................................................6
2.2.5Selección de escritorio......................................................................................................................................................6
2.2.6Particionamiento................................................................................................................................................................6
2.2.7Nuevo usuario...................................................................................................................................................................7
2.2.8Configuración de la instalación.........................................................................................................................................7
2.2.9Refrescos...........................................................................................................................................................................7
2.3Seguridad.........................................................................................................................................................................................7
2.3.1Cuentas de usuario............................................................................................................................................................7
2.3.2Acceso remoto...................................................................................................................................................................7
2.3.3Servicios activos................................................................................................................................................................7
2.3.4Corta fuego........................................................................................................................................................................7
3El servicio Apache Httpd.................................................................................................................................................................8
3.1Instalación.......................................................................................................................................................................................8
3.2Configuración.................................................................................................................................................................................8
3.2.1Inicio automatico...............................................................................................................................................................8
3.2.2Inicio/reinicio/paro manual...............................................................................................................................................8
3.2.3Archivos de configuración................................................................................................................................................8
3.2.4Configuración con YAST..................................................................................................................................................8
3.2.4.1Paso 1/5: Dispositivo de red......................................................................................................................................8
3.2.4.2Paso 2/5: módulos......................................................................................................................................................8
3.2.4.3Paso 3/5: equipo predeterminado..............................................................................................................................9
3.2.4.4Paso 4/5: equipos virtuales........................................................................................................................................9
3.2.4.5Paso 5/5: resumen......................................................................................................................................................9
3.3Prueba del servicio.........................................................................................................................................................................9
4Servidor PHP.................................................................................................................................................................................10
4.1Instalación.....................................................................................................................................................................................10
4.2Configuración...............................................................................................................................................................................10
4.3Prueba del servicio.......................................................................................................................................................................10
©Copyright Cédric Simon, 2008 Versión 1.0 Reproducción prohibida
Curso de instalación de Linux como servidor web Apache HTTPD con Tomcat, PHP, y MySQL Pagina 3 / 17
1 Introducción al curso
1.1 Objetivo de este curso
En este curso vamos a ver como instalar un servidor Linux para hospedar un servidor web con capacidad de JSP y
una base de datos MySQL.
Este curso no cubre todos los aspectos ni todas las opciones de Linux, enfocando en las más útiles para un servidor
web.
Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones adicionales al
profesor.
Todas las versiones de Linux hacen prácticamente las mismas cosas. Solo que algunas tienen ciertas herramientas
y otras no, ciertas llevan por defecto mas o diferente paquetes que otras, etc..
No hay una distribución que sea 'mejor' que otras. Algunas tienen una meta más a servidor (Fedora, Debian), y otras
más hacía escritorio (Ubuntu), pero al final todas se pueden usar tanto como servidor así como escritorio. Al final la
diferencia entre los dos deprenderá de los paquetes que se instalarán, y del uso que se hará del PC instalado con
Linux.
Debido a que Linux es gratis, se puede fácilmente distribuir la carga sobre varios servidores en caso que sea
necesario, ya que no tendrá costo de licencia ;-).
2.1.3.1 XFS:
Principalmente este fue creado para el sistema operativo de SGI, IRIX. Ahora esta disponible bajo la licencia GPL,
para Linux. Este file system es muy bueno con archivos grandes asi que si trabajas con archivos pequeños,
continua leyendo. Si manejas archivos "medianamente" pequeños, no se recomienda que uses XFS, sino ReiserFS,
que para estos archivos es rápido, en cambio si usas archivos a los cuales los podes denominar como grandes, muy
grandes, excesivamente grandes, en este caso si se recomienda usar XFS.
2.1.3.2 EXT3:
Ext3 es mucho más seguro que ext2. Si estas usando ext2 y queres cambiarte a otro sistema de archivos journaling,
se recomienda que el primero sea Ext3, porque hay menos riesgos de perder los datos e información; y es
compatible con ext2.
2.1.3.3 ReiserFS:
Este fue el "primero en estar estable para Linux". Posee una estructura de datos b-trees, es rápido con archivos
pequeños, todo lo contrario de XFS.
2.1.3.4 Swap:
El sistema de archivo swap es un tipo de sistema que se usa únicamente para la 'partición de intercambio', que es
como la memoria virtual (en disco). Por lo general se recomiendo tener una partición de intercambio de un tamaño
igual a 1.5 x la memoria RAM del PC.
En este sentido (también) Linux es más seguro que Windows, ya que trabajando con un usuario (menos root), no se
puede dañar seriamente el sistema (virus).
2.2 Instalación
Vamos a instalar la versión 11.0 de openSuse Linux. Porque openSuse y no un otro, pues no porque es mejor que
otra, pero simplemente por el profe (yo) lo conozco mejor por haberlo utilizado de hace 5 años !
OpenSuSe viene en un DVD (versión completa con muchos paquetes), o en CD con KDE o Gnome (versión con
menos paquetes incluidos).
2.2.1 Arranque
Hay que arrancar con el CD/DVD. Para eso, configura el BIOS debidamente, o empuja la tecla (F11, F12...) que
permite escoger el medio de arranque.
Una vez arrancando en el CD/DVD y que apareció el menú, empujamos F2 para cambiar el idioma a Español,
eventualmente F3 para cambiar la resolución de pantalla. Luego escogemos 'Instalación' en el menú y presionamos
'Enter' para iniciar la instalación.
2.2.2 Bienvenido
Se verifica el idioma y la configuración del teclado, se marca la casilla de aceptar la licencia, y se empuja el botón
'Siguiente'.
2.2.6 Particionamiento
Aquí se va a particionar el disco duro.
Si ya existe una versión de Windows (u otro sistema operativo) instalado, el va a proponer (según las posibilidades)
de redimencionar las particiones existentes para crear espacio para Linux.
Personalmente, yo edito la propuesta de openSuse, borro la /home y ocupo el espacio liberado para la raíz (/).
Si se menciona algún problema con la partición de Windows, hay que reiniciar en Windows y correr la herramienta
de verificación de disco de Windows sobre el disco antes de intentar de nuevo de instalar Linux.
Por supuesto, para una instalación 'definitiva', para su escritorio o su servidor, escoge una clave que sea segura
(mas de 5 caracteres, con número, mayúsculas y minúsculas...).
Para el curso, vamos a dejar que se utiliza la misma contraseña para el administrador (root). En producción o
ambiente con seguridad, les aconsejo de tener claves diferentes para root y los otros usuarios.
Es buena idea marcar la casilla para que el usuario reciba el correo del sistema.
Para el curso vamos también a dejar el inicio de sesión automático. No lo aconsejo en producción.
Empujamos el botón 'Siguiente' y contestamos que 'Si' a las alertas de seguridad (porque estamos en el curso, no
en producción).
Se revisa el resumen de instalación y se empuja el botón 'Instalar'. Si sale una ventana de alerta, se confirma la
instalación empujando el botón 'Instalar'.
2.2.9 Refrescos
Se toma un refresco mientra se instala Linux...
2.3 Seguridad
Se crean cuentas de usuario como sea necesario, dándoles los permisos necesarios. Ciertos usuarios, como
'tomcat' se crean sin permiso de iniciar una sesión. Eso permite limitar al máximo los derechos del usuario y evitar el
uso malintencionado de esta cuenta.
Se inicia YAST (se necesita poner la clave de root), luego se selecciona 'Instalar / desintalar software'.
Verifica que el filtro está puesto en 'Buscar', y busca con la cadena Apache2.
Marca la casilla al lado de 'apache2' en la lista de paquetes. Se seleccionarán automáticamente los paquetes
dependientes.
Clic sobre el botón 'Aceptar' para iniciar la instalación, y acepta los cambios automáticos (paquetes dependiente
agregados).
3.2 Configuración
Se definen las principales variables (carpeta por defecto, etc...) y cuales otros archivo se incluyen en la
configuración.
Para reducir/dividir el archivo de configuración, una gran parte de la configuración se encuentra en otros archivos
que el httpd.conf incluye via clausula 'include', y que se encuentran bajo la misma carpeta o bajo una subcarpeta.
El otro archivo importante es el archivo apache2 que se encuentra bajo /etc/sysconfig/ y que crea parte de los
archivos de configuración anteriormente mencionados de manera dinámica.
Le debería de aparecer una página 'Access forbidden', ya que por defecto no hay una página de inicio y no se
permite ver el contenido de la carpeta de inicio.
Si desarrolla bajo Windows, y no respetas las mayúsculas y minúsculas, te va a corren bien en desarrollo, pero una
vez migrado bajo Linux, ya no va a encontrar los archivos...
4 Servidor PHP
4.1 Instalación
El php se instala como un módulo de Apache.
Se inicia YAST (se necesita poner la clave de root), luego se selecciona 'Instalar / desintalar software'.
Verifica que el filtro está puesto en 'Buscar', y busca con la cadena php.
Para un servidor de producción, les aconsejo solo instalar los módulos necesarios, quitando todo los módulos
inútiles, con el fin de limitar los problemas de seguridad ya que el PHP es una entrada muy común para los hackers.
Clic sobre el botón 'Aceptar' para iniciar la instalación, y acepta los cambios automáticos (paquetes dependiente
agregados).
4.2 Configuración
El PHP en sí se configura en el archivo php.ini que se encuetra bajo /etc/php5/apache2/
Para que el PHP sea activo en Apache, hay que activar el módulo PHP en apache (ver punto anterior)
Si te enseña el código en vez de ''Hola Mundo', es que el módulo PHP no esta activo, o que Apache2 no ha sido
reiniciado desde que activaste el PHP.
Si desarrolla bajo Windows, y no respetas las mayúsculas y minúsculas, te va a corren bien en desarrollo, pero una
vez migrado bajo Linux, ya no va a encontrar los archivos...
Se inicia YAST (se necesita poner la clave de root), luego se selecciona 'Instalar / desintalar software'.
Verifica que el filtro está puesto en 'Buscar', y busca con la cadena tomcat.
Clic sobre el botón 'Aceptar' para iniciar la instalación, y acepta los cambios automáticos (paquetes dependiente
agregados).
5.2 Configuración
Oops, no les funciona. Debido a un error de paquete, no crearon el enlace para reiniciar fácilmente Tomcat.
Aquí se pueden por ejemplo definir una conexión a la base de datos, para no tener que mencionar estos detalles a
nivel del código Java, pero que agare los detalles del servidor, lo que permite migrar de un servidor al otro estando
seguro que usará la base de datos correcta.
Ejemplo:
password="SolJava"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/vidaautoReconnect=true"/>
<!-- Extra info end -->
</Context>
Mientras no la borra, la raiz del sitio por defecto (localhost) será la página de inicio que está bajo esta carpeta
ROOT. Hay que borrarla para poder definir otro sitio en la raiz.
Le debería de aparecer una página sobre Apache Tomcat si instalaste 'tomcat6-webapps', o una página de 'Error
404' de Tomcat en otro caso.
Si desarrolla bajo Windows, y no respetas las mayúsculas y minúsculas, te va a corren bien en desarrollo, pero una
vez migrado bajo Linux, ya no va a encontrar los archivos...
JkWorkersFile "/tomcat/conf/jk/workers.properties"
JkLogFile "/tomcat/logs/mod_jk.log"
JkLogLevel info
Verifica los caminos de carpetas mencionados arriba para que coinciden con tu instalación.
<VirtualHost 192.168.1.250:80>
ServerName relih
ServerAdmin cedric@relih.com
DocumentRoot /srv/www/htdocs
JkMount /* ajp13
JkUnMount /images/*.* ajp13
</VirtualHost>
La configuración arriba manda a Tomcat todos los archivos debajo de la raíz (/) del sitio relih (192.168.0.250:80)
exceptúo cuando se tarta de un archivo debajo de la subcarpeta /imagenes del mismo sitio, en cual caso la busca
debajo de la carpeta por defect del sitio (DocumentRoot).
worker.list= ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
Para configurar varios IP en un tarjeta, abre YAST, y en el menú de 'dispositivos de red', escoge 'Ajustes de la red'.
Selecciona la tarjeta de red que recibirá las conexiones de Internet, edita la y añade tantos IP con su alias como
necesario.
Por defecto, si el PHP está instalado en el servidor, está activo en todos los sitios.
Para Tomcat, hay que configurar el conector Apache (mod_jk.conf) para cada sitio debidamente.
7 Servidor MySQL
7.1 Instalación
MySQL se instala fácilmente usando YAST, la herramienta administrativa de openSuSe.
Se inicia YAST (se necesita poner la clave de root), luego se selecciona 'Instalar / desintalar software'.
Verifica que el filtro está puesto en 'Buscar', y busca con la cadena mysql.
Marca la casilla al lado de 'mysql' en la lista de paquetes. Se seleccionarán automáticamente los paquetes
dependientes. Opcionalmente se selecciona 'php-mysql' si van a conectar MySQL con PHP, y herramientas cono
MySQL Administrator o MySQL Query.
Clic sobre el botón 'Aceptar' para iniciar la instalación, y acepta los cambios automáticos (paquetes dependiente
agregados).
7.2 Configuración
Para crear la clave de root, ejecuta /usr/bin/mysqladmin -uroot password 'new password'
Por defecto el usuario root solo se puede conectar desde el servidor (en local).
8.2 Logs
Los logs se encuentran generalmente debajo de /var/log, y para Tomcat debajo de /usr/shared/tomcat6/logs
Hay que revisar regularmente los logs para detectar anomalías. A nivel de seguridad también se debería de revisar
los logs en busca de intentos de intrusión.