You are on page 1of 44

INTEGRANTES Pamela Andrade Ernesto Cndor Germn Pantoja David Vega

Procedimiento

Vamos a describir la instalacin de un servidor de aplicaciones web con base apache, mysql como gestor de bases de datos y PHP como lenguaje de programacin que se utilizar para la creacin de contenidos web dinmicos. Instalaremos primero el gestor de bases de datos, luego apache, ms tarde le daremos soporte PHP y finalmente se comenta la instalacin de la utilidad de administracin de Mysql a travs de web mediante phpMyAdmin.

COMO ...
       

Descargamos los fuentes. Comprobamos md5 Llevamos directorios temporales Descomprimimos los archivos Compilamos los fuentes Instalamos los servidores Revisamos detalles de seguridad Poner en marcha los servidores

Variables utilizadas y archivos necesarios


      

$TEMP_MYSQL : donde hacemos la instalacin $MYSQL_DIR : directorio final de MySQL $TEMP_APACHE : directorio de instalacin $APACHE_DIR : directorio final de apache $APACHE_DOCS : directorio donde se encuentran las webs $TEMP_PHP : directorio de instalacin $PHP_DIR : directorio final de PHP Se presupone que se han descargado los fuentes de los servidores apache y mysql, as como los fuentes del lenguaje de scripting PHP. Estos archivos son:  mysql-version.tar.gz  httpd-version.tar.gz  php-version.tar.bz2

Los descargaremos de los sitios oficiales de estos programas.

MySQL - instalacin
groupadd mysql ;creamos el grupo mysql useradd g mysql mysql ;creamos el usuario mysql mkdir $MYSQL_DIR ; directorio final de mysql mkdir $MYSQL_DIR/conf ; por poner un sitio concreto para conf cp mysql-version.tar.gz $TEMP_MYSQL cd $TEMP_MYSQL tar xvzf mysql-version.tar.gz ;descomprimir cd mysql-version ; desde dentro del directorio ... ./configure --prefix=$MYSQL_DIR \ --sysconfdir=$MYSQL_DIR/conf \ --with-mysqld-user=mysql # make # make install # # # # # # # # #

MySQL - instalacin
Copiamos el archivo de configuracin: # # se supone que estamos en $MYSQL_DIR # cp support-files/my-small.cnf $MYSQL_DIR/conf/my.cnf Creamos enlaces simblicos : # cd /usr/local # ln s $MYSQL_DIR mysql Creamos las bases de datos iniciales de mysql # cd $MYSQL_DIR # $MYSQL_DIR/scripts/mysql_install_db --user=mysql

MySQL instalacin
Asignamos los permisos de acceso:
# # # # # cd $MYSQL_DIR chown R root . chown R mysql data chgrp R mysql . chmod R 750 . Nota: las nuevas versiones de MySQL han cambiado el directorio data por var.

Lanzamos el servidor:
# $MYSQL_DIR/bin/mysqld_safe --user=mysql \ --defaults-extra-file=$MYSQL_DIR/conf/my.cnf &

MySQL - test
Si queremos probarlo, nos conectamos como root de mysql: # mysql u root p

mysql>show databases;
Y se muestran las bases de datos creadas.

Instalar servidor apache


www.apache.org pgina oficial de apache. Siguiedo las instrucciones de la pgina descargamos la aplicacin httpd-version.tar.gz Para la instalacin seguimos las instrucciones de los ficheros README e INSTALL

Instalar servidor apache


# groupadd apache ;creamos el grupo apache # useradd g apache apache ;creamos el usuario apache # mkdir $APACHE_DIR ; directorio final de apache # cp httpd-version.tar.gz $TEMP_APACHE # cd $TEMP_APACHE # tar xvzf httpd-version.tar.gz ;descomprimir # cd httpd-version ./configure --help explica las opciones de configuracin # ./configure with-mpm=prefork \ ;no threaded con prefork --prefix=$APACHE_DIR \ ; directorio de apache --enabled-so ; permite Dynamic Shared Oject (modulo en windows) # make # make install #$APACHE_DIR/bin/apcheclt start

