appserv

31
Universidad Nacional Facultad de Ciencias Exactas y Naturales Escuela de Informática Fundamentos de Programación Web Manual de Instalación y configuración del Appserv Integrantes: Wilken Steinvorth Vallecillo Wilbert Bolaños Bolaños Ariana Alfaro Carballo Andrés Víquez Víquez Daniel León Monge Año: 2007

Upload: alfredom1

Post on 03-Jul-2015

1.020 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: APPSERV

Universidad NacionalFacultad de Ciencias Exactas y NaturalesEscuela de InformáticaFundamentos de Programación Web

Manual de Instalación y configuración del Appserv

Integrantes:

Wilken Steinvorth Vallecillo Wilbert Bolaños BolañosAriana Alfaro Carballo Andrés Víquez VíquezDaniel León Monge

Año:2007

Page 2: APPSERV

Índice

Instalación de AppServ......................................................................................................2Configuración Específica de PHP:....................................................................................8

Opciones de lenguaje................................................................................................8Gestión y archivo de errores.....................................................................................9Gestión de datos......................................................................................................10

Configuración de phpMyAdmin......................................................................................11Especificaciones de la configuración:.............................................................................12Configuración Específica de Apache:.............................................................................16Configuración Específica de MySQL:............................................................................19Configuración del Zend Optimizer..................................................................................22

1

Page 3: APPSERV

Instalación de AppServ

A continuación se muestra como configurar un servidor AppServ en Windows. Dicho paquete contiene las siguientes herramientas:

Apache 2.2.4 PHP 5.2.3 MySQL 5.0.45 phpMyAdmin-2.10.2

1. Double Click appserv-win32-x.x.x.exe para instalar AppServ.

2

Page 4: APPSERV

2. Acuerdo de licencia: AppServ esta distribución bajo Licencia de GNU/GPL. Usted debe leer el acuerdo de licencia antes de instalar. Si esta de acuerdo haga click en el boton “I Agree”, de lo contrario de click en “Cancelar”.

3. Seleccione la ubicación de los archivos de instalación. Click “Next” para continuar.

3

Page 5: APPSERV

4. Seleccione los paquetes que se desean instalar. Click “Next” para continuar.

4

Page 6: APPSERV

5. Configuración de Apache:  

Server Name: Se debe especificar el nombre del servidor. Administrator’s Email Address: Especificación del correo del administrador. HTTP Port: Se debe especificar el Puerto HTTP para Apache Web Server.

Click “Next” para continuar.

5

Page 7: APPSERV

6. Configuración de MySql:

Root Password: Se debe ingresar un password para el usuario root de MySQL Database. El password por defecto de dicho usuario es root.

Click “Next” para continuar.

6

Page 8: APPSERV

7. Instalación completa: La instalación pregunta si desea iniciar Apache y MySQL inmediatamente. Click “Finish” para finalizar.

7

Page 9: APPSERV

Configuración Específica de PHP:

Una vez instalado appserv, automáticamente queda configurado PHP, sin embargo es posible modificar sus parámetros manualmente abriendo el archivo de configuración php.ini.

Opciones de lenguaje

- engine: activa la interpretación de scripts php (si php está cargado como módulo de apache).

- short_open_tag: permite usar en los scripts etiquetas php abreviadas <? ... ?>, y el atajo para imprimir variables <%= $valor %>. Si el valor es off, deberas usar la forma <?php ... ?> o <script>.

- asp_tags: permite usar etiquetas estilo asp <% ... %>.

- precision: número máximo de decimales visualizados

- y2k_compliance: fuerza la compatibilidad con el año 2000.

- output_buffering: permite enviar cabeceras http desde puntos distintos al inicio del script. Esta posibilidad esta penalizada por una disminución del rendimiento.

- output_handler: permite redirigir toda la salida de los scripts a una función PHP.

- zlib.output_compression: habilita la libreria zlib de forma que los datos de salida del script se envian comprimidos.

- implicit_flush: intenta enviar al cliente el contenido de la memoria intermedia de salida. Es desaconsejable su activación, siendo preferido usar la función flush() cuando sea necesario.

- safe_mode: activa el modo seguro de PHP.

