Este artículo está dirigido a todos los desarrolladores web aficionados que quieran probar sus proyectos web creados en el ordenador local. En el transcurso del artículo, se instala y configura un entorno de prueba de muestra completo con los componentes Apache, PHP y MySQL.
¡¡!! ¡¡¡NOTA !!!
Este artículo es antiguo y puede quedar obsoleto.
Este artículo no pretende en modo alguno ser un manual de instrucciones completo o una descripción detallada de los componentes individuales, sino que se limita a explicar la instalación y configuración de los componentes individuales utilizando un entorno de prueba de ejemplo.
La pregunta legítima sigue siendo: ¿Por qué componentes individuales cuando hay paquetes completos como XAMPP?
Las ventajas de XAMPP son obvias:
- Instalación rápida
- Todos los componentes están preconfigurados.
- Además de Apache, PHP y MySQL, los complementos adicionales ya están integrados (Perl, servidor de correo, servidor FTP, etc.).
- Las actualizaciones y parches están disponibles en la página principal de XAMPP.
Pero, ¿cuál es la ventaja de instalar componentes individuales?
- Yo mismo decido qué instalar y dónde.
- La configuración está completamente en mis manos. Esto significa que puedo reaccionar mejor si fallan componentes individuales.
- Las posibles actualizaciones de componentes individuales son más fáciles de llevar a cabo porque las he instalado yo mismo y conozco la configuración.
- Y no hay que olvidar: la «diversión de trastear».
Qué forma de instalación es finalmente la «mejor» o la elegida debe decidirlo cada uno.
Pero la cuestión básica debe quedar clara: Si sabes cómo instalar y configurar los componentes individuales (como se describe en este artículo), te resultará más fácil orientarte en el paquete XAMPP o en la configuración de XAMPP que a un completo novato en este campo.
Índice de contenidos
Estructura
- ¿Qué es en realidad …?
- Estructura de directorios de nuestro entorno de pruebas
- Descarga de los componentes individuales
- Instalación Apache 2.0.x
- Instalación PHP 5.0.x
- Instalación MySQL 4.1.x
- Configuración adicional
- Prueba final
- Resumen
- Enlaces / Recomendaciones de libros
1. ¿qué es en realidad …?
… un servidor web
En sentido estricto, un servidor web es un servicio de servidor que pone a disposición archivos o datos a través del protocolo HTTP, al que se puede acceder mediante una URL HTTP. El servidor web Apache es el más conocido y utilizado en Internet.
Véase Wikipedia => Servidor web y Apache
Página principal de Apache: http://httpd.apache.org/
… PHP
PHP es un lenguaje de programación utilizado principalmente para crear páginas web dinámicas. PHP es un software de código abierto.
Ver Wikipedia => PHP
Página web de PHP: http://php.net/
… MySQL
MySQL es una base de datos SQL. MySQL es software libre y es una de las bases de datos de código abierto más utilizadas.
Ver Wikipedia => MySQL
Página principal de MySQL: http://www.mysql.com/
2. estructura de directorios de nuestro entorno de pruebas
Dado que tras un fallo del disco duro, la restauración de una imagen de copia de seguridad, la reinstalación de un sistema operativo, etc., existe el riesgo de que se pierdan los ajustes propios de los archivos de configuración, etc., se recomienda no instalar el entorno de prueba en la partición del sistema operativo. Sería incluso mejor instalarlo en un disco duro físicamente diferente.
La siguiente tabla muestra la estructura de directorios de nuestro entorno de pruebas:
Directorio/Archivo | Descripción |
D:Servidor | Directorio raíz de todo el entorno de pruebas |
D:\Servidor\Apache2 | directorio raíz de la instalación de Apache |
D:\Server\Apache2\conf | Directorio de los ficheros de configuración de Apache |
D:\ServidorApache2\conf\httpd.conf | Fichero de configuración de Apache |
D:\Servidor\htdocs | DocumentRoot => todos los archivos web, proyectos web se almacenan aquí |
D\Servidor\php5 | Directorio principal de la instalación PHP |
D:\Servidor\php5\php.ini | Archivo de configuración para PHP |
D:\Servidor\mysql | Directorio principal de la instalación de MySQL |
D:\Server\php\MyAdmin | Directorio principal de phpMyAdmin |
D:\Server\php\MyAdmin\config.inc.php | Fichero de configuración de phpMyAdmin |
D:\Servidor\Manuales | Directorio para documentación, manuales, etc. |
D:\Server\Manuals\php | Manual de PHP en alemán |
D:\Server\Manuals\mysql | Manual de MySQL |
D:\Server\php_session_temp | Directorio para almacenar datos temporales de sesión |
D:\Server\php_upload_temp | Directorio temporal para la carga de archivos |
D:\Server\php_includes | Directorio para almacenar archivos de uso frecuente |
Nota: Esta estructura de directorios sirve sólo como ejemplo y debe adaptarse a sus propias circunstancias. Esto se aplica en particular en el curso posterior de la instalación al cambiar los archivos de configuración individuales. Por favor, adapte TODAS las especificaciones de ruta. |
3 Descarga de los componentes individuales
Al principio de la instalación, por supuesto, está la descarga de los componentes individuales.
Para asegurarnos de que tenemos acceso a todos los componentes durante la instalación, descargamos todas las versiones más recientes de los componentes desde los sitios de los proveedores correspondientes justo al principio.
Servidor web Apache 2.0.x
http://httpd.apache.org/download.cgi
(Versión estable – última versión)
Seleccione la versión Win32 Binary (MSI Installer).
PHP 5.0.x
http://de3.php.net/downloads.php
(Actual estable) – Binarios Windows y fuente – zip.
Personalmente, no soy un fan de la versión «instalador», por lo que instalar PHP «a pie».
Después de la descarga, descomprima el archivo en «D:\Server\php5».
Descarga el manual de PHP (Alemania).
Para integrar el manual de PHP en la configuración del servidor, elegimos el formato «Muchos archivos HTML».
Después de la descarga, descomprima el archivo en «D:\Server\Manuals\php».
MySQL 4.1.x
del archivo de software WinTotal.
phpMyAdmin
del archivo de software WinTotal
y descomprímalo en el directorio del servidor «D:\Server» como «phpMyAdmin».
4. instalación Apache 2.0.x
Para iniciar la instalación, aparece el asistente de instalación con el diálogo de bienvenida de Apache. Haga clic en SIGUIENTE para confirmar.
Tras confirmar el acuerdo de licencia y pulsar SIGUIENTE, aparece un diálogo LÉAME, del que también podemos salir pulsando SIGUIENTE.
Diálogo: Información del servidor
Este es el primer diálogo al que debemos prestar atención.
Como nuestro servidor es sólo para pruebas locales y NO debe ser accesible desde Internet, introducimos aquí un dominio y una dirección de correo electrónico de libre elección.
- Dominio de Red => local.test
- Nombre del Servidor => local.test
- E-mail del Administrador => webmaster@local.test
La opción «para Todos los Usuarios, en el Puerto 80, como un Servicio — Recomendado» debe ser seleccionada.
Una vez realizados estos ajustes, confirme con SIGUIENTE.
Nota: Si el servidor web también debe ser accesible desde Internet, recomiendo el artículo «Actualización dinámica de DNS para la página de inicio local».
Diálogo: Tipo de configuración
Aquí se puede dejar la configuración en «Típica» = (por defecto).
Diálogo: Carpeta de destino
En este diálogo definimos el directorio donde se va a instalar Apache.
Aquí seleccionamos la opción CAMBIAR para poder adaptar la ruta de instalación a nuestra estructura de directorios.
Diálogo: Cambiar carpeta de destino actual
Aquí introducimos ahora nuestro directorio de instalación principal de nuestro entorno de pruebas «D:\Server» como destino de la instalación de Apache. (El directorio «Apache2» se crea automáticamente durante la instalación.) Confirme con OK.
Diálogo: Carpeta de destino
Volvemos al diálogo «Carpeta de destino»: Nuestro directorio «D:\Server» debería ser ahora el destino de la instalación.
Diálogo: Listo para instalar el programa
El asistente de instalación ya ha recopilado suficiente información. Haga clic en «Instalar» para iniciar la instalación.
Diálogo: Completado
Si no se ha producido ningún error durante la instalación, el asistente de instalación informa de un mensaje de éxito y nos pide que finalicemos la instalación: «Finalizar».
Para la primera prueba para ver si realmente ha funcionado la instalación, llamamos a la URL http://localhost en el navegador web. Si todo es correcto, debería aparecer el siguiente texto:
Cambiar la «Raíz del documento
Sólo 2 entradas en el «httpd.conf» (D:\ServerApache2\conf\httpd.conf) tiene que ser cambiado.
Nota:
Haga siempre una copia de seguridad antes de cambiar el httpd.conf. Después de cada cambio en el httpd.conf, Apache debe ser reiniciado.
Original
#
DocumentRoot: El directorio desde el que servirás tus # documentos.
# documentos. Por defecto, todas las peticiones se toman de este directorio, pero
# se pueden usar enlaces simbólicos y alias para apuntar a otras ubicaciones.
#
DocumentRoot «d:/server/Apache2/htdocs»
Nuevo:
#
DocumentRoot: El directorio desde el que servirás tus # documentos.
# documentos. Por defecto, todas las peticiones se toman de este directorio, pero
# se pueden usar enlaces simbólicos y alias para apuntar a otras ubicaciones.
#
DocumentRoot «D:/Servidor/htdocs»
Original
#
# Esto debe ser cambiado a lo que usted establece DocumentRoot.
#
Nuevo
#
# Esto debe ser cambiado a lo que usted establece DocumentRoot a. #
#
Si tampoco se han producido errores aquí, Apache debería informar de lo siguiente tras un reinicio:
5. instalación PHP 5.0.x
En primer lugar, cambie el nombre de«php.ini.dist» en nuestro directorio PHP «D:\Server\php5» a«php.ini«.
(Por favor, no olvide hacer una copia de seguridad)
A continuación, ábralo con cualquier editor de texto y realice los siguientes cambios:
Sección: Rutas y directorios
Entrada => include_path
Original
;include_path = ".;c:\php\includes"
Nuevo
include_path = ".;D:\Server\php_includes"
Entrada => extension_dir
Original
extension_dir = "./"
Nuevo
extension_dir = "D:\Server\php5\ext"
Sección: Carga de archivos
Entrada => upload_temp_dir
Original
;upload_tmp_dir =
Nuevo
upload_tmp_dir = "D:\Server\php_upload_temp"
Sección: Extensiones dinámicas
¿Qué son las Extensiones Dinámicas?
Las Extensiones Dinámicas son las librerías que extienden el conjunto de comandos estándar de PHP.
Por ejemplo, si la extensión MySQL no está incluida, el comando:
< php
mysql_query(«Seleccione algo de algún lugar»);
?>
un mensaje de error será devuelto por PHP, porque PHP por defecto no conoce la sintaxis de comandos de MySQL y consecuentemente no puede hacer nada con el comando«mysql_query«. Las extensiones suministradas por PHP se encuentran en el directorio«D:\Server\php5\ext«.
Nota: Hasta la versión PHP 4.x, MySQL estaba integrado en PHP por defecto, no era necesaria una extensión.
Depende de usted decidir que extensiones incluir.
Debe tenerse en cuenta en este punto que algunas extensiones que se especifican en php.ini dependen de otras librerías y pueden tener que ser descargadas por separado del proveedor respectivo.
Para nuestro entorno de prueba de ejemplo, las siguientes extensiones deberían ser suficientes. Por favor, actívelas. (Activar = quitar el punto y coma ; )
extension=php_bz2.dll (=> funciones de compresión)
extension=php_cpdf.dll (=> funciones ClibPDF)
extension=php_gd2.dll (=> funciones de librería para manipulación de imágenes)
extension=php_mbstring.dll (=> funciones de cadena multibyte)
extension=php_ming.dll (=> Funciones para Flash)
extension=php_mysql.dll (=> funciones para MySQL)
Sección: Configuración de módulos
Módulo => Sesiones
Original
session.save_path = "/tmp"
Nuevo
session.save_path = "D:\Server\php_session_temp"
Estos fueron todos los ajustes que necesitan ser cambiados en php.ini. Como ya se ha mencionado, depende de las respectivas circunstancias y requisitos, por desgracia no existe una configuración universal.
Para terminar la configuración, algunas DLLs tienen que ser copiadas del directorio PHP al directorio Windows. Como me gusta hacer esto sólo una vez y juguetear mucho con mi configuración, las copio todas al principio. De esta manera tengo tranquilidad en caso de cambios.
Esto afecta a:
fdftk.dll, fribidi.dll, gds32.dll, libeay32.dll, libmhash.dll, libmysql.dll, msql.dll, ntwdblib.dll, ssleay32.dll, yaz.dll.
Copie estos archivos DLL de«D:\Serverphp5» a«C:\Windows«.
Como he dicho, no todos ellos son necesarios en este momento, pero no puede hacer daño.
Apache aprende PHP
Para que el servidor web Apache sepa qué hacer con los archivos PHP, tenemos que enseñarle. Para ello, abra httpd.conf del directorio«D:\Server\Apache2\conf» en cualquier editor de texto. (Por favor, no olvide hacer una copia de seguridad).
Inserte las siguientes líneas después de la última entrada«LoadModule……».
#
# Inicio de configuración PHP5
#
LoadModule php5_module «D:/Servidor/php5/php5apache2.dll»
AddType application/x-httpd-php .php
PHPIniDir «D:/Servidor/php5»
#
# PHP5 configuration end
#
Entrada => DirectoryIndex
Original
ÍndiceDirectorio index.html index.html.var
Nuevo
DirectoryIndex index.html index.html.var index.php
Estos son todos los cambios que hay que hacer en httpd.conf.
Ahora es necesario reiniciar Apache.
Después de llamar a http://localhost, la página de inicio debería abrirse ahora con la siguiente pantalla:
Asegúrese de que la última línea contiene el siguiente texto:
=> Apache/2.0.53 (Win32) PHP/5.0.3 Servidor en localhost Puerto 80
Si no es así, se ha producido un error porque Apache no ha reconocido la configuración de PHP.
phpinfo()
El comando phpinfo () muestra una gran cantidad de información sobre la configuración actual de PHP. Entre otras cosas, las opciones durante la compilación y las extensiones, la versión de PHP, información sobre el servidor, el entorno (si PHP fue compilado como un módulo), el entorno de PHP, versión e información sobre el sistema operativo, rutas, valores principales y locales de las opciones de configuración, cabeceras http y la Licencia Pública GNU.
Para probar nuestra configuración PHP, creamos un archivo *.php inicial y lo guardamos como info.php en nuestro DocumentRoot«D:\Server\htdocs«.
Para ello, llame a cualquier editor de texto e introduzca el siguiente código:
<?php
phpinfo();
?>
A continuación, el script se puede llamar en el navegador web en http://localhost/info.php.
Todos los ajustes de la instalación de PHP se pueden ver ahora aquí.
6. instalación MySQL 4.1.x
Sugerencia:
Desde el salto de la versión 4.0.x a la 4.1.x, se han realizado algunos cambios en la rutina de instalación de MySQL. Ahora es posible especificar el propósito para el que se necesita MySQL y cómo MySQL gestiona los recursos. Como sólo queremos usar MySQL para pruebas locales, instalamos nuestra base de datos con la configuración por defecto (Máquina de Desarrollador).
Para iniciar la instalación, aparece el asistente de instalación con el diálogo de bienvenida de MySQL.
diálogo: Tipo de instalación
Aquí puede especificar cómo debe instalarse MySQL. Dado que la instalación estándar instalaría MySQL en«C:\Programme\MySQL\MySQL Server 4.1«, pero nuestro directorio de servidor está en«D:S\erver«, elegimos Personalizado aquí.
Diálogo: Configuración Personalizada
Los 3 primeros puntos ya deberían estar preseleccionados aquí. Si desea instalar scripts de ejemplo, por ejemplo, puede seleccionarlo en «Componentes de desarrollador».
Como queremos cambiar el directorio de instalación a «D:\Server», haga clic aquí en el botón «Cambiar».
Diálogo: Cambiar carpeta de destino actual
Introduzca«D:S\erver\mysql» en el campo de texto inferior y confirme con OK.
Diálogo: Configuración Personalizada
Ahora debería ver nuestro nuevo directorio de instalación«D:\Server\mysql» en «Instalar en».
Diálogo: Listo para instalar el Programa
El asistente de instalación ha recopilado suficiente información para iniciar la instalación. Confírmelo haciendo clic en «Instalar».
Diálogo: Registro en MySQL.com
Aquí puede registrarse en MySQL.com si lo desea. Como usuario registrado, siempre recibirá las últimas noticias de MySQL por correo electrónico, si así lo desea. Como ya tengo esta cuenta, me salto este punto y selecciono «Omitir registro».
Diálogo: Asistente completado
Tras la correcta instalación del servidor MySQL, se abre un diálogo que nos indica que la instalación se ha completado con éxito – «Asistente completado». Al mismo tiempo, se nos ofrece configurar el servidor inmediatamente. Como queremos hacerlo, marcamos la casilla «Configurar el servidor MySQL ahora» y confirmamos con «Finalizar». Podemos salir del diálogo que se abre con una nueva bienvenida pulsando «Siguiente».
Diálogo: Configuración de la Instancia del Servidor MySQL (Tipo de Configuración)
Cuando nos pregunte por el tipo de configuración, activamos la opción => Configuración Estándar.
Sugerencia:
Dado que una descripción de la «Configuración Detallada» iría más allá del alcance de este artículo, no la incluiré aquí. Se puede llamar manualmente en cualquier momento a través del menú Inicio.
Diálogo: Configuración de la Instancia del Servidor MySQL (opciones Windows)
Aquí activamos la casilla => Instalar como servicioWindows
Podemos dejar el nombre del servicio en => MySQL.
Para que el servidor MySQL se inicie inmediatamente al arrancar Windows, activamos también la casilla => Iniciar el servidor MySQL automáticamente.
Si queremos operar nuestro servidor MySQL desde la consola, podemos utilizar la última casilla => «Incluir directorio BIN en el PATH de Windows» para determinar si la configuración crea automáticamente una ruta al directorio BIN del servidor MySQL.
Diálogo: Configuración de la Instancia del Servidor MySQL (Opciones de seguridad)
En el último diálogo de entrada, se puede establecer una contraseña para el administrador del servidor => root (recomendado). Para ello, active la casilla => Modificar opciones de seguridad, introduzca una contraseña y repítala para confirmar.
Dado que una cuenta anónima conlleva un cierto riesgo de seguridad, no la creamos aquí.
Diálogo: Configuración de la Instancia del Servidor MySQL (Listo para ejecutar …)
Si todas las entradas se han realizado correctamente, ahora se pueden aceptar con «Ejecutar». Si necesita realizar algún cambio, vuelva atrás y compruebe las entradas con «Atrás».
Diálogo: Configuración de la instancia del servidor MySQL (Procesando configuración …)
Si no se ha producido ningún error durante la configuración, el diálogo nos muestra todas las tareas que ha realizado y nos pide que salgamos del asistente de instalación pulsando sobre «Finalizar».
La primera prueba
Como durante la configuración hemos especificado que se debe crear una ruta al directorio BIN del servidor MySQL, ahora podemos abrir una consola y probar si el servidor funciona.
Para ello, llamamos al servidor MySQL en la consola con la siguiente sintaxis:
mysql -u [nombre de usuario] -p[contraseña]
Asegúrese de que no hay ningún espacio entre el parámetro -p y la contraseña. En nuestro ejemplo, la línea de comandos tendría el siguiente aspecto:
mysql -u root -proot
Aquellos de ustedes que han estado prestando atención ahora saben qué contraseña utilicé para root durante la configuración. Lo siento, por supuesto es sólo un ejemplo.
Si MySQL nos saluda con un diálogo de bienvenida, nuestra instalación ha sido correcta.
Ahora podemos consultar qué bases de datos están registradas actualmente.
Sintaxis => show databases; (no pasar por alto el punto y coma)
Esto debería ser para una nueva instalación de MySQL y pruebas.
Para salir de MySQL introduzca => quit; (no pase por alto el punto y coma).
Para finalizar la instalación de MySQL, copiamos el directorio«d:\Server\mysql\Docs» en nuestro directorio de manuales«D:S\erver\Manuals» y lo renombramos a«mysql«.
7. configuración adicional
Registrar el directorio Apache2/Bin como ruta
¿Por qué establecer una ruta?
Si se establece una ruta, puede dirigirse a Apache desde la consola, independientemente del directorio en el que se encuentre. Por ejemplo, tengo la costumbre de controlar Apache exclusivamente desde la consola, ya que cualquier error se muestra inmediatamente allí. Este no es el caso cuando se utiliza el menú de inicio o el monitor de Apache a través del icono de la bandeja.
Para ello, haz clic con el botón derecho del ratón sobre Mi PC en el escritorio y selecciona Propiedades. En el cuadro de diálogo, seleccione la pestaña «Avanzadas» y, a continuación, Variables de entorno.
Seleccione la entrada «Ruta» en «Variables del sistema» y haga clic en «Editar».
Ahora introduzca la ruta a nuestro directorio ApacheBin. A continuación, confirme todos los diálogos con OK.
Para probar, introduzca => apache -k stop en el símbolo del sistema y confirme con Return. A continuación aparecerá un mensaje indicando que se detendrá el servicio Apache.
Después, Apache puede iniciarse de nuevo => apache-k start
Si Apache se inicia correctamente, no aparecerá ningún mensaje.
Manuales/Documentación
Para que siempre podamos acceder al directorio de manuales a través de http://localhost/my_docs, añadimos un alias para el directorio en el«httpd.conf» de Apache.
Después de la entrada
Alias /icons/ «D:/Servidor/Apache2/icons/»
Opciones Índices FollowSymLinks
AllowOverride Ninguno
Orden allow,deny
Permitir desde todos
Inserte lo siguiente:
#
# Manuales y documentación
#
Alias /my_docs «D:/Servidor/Manuales/»
Opciones Índices FollowSymLinks
AllowOverride Ninguno
Orden allow,deny
Permitir desde todos
Nota:
Se puede acceder a la documentación de Apache en cualquier momento bajo la URL http://localhost/manual. Esto ya está incluido por defecto en la configuración de Apache.
phpMyAdmin
phpMyAdmin es una aplicación de código abierto ampliamente utilizada para gestionar bases de datos MySQL. La interfaz gráfica de usuario puede manejarse completamente a través de un navegador.
Página principal de phpMyAdmin: http://www.phpmyadmin.net/home_page/index.php
Tras la entrada creada anteriormente para manuales/documentación, añadimos ahora un alias para phpMyAdmin en el httpd.conf de Apache. Esto garantiza que phpMyAdmin siempre se pueda abrir a través de la URL http://localhost/myadmin.
#
# phpMyAdmin
#
Alias /myadmin «D:/Servidor/phpMyAdmin/»
Opciones Índices FollowSymLinks
AllowOverride Ninguno
Orden allow,deny
Permitir desde 127.0.0.1
Para que phpMyAdmin pueda comunicarse con nuestro servidor MySQL, tenemos que hacer un pequeño cambio en config.inc.php, que se encuentra en el directorio D:\Server\php\MyAdmin.
Línea 39 – introduzca aquí la URL del directorio phpMyAdmin.
$cfg[‘PmaAbsoluteUri’] = ‘http://localhost/myadmin’;
Línea 85 – Introduzca aquí la contraseña para root.
$cfg[‘Servidores’][$i][‘contraseña’] = ‘xxxx’; // Contraseña MySQL (sólo necesaria con auth_type ‘config’)
Alternativamente, el modo de autenticación puede cambiarse en la línea 83.
$cfg[‘Servidores’][$i][‘auth_type’] = ‘config’; // ¿Método de autenticación (config, http o basado en cookies)?
8. prueba final
Después de que ya hemos probado todos los componentes en detalle, a excepción de phpMyAdmin: Qué más apropiado que realizar la prueba final llamando a phpMyAdmin.
Esta prueba nos da la certeza de que las instalaciones de Apache, MySQL y PHP se han ejecutado limpiamente y que todos los componentes armonizan entre sí.
Para ello, llame a la URL http://localhost/myadmin en el navegador.
Si el resultado es como éste, entonces todo ha funcionado.
Como prueba final, llamamos al directorio de manuales a través de http://localhost/my_docs. Aquí deberíamos encontrar los 2 manuales/documentos.
Los 2 manuales/documentos (php, mysql) que hemos copiado en este directorio deberían aparecer aquí.
9 Resumen
En conclusión, todos los involucrados en el desarrollo web deberían haber instalado y configurado un entorno de prueba«ellos mismos». Un cambio posterior a un paquete completo como XAMPP es posible en cualquier momento.
Como se ha mostrado, no es muy complicado configurar un entorno de pruebas de este tipo. Una vez que se ha hecho tal instalación una o dos veces, se adquiere la rutina necesaria y cualquier dificultad inicial se olvida rápidamente.
10. enlaces / recomendación de libros
Libros
Apache, The Comprehensive Handbook (O’Reilly Enlace a Amazon).
Apache 2 – The Comprehensive Web Server Handbook (Galileo Computing Enlace a Amazon).
Switching to PHP 5 (O’Reilly Enlace a Amazon).
MySQL/PHP database applications (Enlace a Amazon).
Enlaces útiles
http://phpwelt.de – Extenso archivo de scripts y tutoriales.
http://www.php-resource.de/ – Scripts php, soluciones MySQL, tutoriales, herramientas y mucho más.
https://web.archive.org/web/20160309221104/http://phplens.com/phpeverywhere/adodb_german – ADODB (biblioteca de traducción de bases de datos)
http://pear.php.net/index.php – PHP – Biblioteca de clases
http://dev.mysql.com/doc/mysql/de/ – MySQL Reference Manual, El manual oficial de MySQL
http://httpd.apache.org/docs-2.0/ – Documentación en línea Apache2
Foros
http://www.apachefriends.org/f/ – Foro alemán de Apache
http://www.phpforum.de/forum/index.php – Mucha información sobre PHP y MySQL
http://www.hilfdirselbst.ch/foren/ – PHP y MySQL