Instalar servidor apache


Nota: ./configure --with-mpm=prefork \ --prefix=$APACHE_DIR \ --enabled-so La opcion --with-mpm=prefork no es la opcin por defecto para apache2 (threaded). Si utilizamos PHP como lenguaje de scripting, surge un problema de seguridad cuando apache crea nuevos threads para cada nueva conexin. Para evitarlo utilizamos el modo prefork. En apache 1.3 o anteriores este problema no existe por ser prefork el modo por defecto. Este problema se discute en la pgina: http://es2.php.net/manual/es/faq.installation.php#faq.installation.apache2

Instalar servidor apache


Nota: ./configure --with-mpm=prefork \ --prefix=$APACHE_DIR \ --enabled-so La opcin enable-so la necesitamos para activar el comportamiento de shared-objects, necesario para la carga de mdulos. PHP ser cargado como mdulo, y as dejamos ya la compilacin de nuestro servidor preparado para la prxima etapa de instalar PHP, y no tener que recompilar apache, como se indica en los archivos INSTALL de la instalacin de PHP, donde ya presuponen que previamente tenas instalado el servidor web.

Instalar servidor apache


En estos momentos, nuestro servidor web ya es operativo. Para ponerlo en marcha utilizaremos: # $APACHE_DIR/bin/apachectl start El script apachectl tiene otros posibles parmetros: stop para detener el servidor, restart para reiniciarlo tras efectuar cambios y status para verificar el estado de ejecucin.

Apache - configuracin
 

La configuracin del servidor se hace a travs de directivas. El fichero de configuracin del servidor Apache es: $APACHE_DIR/conf/httpd.conf. httpd.conf divide en 3 secciones.


 

Seccin 1. Entorno global. Descripcin del funcionamiento general del servidor y rutas de acceso a otros ficheros de configuracin. Seccin 2. Entorno del servidor principal. Comportamiento predeterminado del servidor. Seccin 3. Servidores virtuales que se pueden definir en este fichero para emular diferentes servidores.

Apache configuracin directivas de entorno global


ServerRoot. /ruta Directorio raz para el servidor. Por defecto es /etc/httpd Timeout segs. Indica el intervalo de espera entre peticiones web antes de desconectar. Para evitar bloqueos de conexiones. KeepAlive on/off. Determina si el servidor permite varias peticiones para un mismo cliente.

Apache configuracin directivas de entorno global




Listen puerto/dir IP. Identifica los puertos por los que el servidor aceptar peticiones entrantes. Por defecto son 80/443 para conexiones no seguras/seguras. Pidfile. Indica el archivo en el que el servidor guarda su ID de proceso. Por defecto este archivo es: var/run/httpd.pid LoadModule nom_mod ruta_mod. Carga el mdulo que le indiquemos en esa ruta. PHP ser cargado posteriormente a travs de esta directiva.

Apache configuracin directivas de servidor principal




Port num. Puerto por el que escucha el servidor principal. Solo puede haber uno. User/Group nombre. Establece el nombre de usuario y el grupo para el proceso del servidor. Segn ya habamos previsto, sern apache y apache, respectivamente. ServerAdmin e-mail. Esta direccin de correo aparecer en los mensajes de error generados por el servidor.

Apache configuracin directivas de servidor principal




ServerName DNS:puerto. Define el nombre de servidor y puerto que se enviar a los clientes. No debe coincidir con el nombre real de la maquina, pero debe ser un nombre de dominio que pueda ser resuelto por un servidor DNS. ServerSignature on/off/email. En un mensaje de error se muestra el nombre de la mquina y la versin de apache usada. DocumentRoot $APACHE_DOCS. Directorio que contiene los archivos HTML para enviar a los clientes en respuesta a sus peticiones. DirectoryIndex doc. Cuando se produce una peticin que termina en /, es decir, un directorio, el servidor mostrar la pgina que indiquemos aqu. Por defecto es index.html.

Apache configuracin directivas de servidor principal