safe_mode_include_dir: los archivos que estén en este directorio podrán ser

8

Page 10: APPSERV

utilizados con include/require en safe_mode On sin necesidad de chequeos UID/GID

- safe_mode_exec_dir: si se utiliza en modo seguro, las funciones que ejecutan programas del sistema solo actuarán sobre archivos ejecutables que estén en el directorio indicado.

- open_basedir: limita los archivos que se pueden abrir por PHP al árbol de directorios especificado.

disable_functions: permite deshabilitar con carácter general determinadas funciones PHP.

- expose_php: permite controlar si PHP debe o no revelar su presencia en el servidor.

Empleo de recursos

- max_execution_time: fija el tiempo máximo (en segundos) que se le permite usar a un script antes de ser finalizado por el intérprete.

- max_input_time: tiempo máximo (en segundos) que el script puede invertir en analizar datos recibidos

- memory_limit: establece el tamaño máximo de memoria (en bytes) que se permite reclamar a un script.

Gestión y archivo de errores

- error_reporting: establece el nivel de detalle con el que PHP informa errores. Lo recomendado es permitir mostrar errores, con el máximo detalle posible, mientras desarrollas el script PHP; y cuando está terminado y en producción, deshabilitar el mostrado de errores en pantalla y activar en su lugar el archivo de errores.

- display_errors: determina si los errores se visualizan en pantalla como parte de la salida en HTML o no.

- display_startup_errors: por defecto PHP no muestra los errores que detecta en la secuencia de encendido, con esta directiva se puede mostrar estos errores.

- log_errors: guarda los mensajes de error en un archivo.

- log_errors_max_len: especifica el tamaño del archivo error_log.

- ignore_repeated_errors: si está activado, no archiva mensajes repetidos.

- ignore_repeated_source: si está activado, considera repetidos los mensajes de error iguales, aunque provengan de distinta linea / script

9

Page 11: APPSERV

- track_errors: si lo activamos, tendremos el último mensaje de error o advertencia almacenado en la variable $php_errormsg

- error_prepend_string: cadena a añadir antes de cada mensaje de error.

- error_append_string: cadena a añadir después del mensaje de error.

- error_log: nombre del fichero para registrar los errores de un script.

Gestión de datos

- arg_separator.output: carácter que se empleará en las urls generadas por PHP para separar argumentos (valores pasados vía url).

- arg_separator.input: separadores que usará PHP cuando analice una url suministrada para almacenarla en variables

- variables_order: fija la precedencia en que PHP registrará e interpretará las variables de entorno.

- register_globals: permite registrar automáticamente las variables EGPCS como globales.

- post_max_size: tamaño máximo de los datos que PHP aceptará por el método POST

- auto_prepend_file y auto_append_file: permiten indicar la ruta y nombre de un archivo que se añadirán antes o después, respectivamente, de todos los archivos php que se ejecuten.

- default_charset: código de caracteres indicado por PHP en la cabecera de salida.

- default_mimetype: el tipo mime de salida de datos.

- allow_webdav_methods: permite manejar las peticiones http propias de webdav.

Estas son tan solo unas cuantas de las muchas directivas que configuran a PHP. El modelo que se propone por defecto debería ser modificado solo si las circunstancias lo ameritan, por lo general es una buena política dejar estos con sus valores por defecto.

10

Page 12: APPSERV

Configuración de phpMyAdmin

Antes de comenzar con la configuración de phpMyAdmin se deben tomar en cuenta algunos puntos importantes:

phpMyAdmin corre inicialmente libraries/config.default.php y luego sobrescribe aquellos valores encontrados en config.inc.php.

Las direcciones subministradas durante la configuración de phpMyAdmin contienen una especificación de la dirección del servidor subministrado durante la instalación del Appserv. Se advierte que los ejemplos son brindados con la dirección de localhost.

La documentación general de phpMyAdmin se encuentra en la dirección http://localhost/phpMyAdmin/Documentation.html, la cual contiene una extensa cantidad de información sobre configuración de phpMyAdmin.

Los pasos para la configuración de phpMyAdmin son los siguientes:

1. Crear una carpeta config en el directorio principal de phpMyAdmin.

