LAMP

De BandaAncha.st
Saltar a: navegación, buscar

LAMP (Linux, Apache, MySQL and PHP)[editar]

Presentamos el últimisimo (versión 1.2 beta) manual de como instalar Apache (versión 1.*) MySQL (todas) y PHP (todas) en un ordenador de entorno POSIX (*BSD, GNU/Linux)

Este manual no pretende ser una biblia, solamente una guía rápida para ver que no es complicado instalar un LAMP y abandonar un poco la mala practica de usar APT (o la herramienta de nuestra distribución) para la instalación. Recuerdo a los usuarios que los servicios tienen multitud de opciones... solamente se usarán las más básicas y generales, pero tu podrás configurarlos como desees, solamente ejecuta el parametro ./configure –help para poder ver las opciones de cada servicio.

Antes de seguir, tendrás que comprobar que tengas los siguientes programas/paquetes instalados dentro de tu máquina:

FLEX, GCC, MAKE, TAR, GUNZIP, LIBXML2-DEV, CURL, LIBCURL3-DEV, ZLIB1G-DEV, LIBPNG12-DEV, BISON, LIBTOOL

De no tenerlos... es recomendable que los instales antes de continuar con este manual, en tu distribución encontrarás el gestor de paquetes que te ayurá en este paso ;-).

NOTA: A lo largo de este manual vereis que empleo nombres como mysql-* o por ejemplo la \ (--prefix=/usr/local/X \ bla) los usuarios más acostumbrados a manuales, sabrán que el asterisco es para referirse a la versión que estéis instalando y la \ es para avisar que aunque yo use nuevas lineas todo ese comando irá en la misma instrucción.

Obtención y descompresión de los sources[editar]

Primero necesitaremos descargarnos en el directorio "/usr/local/src" los sources de estos servicios... algunos enlaces pueden fallar, en ese caso por favor busca dentro de los archivos de las webs o baja las versiones más recientes, pero no respondo de lo que pueda pasar si continuas leyendo este manual:

MySQL http://www.mysql.com/downloads/
Apache http://apache.rediris.es/httpd/apache_1.3.37.tar.gz
PHP http://www.php.net/downloads.php

Si tienes una herramienta como wget puedes copiar la dirección del enlace y descargar el source invocandolo desde la ruta /usr/local/src con "wget URL"

Una vez hayamos descargado todos los tarballs (nombre que se le dá a los archivos comprimidos) en /usr/local/src tendremos que descomprimirlos para poder actuar con ellos...

/usr/local/src# tar zxvf mysql-*
/usr/local/src# tar zxvf apache-*
/usr/local/src# tar zxvf php-*

Mucha gente suele crear enlaces blandos a estos directorios (como hacen también con los sources del kernel linux), sinceramente... con el autocompletar que tienen hoy en día las shells... lo veo un gasto innecesario de Kb además de llenar el directorio de archivos que a la larga tendremos que modificar si instalamos nuevas versiones. Si deseais hacerlo, no os crucificaré pero yo no lo recomiendo.

PD: En este manual las instalaciones irán a /usr/local/SERVICIO pero eso no quiere decir que vosotros tengais que hacer lo mismo... si lo deseais podreis cambiar las rutas y no pasará nada, pero recordar luego donde poneis las cosas :-)


Instalación del Servidor MySQL[editar]

MySQL es uno de los servidores más usados dentro de la programación web... pero eso no quiere decir que sea el único, PostgreeSQL, Oracle son también excelentes opciones. Aún así es el que se suele instalar siempre por su rápidez y solidez.

Para instalar MySQL no hay mucho que hacer... veamos los pasos:

Lo primero es entrar en el directorio

/usr/local/src# cd mysql-*
/usr/local/src/mysql-*# 

Crearemos el usuario para MySQL (por eso de no exponer el sistema)

/usr/local/src/mysql-*# groupadd mysql
/usr/local/src/mysql-*# useradd -g mysql -c “MySQL Server” mysql

Configuraremos el servidor MySQL, estas son las opciones que suelo poner por defecto pero hay muchas más... ./configure --help para verlas.

/usr/local/src/mysql-*# ./configure --prefix=/usr/local/mysql --disable-maintainer-mode --with-mysqld-user=mysql \ 
--without-comment --without-debug --without-bench && echo "Config terminada"

Dependiendo del maquinon que tengamos por PC, podremos ir a tomar un café, mirar un poco de porno o los afortunados/as con novia/o pueden intentar recorrerse parte del kamasutra... pero una vez veamos la frase "Thank you for choosing MySQL! Config terminada" podremos continuar... con la compilación y la instalación para lo mismo que antes, dependiendo de nuestro ordenador podremos hacer feliz a mucha gente.