<IfModule mdulo> </IfModule> Crea un contenedor que se activa si se carga el mdulo especificado. UserDir ruta. Indica cual es el directorio del usuario que realiza la peticin. Cuando se produce una peticin del tipo ~user, el servidor buscar la pgina pedida en el directorio del usuario especificado en esta directiva. Ejemplo:  UserdDir home/username/public_html  peticin: http://exaple.com/~username/foo.html  servidor accede a: /home/username/public_html/foo.html

Apache configuracin directivas de servidor principal




AddModule modulo. Permite el uso de mdulos compilados que no estn activos. AddType tipoMIME extensin. Crea una asociacin entre el tipo MIME (Multimedia Internet Mail Extensin) y una extensin. Ejemplo: AddType text/html .shtml ErrorLog /ruta. Determina el archivo donde se guarda los errores que se producen en el servidor.

Apache configuracin directivas de servidor principal




DefaultType tipo. Cuando se le pase un documento cuyo tipo MIME desconozca, le asignar el que indiquemos aqu. Por defecto es plain/text. Una alternativa habitual es text/html. TransferLog /ruta. Guarda informacin acerca de los datos que salen y entran al servidor. Esta opcin carga mucho la directiva. CustomLog /ruta formato. Crea un fichero de registro con el formato especificado en formato. A formato le damos formato en la directiva LogFormat.

Apache configuracin directivas de servidor principal




LogFormat /ruta formato . Crea un formato determinado.

Las diferentes opciones son:  %A Direccin Ip local  %h Direccin Ip remota  %p Puerto TCP por el que se recibi la peticin  %t Fecha y hora  %b Bytes enviados  %u Usuario remoto en conexiones autentificadas  %v Nombre del servidor Ejemplo: LogFormat Ip del cliente = %h; hora %t miformato Customlog logs/access_log miformato

Apache configuracin directivas de servidor principal




LogLevel nivel. Existen 8 niveles de error, dependiendo del que especifiquemos aqu, se guardar mas o menos informacin en el fichero de ErrorLog.

Los distintos niveles son:  Debug. Guarda todo.  Info. Solo guarda los mensajes de informacin.  Notice.  Warn. Advertencias.  Error.  Crit.  Alert.  Emerg. Solo guarda los mensajes mas graves.

Apache configuracin directivas de servidor principal




ServerTokens Full | OS | Minor | Minimal | Major | Prod Determina que se enva como cabecera respuesta HTTP a cada peticin.

ServerSignature On | Off | Email Informacin adicional conteniendo un link con un email, para pginas errneas, por ejemplo.

Apache configuracin directivas de servidor principal




Alias alias ruta. Permite que haya directorios fuera del DocumentRoot a los que puede acceder el servidor. Cualquier URL que acabe en el alias, ser traducida a la ruta. Ejemplo:  Alias /pepe /home/pepe/web/  URL: http://server/pepe  acceso: /home/pepe/web/ ScriptAlias alias ruta. Define un directorio fuera del DocumentRoot que contiene scripts y procesos del servidor. Redirect /ruta nuevaURL. Cualquier peticin del documento solicitado en la ruta, ser automticamente redirigido a la nueva ubicacin. Ejemplo:  Redirect /pepe.html http://www.pepeweb.com/pepe.html

Apache configuracin directivas de contenedor




Se crean para definir y agrupar las directivas que afectan a los directorios a los que tiene acceso nuestro servidor.  <Directory ruta>  Options opciones  AllowOverride opciones  Order opciones  Allow opciones  Deny opciones  </Directory> Este grupo de directivas, se aplican al directorio indicado. Por defecto existe un contendor para DocumentRoot.

Apache configuracin directivas de contenedor




<DirectoryMatch /ruta> </DirectoryMatch> Permite expresiones regulares en la ruta. <File fichero> </File> Solo aplica las directivas al fichero indicado Fichero htacces. Cada usuario puede configurar su sitio web mediante un htacces. ste tiene el mismo el mismo formato que httpd.conf y debe estar en el directorio en el que se quieren realizar.

Apache configuracin directivas de contenedor




Opciones para options:


       