2. Si se desea editar un archivo config.ini.php existente se debe copiar previamente en el directorio config que se creo en el paso 1 y presionar el botón “load”.

3. Ingresar a http://localhost/phpMyAdmin/scripts/setup.php en su explorador.4. Realizar las configuraciones deseadas al archivo config.ini.php. En la siguiente

sección se trata el tema de configuración más detalladamente.5. Una vez que el archivo config.ini.php esta configurado se debe mover fuera de la

carpeta config y regresarlo a su ubicación original.6. Ahora el archivo esta listo para utilizarse. Usted puede escoger su editor favorito si

prefiere establecer opciones avanzadas que el setup script no provee.7. Abrir el directorio principal de phpMyAdmin http://localhost/phpMyAdmin/ en un

explorador. Este directorio puede solicitar una autentificación de usuario.8. Se debe denegar el acceso a el ./libraries en la configuración del webserver. Por

medio de Apache se puede utilizar .htaccess en el folder. Con el objetivo de prevenir posibles direcciones expuestas y “cross side scripting vulnerabilities” que pueden ser encontradas dentro del código.

11

Page 13: APPSERV

Especificaciones de la configuración:

A continuación se presenta la página principal de configuración de phpMyAdmin mencionada anteriormente.

Descripción del los paneles de control:

12

Page 14: APPSERV

Configuración del servidor

Control de cambios

13

Page 15: APPSERV

Servers

Add: Agrega una configuración de un servidor.List: Lista las configuraciones de servidores existentes.Delete: Elimina una configuración de un servidor.Edit: Edita una configuración de un servidor.

Configuration

Overview: Muestra la especificación general de la configuración actual.Display: Muestra el contenido del archivo de configuración config.ini.php.Download: Descarga un archivo de configuración config.ini.php al una ubicación determinada. Save: Guarda la configuración del archivo config.ini.php en la carpeta config del directorio principal de phpMyAdmin.Load: Obtiene una configuración del archivo config.ini.php de la carpeta config del directorio principal de phpMyAdmin.Clear: Limpia las configuraciones cargadas con el botón “Load”.

14

Page 16: APPSERV

Para la creación o edición de servidores de phpMyAdmin se contemplan los siguientes valores.

En la siguiente tabla ser describen brevemente cada uno de los campos del formulario de phpMyAdmin para la configuración de servers.

Nombre del atributo

Descripción Sentencia PHP

Server hostname

Nombre del host o IP del $i-th MySQL-server

$cfg['Servers'][$i]['host'] string

Server portNúmero de puerto del $i-th MySQL-server

$cfg['Servers'][$i]['port'] string

Server socket Dirección del socket a utilizar$cfg['Servers'][$i]['socket'] string

Connection type

Tipo de conexión a usar (socket, tcp). TCP es la conexión por defecto. La conexión por socket no es soportada en algunas plataformas

$cfg['Servers'][$i]['connect_type'] string

PHP extension to use

Extensiones a usar para la conexión:

mysql: La extensión clásica y recomendad.

$cfg['Servers'][$i]['extension'] string

15

Page 17: APPSERV

mysqli: La extensión mejorada de mysql. Compatible con php 5 y la manera recomendada para conectarse con Mysql 4.1.x

Compress connection

Si hay que usar un protocolo comprimido para la conexión de servidor MySQL o no.Este rasgo requiere PHP 4.3.0 o mayor

$cfg['Servers'][$i]['compress'] boolean

Authentication type

Tanto config, cookie, HTTP o signon authentication pueden ser utilizados en el server. 'config' authentication el nombre de usuario y clave se almacenan en el archive config.inc.php.

'cookie' authentication permite usuarios validos de MySQL y la clave se almacena en cookies durante la sesion.

'HTTP' authentication permite usuarios validos de MySQL via HTTP-Auth.

'signon' authentication permite que usuarios se logeen a sesiones de datos preparadas.

$cfg['Servers'][$i]['auth_type'] string ['HTTP'|'http'|'cookie'|'config'|'signon']

User for config auth

Cuando se usa auth_type = 'config', este es el user/password el cual phpMyAdmin usa para conectarse a MySQL server. Este user/password no se necesita en la autentificación por HTTP o cookie