/usr/local/src/mysql-*# make && echo "Compilacion sin errores" 
/usr/local/src/mysql-*# make install && echo "Instalacion sin errores :D"

Con eso ya está instalado... pero no hemos terminado, tenemos que crear las dbs y los últimos retoques, como instalar las bases de datos y copiar el script de arranque:

/usr/local/src/mysql-*# ./scripts/mysql_install_db 
/usr/local/src/mysql-*# chown mysql:mysql -R /usr/local/mysql/*
/usr/local/src/mysql-*# cp support-files/mysql.server /etc/init.d/mysql
/usr/local/src/mysql-*# chmod 755 /etc/init.d/mysql

Pondremos ahora los enlaces blandos hacia los ejecutables de mysql, exceptuando el de mysqladmin el resto son para cualquier usuario

/usr/local/src/mysql-*# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
/usr/local/src/mysql-*# ln -s /usr/local/mysql/bin/mysqladmin /usr/sbin/mysqladmin
/usr/local/src/mysql-*# ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump

Para terminar, solamente tendremos que arrancar el servidor MySQL y establecer la contraseña para el usuario de administración:

/usr/local/src/mysql-*# /etc/init.d/mysql start
/usr/local/src/mysql-*# mysqladmin -u root password "clave sin comillas"

Si todo ha transcurrido sin errores, podemos conectar al servidor MySQL y terminar de redondear la instalación:

/usr/local/src/mysql-*# mysql -uroot -p

mysql> drop database test;
mysql> use mysql;
mysql> delete from user where not (host="localhost" and user="root");
mysql> flush privileges;
mysql> quit

Con esto ya tendremos nuestro servidor MySQL instalado y funcional... si deseas saber algunas cosas más, como añadirlo a los scripts de arranque para que cuando reinicies se arranque automáticamente o alguna cosa más de seguridad, vete Toques finales: Seguridad.

Instalación del servidor APACHE (PHP embebido)[editar]

Bien, lo más común y lógico es compilar PHP como módulo independiente de Apache, ya que así nos evitaremos recompilar Apache cada vez que cambiemos el PHP, pero para los que son de ideas fijas y una vez han hecho un trabajo no lo tocan más explicaremos como hacerlo en modo embebido:

Entraremos en el directorio del Apache y le haremos un configure sencillo.

/usr/local/src# cd apache-*
/usr/local/src/apache-*# 
/usr/local/src/apache-*# ./configure –prefix=/usr/local/apache && echo “Config terminada”

Si todo sale bien y se muestra "Config terminada" podremos continuar... No tendremos nada más que tocar por lo de ahora en el apache, así que iremos al directorio de PHP para instalarlo dentro del Apache, os recuerdo que yo uso como rutas de instalación /usr/local si vosotros las habeis cambiado también debereis cambiarlas aquí:

	
/usr/local/src# cd ../php-*
/usr/local/src/php-*# ./configure --with-mysql=/usr/local/mysql --with-apache=../apache-* --enable-track-vars && echo “Config terminada”
/usr/local/src/php-*# make && echo "Compilacion sin errores"
/usr/local/src/php-*# make install && echo "Instalacion sin errores"

Volveremos al directorio de Apache para “terminar” la instalación de este, el asterico de libphp hace referencia a la versión de PHP que estemos instalando (3, 4, 5):

/usr/local/src/apache-*# ./configure --prefix=/usr/local/apache --enable-module=rewrite --activate-module=src/modules/php*/libphp*.a \ 
&& echo “Config terminada”
/usr/local/src/apache-*# make && echo "Compilacion sin errores"
/usr/local/src/apache-*# make install && echo "Instalacion sin errores"

Bien, solamente nos quedaría tocar el httpd.conf, para ello acude a la sección Toques finales: httpd.conf y fin

Instalación del servidor APACHE (PHP independiente)[editar]

Bien, expliremos ahora como hacer la instalación más común, que es PHP independiente de Apache empezaremos a configurar Apache como en el caso embebido con un configure:

/usr/local/src# cd apache-*
/usr/local/src/apache-*# 
/usr/local/src/apache-*# ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite && echo “Config terminada”

En el directorio del apache iniciaremos la compilación y la instalación de este:

/usr/local/src/apache-*# make && echo "Compilacion sin errores"
/usr/local/src/apache-*# make install && echo "Instalacion sin errores"

Bien, ya tenemos el Apache totalmente instalado... Iremos ahora al directorio de PHP y lo configuraremos e instalaremos dentro del Apache.