None All (exceto Multiviews). Indexes. Permite ver el contenido del directorio aunque no haya pgina de inicio. Includes. Permite incluir determinadas rutas o ficheros. FollowSymLinks. Sigue los enlaces simblicos entre este directorio y otro. SymLinksIfOwnerMatch. Solo si coincide el propietario del enlace y del destino. ExcecCGI. Permite la ejecucin de scripts CGI. Multiviews. Permite la vista del directorio desde varios clientes simultaneamente.

Apache configuracin directivas de contenedor




Opciones de AllowOverride: le indica al servidor que las opciones del contenedor las tome del fichero htacces. stas ltimas anulan las opciones de options. Algunos posibles valores son:  None. No permite directivas y no busca el fichero htacces  All. Permite todas las directivas y busca el fichero htaccess.  AuthConfig. El acceso al contenedor es a travs de clave.

Apache configuracin directivas de contenedor




Si AllowOverride es AuthConfig se necesitan tambin las directivas:  AuthType [Basic | Digest]  AuthName cadena  AuthUserFile archivo  Require user usuario Las asociaciones usuario-contrasea se guardan en archivo y usamos la utilidad...  Para crear uno nuevo $APACHE_DIR/bin/htpasswd [cm] archivo username password Para eliminar un usuario del archivo de contraseas $APACHE_DIR/bin/htpasswd D username


Nota: Slo para el modo Basic. El mdulo Digest puede consultarse en

http://httpd.apache.org/docs/2.2/es/mod/mod_auth_digest.html .

Apache configuracin directivas de contenedor




Order.  allow,deny. Permite a todos los que no estn denegados.  deny,allow. Deniega todo lo que no est permitido. Allow y Deny definen quin puede acceder al directorio. Los posibles valores son:  All. Permite o deniega a todos.  Direccin IP[/netmask][,IP[/netmask]]...  Nombre de Dominio

Apache configuracin directivas de servidor virtual




Servidor Virtual. Permite ejecutar varios servidores dentro de la misma mquina y as alojar varios sitios en un mismo servidor. Servidor Virtual basado en nombre. A una misma direccin IP se le asignan varios dominios. A cada uno de estos dominios se les asignar un servidor virtual. (solo compatible con http v1.1). Servidor virtual basado en direccin IP. Se asocia cada servidor virtual a una dir.IP diferente. Nuestra mquina deber tener varias direcciones IP asignadas.

Apache configuracin directivas de servidor virtual




Para definirlo usaremos varias directivas:  NameVirtualHost dir.IP:puerto. La direccin IP ser la de la mquina. Aqu se hace referencia a la maquina virtual predeterminada.  <VirtualHost dir_IP:puerto></VirtualHost> Se define un contendor para las directivas de nuestro servidor virtual. La IP ser tambin del servidor.  <VirtualHost_default_> </VirtualHost> Si una peticin no coincide con ninguna configuracin de ninguna mquina virtual, ste servidor ser el que la atienda. ServerAlias. A cada servidor virtual le daremos un alias que lo identifique

Apache configuracin Notas de seguridad de apache - permisos




Permisos del usuario apache slo de lectura, excepto en aquellos directorios donde la programacin o servicios requieran escritura (uploads de archivos al servidor, directorios donde php trabaje con ficheros,...) Apache tambin necesita permisos de escritura en el directorio de sesiones de la instalacin de PHP si la programacin en php hace uso de variables de sesin. Crear un grupo desarrolladores-web con los usuarios que pueden cambiar contenidos web y hacer que el directorio $APACHE_DOCS sea del grupo desarrolladores-web, con permisos de lectura y escritura.

Apache configuracin Notas de seguridad de apache El archivo robots.txt


  

Se coloca en $APACHE_DOCS/robots.txt Indica a apache qu directorios son accesibles por los bots de internet en busca de archivos e informacin sobre nuestras webs. Uso: se compone de estructuras del tipo User-agent: agente Disallow: directorio Slo se permite disallow. Si se desea conceder acceso a todo se deja la lnea sin especificar ningn directorio ( Disallow: ) Posibles agentes (bots):  * : para todos los agentes  WebCrawler : analizador web  Hay otros
    

 