$cfg['Servers'][$i]['user'] string

Password for config auth

$cfg['Servers'][$i]['password'] string

Only database to show

Es un conjunto de nombres de base de datos. Este conjunto de nombres van a ser las únicas bases de datos mostradas al usuario

$cfg['Servers'][$i]['only_db'] string or array

Verbose name of this server

Es útil al usar phpMyAdmin con múltiples entradas de servidor. Este campo se mostrara en lugar del hostname en el menú desplegable en la página principal. Esto puede ser útil si se quiere mostrar sólo ciertas bases de datos a su sistema

$cfg['Servers'][$i]['verbose'] string

phpMyAdmin control user

Esta cuenta especial es usada para 2 objetivos distintos: para hacer posible todos los rasgos emparentados y para un servidor MySQL más anterior al 4.1.2

$cfg['Servers'][$i]['controluser'] string

phpMyAdmin control password

$cfg['Servers'][$i]['controlpass'] string

16

Page 18: APPSERV

Permite una instalación multiusuario

Session name for signon auth

Nombre de la sesión la cual va a ser usada por el método de autenticación signon

$cfg['Servers'][$i]['SignonSession'] string

Login url signon auth

Es el url usado para redireccionar a los usuarios logeados por el método de autenticación signon

$cfg['Servers'][$i]['SignonURL'] string

Logout urlEs el url usado para redireccionar después de deslogear los usuarios del método de autenticación signon

$cfg['Servers'][$i]['LogoutURL'] string

Configuración Específica de Apache:

En la instalación del appserv, viene incluida la configuración de Apache, con esta rápida opción se puede definir el Nombre del servidor, este puede ser un dominio, si se tiene uno registrado y redireccionado a la IP donde se este instalando el Servidor Web , o también se puede poner la IP donde se este instalando el servidor (localhost).También se puede indicar la dirección de correo electrónico del administrador y el puerto que utilizará el Apache, este por defecto es el 80.

17

Page 19: APPSERV

Después de haber instalado el appserv, quedará automáticamente configurado el servidor Apache, sin embargo se puede modificar sus parámetros manualmente abriendo el archivo de configuración llamado httpd.conf.

Los parámetros más importantes de este fichero son:

"DocumentRoot": Con este parámetro se especifica la dirección donde se encuentran los ficheros html, php, etc para el sitio web. Si se desea que el Servidor Web contenga un sitio web este parámetro especificará la ubicación de los archivos del sitio, incluyendo el index.php ó index.html que será el primero que aparezca.

Ejemplo:

## DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.#DocumentRoot " C:/AppServ/www " Ruta a cambiar

"ServerRoot": Este parámetro da la ruta de los archivos de configuración y ejecución de Apache, por defecto tendrá la ruta de instalación.

Ejemplo:

## ServerRoot: The top of the directory tree under which the server's# configuration, error, and log files are kept.## Do not add a slash at the end of the directory path. If you point# ServerRoot at a non-local disk, be sure to point the LockFile directive# at a local disk. If you wish to share the same ServerRoot for multiple# httpd daemons, you will need to change at least LockFile and PidFile.#ServerRoot "C:/AppServ/Apache2.2" Ruta a cambiar

18

Page 20: APPSERV

"DirectoryIndex": Estos serán los archivos que admitirá el Servidor Web como archivos de inicio del Sitio Web.

## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#<IfModule dir_module> DirectoryIndex index.php index.html index.htm tipos de Archivos</IfModule>yt.

"ErrorLog": Especifica la ubicación del fichero de log de errores:

## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be# logged here. If you *do* define an error logfile for a # container, that host's errors will be logged there and not here.#ErrorLog logs/error.log

"LogLevel": Especifica los tipos de errores que queramos almacenar en el archivo "error.log", los posibles valores son: debug, info, notice, warn, error, crit, alert, emerg. Hay que tener precaución con este parámetro pues una mala configuración puede originar que el fichero de error "error.log" crezca hasta ocupar varias gigas de espacio:

## LogLevel: Control the number of messages logged to the error.log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.#LogLevel warn

19

Page 21: APPSERV