/usr/local/src/php-*# ./configure --with-mysql=/usr/local/mysql --with-xml --enable-track-vars --with-apxs=/usr/local/apache/bin/apxs \ 
&& echo "Config terminada"
/usr/local/src/php-*# make && echo "Compilacion sin errores"
/usr/local/src/php-*# make install && echo "Instalacion sin errores"

Si todo es correcto editaremos el para cambiar un par de cositas y dejar el PHP cargado en el Apache... estos pasos solamente lo deberemos hacer una vez, aunque recompilemos el PHP una y otra vez, (siempre y cuando no cambiemos la versión de PHP) como en el caso del embebido para editar el archivo yo me decanto por JOE, pero vosotros usad el que veais.

/usr/local/src/apache-*# joe /usr/local/apache/conf/httpd.conf
  • Buscaremos las lineas de LoadModule y agregaremos (sustituir el * por el número de la versión de PHP (3, 4, 5)):
LoadModule php*_module libexec/libphp*.so

Cerraremos el archivo y listo... podremos ir a los últimos pasos para dar por finalizada la instalación del Apache con PHP, explicadas en el siguiente capitulo: Toques finales: httpd.conf y fin .

Toques finales: httpd.conf y fin[editar]

Tanto si habeis instalado PHP en modo embebido o independiente, estos pasos son comunes en ambas instalaciones, así que vamos a darle los últimos retoques a esta instalación para que podais disfrutar completamente de vuestro servidor web en vuestras máquinas.

Tendremos que volver a editar el archivo httpd.conf y cambiar un par de valores, no tengais miedo que no morderá ;-)

/usr/local/src/apache-*# joe /usr/local/apache/conf/httpd.conf
  • Localiza la linea ServerSignature cambiala por el valor Off, esto evitará que muestre la versión de Apache, PHP y sobre que máquina corre, cuando no se pueda mostrar una página.
  • Por seguridad, cambiaremos el usuario y grupo de arranque del apache, que por defecto es nobody y nogroup, busca User en el archivo de configuración y cambia estos valores:
User apache
Group apache
  • Buscaremos DirectoryIndex y agregaremos a la lista. El orden importa ya que será el orden de preferencia al cargar una web... según este ejemplo y en el caso de tener dos index mostrará primero el php y en caso de no encontrarlo irá recorriendo la lista hasta encontrar un index compatible.
DirectoryIndex index.php index.phtml index.html index.htm

Cerraremos el archivo y listo... ya tendremos una configuración que aunque se puede mejorar, por lo menos nos servirá para comprobar si todo funciona correctamente, solamente nos faltan dos pequeños detalles... copiar la config de PHP a las librerias del sistema y crear el usuario y el grupo de apache y copiar el script de arranque al init.d:

/usr/local/src/apache-*# cp php.ini-dist /usr/local/lib/php.ini
/usr/local/src/apache-*# groupadd apache
/usr/local/src/apache-*# useradd -g apache -c “Apache Server” apache
/usr/local/src/apache-*# cp /usr/local/apache/bin/apachectl /etc/init.d/apache

Bien, todo está listo para la prueba de fuego... arranca tu servidor apache, escoge el navegador que más te guste, y carga http://localhost si todo ha salido bien... verás una web como esta:

/usr/local/src/apache-*# /etc/init.d/apache start


Una Güinda: phpMyAdmin[editar]

Vale, reconozco que muchas veces por por vagancia no deseamos acceder desde consola a nuestro MySQL por ello se creo esta aplicación: phpMyAdmin que nos permite conectar y admistrar nuestro servidor de una manera sencilla y gráfica atraves de un entorno web.

Su instalación es sencilla, nos descargaremos phpMyAdmin de la página principal del proyecto, o de sourceforge con todo el paquete de lenguajes (para luego poder ponerlo en castellano).

1) http://www.phpmyadmin.net/home_page/downloads.php 2) http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.9.1-all-languages.tar.bz2?download

Una vez descargado lo moveremos al htdocs de nuestro servidor apache (si hemos seguido la guia al píe de la letra, y no hemos modificado la path en el httpd.conf se encontrará en /usr/local/apache/htdocs) y los descomprimimos:

Modificaremos el nombre del directorio descomprimido para que la URL resultante sea algo más sencilla... (el nombre del directorio puede ser cualquiera, no hace falta respetarlo)

Copiaremos el archivo de configuración por defecto y lo editaremos, buscando las siguientes cadenas y dejandolas así (dónde pone "CualquierClaveSecreta" pondremos la clave que deseemos):

$cfg['blowfish_secret'] = 'CualquierClaveSecreta';
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';

Guardamos el archivo y listo, nuestro phpMyAdmin ya funcionará y nos facilitará la gestión del servidor MySQL desde la web :-)