Excite ArchitextSpider Altavista Scooter Lycos - Lycos_Spider_(T-Rex) Google Googlebot Alltheweb - FAST-WebCrawler/

Ejemplos:


Apache configuracin Notas de seguridad de apache El archivo robots.txt

Denegar todo acceso a nuestro web por parte de todos los bots de internet. Utilizaramos:
User agent: * Disallow: /

Denegar acceso slo al web /privado por parte de todos los bots: Denegar acceso al WebCrawler al web /intranet:
User agent: WebCrawler Disallow: /intranet User agent: * Disallow: /privado

Notas:
 

/ hace referencia al DocumentRoot del servidor web ($APACHE_DOCS) y no a la raiz del sistema de archivos de la mquina donde se ejecuta el servidor. Los webs a los que se hace referencia en robots.txt deben estar definidos en el fichero de configuracin del servidor.

Apache configuracin Notas de seguridad de apache logs




Se encuentran en $APACHE_DIR/logs/
 

access_log : logea los accesos al servidor web error_log : logea los accesos errneos al servidor web.

PHP - instalacin
# mkdir $PHP_DIR # cp php-version.tar.gz $TEMP_PHP # cd $TEMP_PHP # tar xjvf php-version.tar.bz2 # cd php-version # ./configure --with-apxs2=$APACHE_DIR/bin/apxs \ --with-mysql=$MYSQL_DIR \ with-config-file-path=$APACHE_DIR/conf # make # make install

PHP configuracin final


Copiar el archivo de configuracin de php en ubicacin final, editarlo si fuera necesario. # cp php.ini-dist $APACHE_DIR/conf/php.ini Editar httpd.conf Insertar las lneas DirectoryIndex index.php index.html index.htm LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml

phpMyAdmin - qu es?
Es una herramienta escrita en php con la intencion de manejar la administracin de MySQL a travs de web. Con phpMyAdmin se pueden realizar todas las operaciones de mantenimiento sobre una bases de datos. La aplicacin es un conjunto de archivos en php que copiaremos en un directorio de nuestro servidor apache, de modo que cuando accedemos a esos archivos, tendremos acceso a las bbdd gestionadas por MySQL.

phpMyAdmin instalacin
Descargar desde el sitio web: http://www.phpmyadmin.net/home_page/downloads.php Descomprimimos y colocamos en el directorio de publicacin de apache. Configuramos una entrada en el archivo de configuracin de apache: Alias /phpMyAdmin $APACHE_DOCS/phpMyAdmin/ <Directory $APACHE_DOCS/phpMyAdmin/> AllowOverride None Options Indexes Order allow,deny Allow from all </Directory>

phpMyAdmin instalacin
Nota: Tras entrar por primera vez en phpMyAdmin, es recomendable dirigirse a la seccin de privilegios. Crearemos una contrasea para el usuario root, o bien y ms recomendable an crearemos a un usuario alternativo a root, con todos sus privilegios, borrando posteriormente al propio root. As evitaremos los ataques a contraseas para el root, que ya no existe.

phpMyAdmin configuracin
En el archivo $APACHE_DOCS/phpMyAdmin/config.inc.php : $cfg[PmaAbsoluteUri] = http://localhost/phpMyAdmin; $cfg[PmaAbsoluteUri_DisableWarning] = TRUE; $cfg[Servers][$i][host] = localhost; $cfg[Servers][$i][auth_type] = http; $cfg[Servers][$i][user] = ; $cfg[Servers][$i][password] = ; config|http|cookie

Nota importante: Esta configuracin presupone que al menos un usuario con privilegios de root tiene asignada contrasea. En caso contrario, habremos perdido el control del servidor mysql a travs de phpMyAdmin hasta que esta situacin se modifique.

Bibliografa  Servidor Apache2 la biblia M.J. Kabir - Anaya Multimedia. Documentacin y recursos  http://www.apache.org  http://www.php.net  http://www.mysql.com  http://www.phpmyadmin.net

You might also like