Cada vez que se algún parámetro en el fichero "httpd.conf" y queramos que se apliquen los cambios tendremos que detener el servicio de Apache y volver a iniciarlo.

Si queremos instalar permanentemente el servicio que inicia Apache (para que cuando se reinicie el Servidor se inicie el servicio de Apache automáticamente) podemos hacerlo ejecutando el archivo: "apache_serviceinstall.bat" ubicado en "...apache". Para desinstalarlo ejecutaremos "apache_serviceuninstall.bat".

Configuración Específica de MySQL:

Durante la instalación se nos pide indicar la contraseña para el usuario root de MySql.

20

Page 22: APPSERV

Algunas configuraciones en el servidor relacionadas con MySql:

El directorio para la configuración de phpMyAdmin se encuentra en: carpeta de instalacion\www\phpMyAdmin\ y ahí encontraremos el archivo: “config.ini.php”.

En este archivo podemos establecer muchos parámetros de phpMyAdmin. En cuanto a MySql uno de ellos puede ser el nombre de usuario y contraseña para conectarnos a MySql. Si tenemos configurado un usuario y contraseña en mysql, podemos modificar las siguientes líneas para tener acceso desde phpMyAdmin:

$cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings // (this user must have read-only$cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user" // and "mysql/db" tables). // The controluser is also // used for all relational // features (pmadb)$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?$cfg['Servers'][$i]['user'] = 'root'; // MySQL user$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed // with 'config' auth_type)

Modificándolas de la siguiente forma:

$cfg['Servers'][$i]['controluser'] = 'NombreUsuraio'; // MySQL control user settings // (this user must have read-only$cfg['Servers'][$i]['controlpass'] = 'Contraseña'; // access to the "mysql/user" // and "mysql/db" tables). // The controluser is also // used for all relational // features (pmadb)$cfg['Servers'][$i]['auth_type'] = ' config ' ; // Authentication method (config, http or cookie based)?$cfg['Servers'][$i]['user'] = ' NombreUsuario ' ; // MySQL user$cfg['Servers'][$i]['password'] = 'Contraseña'; // MySQL password (only needed // with 'config' auth_type)

Ahora, de esta forma cualquier persona que sepa nuestra IP publica podría acceder y administrar MySql, por lo tanto podemos modificar el archivo “config.ini.php” para pedir a cualquier persona que acceda a mySql por medio de phpMyAdmin el nombre de usuario y contraseña. Lo que hacemos es modificar la línea: $cfg['Servers'][$i]['auth_type'] colocando el valor ‘http’, la siguiente línea es un ejemplo de cómo deben quedar las líneas en el archivo config.ini.php: $cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?$cfg['Servers'][$i]['user'] = ''; // MySQL user$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed // with 'config' auth_type)

21

Page 23: APPSERV

Al ingresar a la opción “phpMyAdmin Database Manager...” nos aparecerá una pantalla donde se pedirá el nombre de usuario y contraseña:

El archivo config.ini.php contiene varias líneas importantes en la configuración de phpMyAdmin y MySql, esta documentado y podremos encontrar configuraciones para amoldar el servidor a nuestro gusto.

22

Page 24: APPSERV

Configuración del Zend OptimizerEl Zend Optimizer es una aplicación libre que nos permite correr archivos codificados por el Zend Guard al mismo tiempo que mejora la interpretación de aplicaciones en PHP.

Antes de nada, como siempre, es necesario descargar el software correspondiente desde su página web. Para llevar a cabo la descarga Zend Optimizer tendremos que registrarnos antes en la web de Zend Technologies.

Durante la instalación se nos preguntará por el servidor web utilizado (Apache 2.x), la localización del archivo de configuración de PHP, php.ini (c:\php en nuestro ejemplo), el directorio en el que está instalado Apache (por defecto C:\Archivos de programa\Apache Group\Apache2) y el directorio en el que se almacenan las webs que servirá de Apache (DocumentRoot, cuyo valor es, si no lo hemos cambiado, C:\Archivos de programa\Apache Group\Apache2\htdocs).

Una vez terminado el proceso, si cargamos al archivo info.php que creamos para comprobar la instalación de PHP, deberá aparecer algo así:

23