Instalación de Apache 2, PHP4 y MySQL 4

Instalando MySQL

Lo primero que haremos será entrar en la carpeta /usr/local/src y descomprimir el archivo tar.gz correspondiente. Con esto se nos creará una carpeta con el mismo nombre (sin extensión) que contendrá los fuentes de la aplicación.

bash# tar xvfzp mysql-4.1.10a.tar.gz
bash# cd mysql-4.1.10a

Creación de usuario y grupo mysql

Es necesario por seguridad crear un usuario y un grupo de nombre mysql con el fin de que sea este usuario bajo el que se ejecute MySQL, y sea también el propietario de las bases de datos.

bash# groupadd mysql
bash# useradd -g mysql mysql

Configuración de los fuentes y compilación

Mediante el programa configure se realizar una configuración automática de los fuentes comprobando que todas las librerías necesarias están instaladas. Es posible utilizar diferentes parámetros para variar el comportamiento por defecto de la instalación. Así, por ejemplo, el parámetro más importante es --prefix, mediante el cual se indica el path en el que se desea instalar la aplicación. Existen multitud más de parámetros que pueden verse con ./configure --help.

La forma más sencilla de configurar los fuentes es indicando únicamente la ubicación donde queremos instalar la aplicación

bash# ./configure --prefix=/usr/local/mysql

En nuestro caso sin embargo, vamos a añadir un conjunto de opciones que indican el compilador a utilizar (gcc) así como que se genere un binario optimizado. Lo siguiente es una única instrucción formada de varias líneas.

bash# CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \
-felide-constructors -fno-exceptions -fno-rtti" ./configure \
--prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-named-curses-libs=/lib/libncurses.so.5

Si todo ha ido correctamente, tanto en un caso como en el otro, nos saldrá un mensaje similar al siguiente:

MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.
 
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.
 
Thank you for choosing MySQL!

En caso contrario se nos indicará el problema, que suele ser que no hay disponible alguna librería necesaria, en cuyo caso deberemos instalarla y volver a intentarlo. Podemos mirar el archivo config.log para ver un informe de lo sucedido.

Una vez correctamente configurados los fuentes, es hora de compilarlos.

bash# make

Este proceso puede tardar varios minutos en función del equipo en el que estemos realizando la instalación.

Instalación

Una vez compilada la aplicación nos queda instalarla, lo cual haremos también utilizando el comando make, pero indicándole una tarea diferente.

bash# make install

Tras la instalación hay varias cosas que es necesario configurar antes de poder empezar a trabajar, como crear un archivo de configuración, crear las tablas de permisos (grant tables), configurar los permisos de los programas y la carpeta de datos y, por último, configurar MySQL para que se inicie automáticamente al arrancar la máquina.

Crear el archivo de configuración

En la carpeta support-files hay varios ejemplos que se pueden tomar como base.

bash# cp support-files/my-medium.cnf /etc/my.cnf
bash# chown mysql:mysql /etc/my.cnf
bash# chmod 600 /etc/my.cnf

Le ponemos permisos de lectura y escritura únicamente para el usuario root, de forma que nadie más pueda acceder al archivo.

Conviene echar un vistazo al archivo creado, por si consideramos que tenemos que modificar algún parámetro de la configuración. En nuestro caso vamos a desactivar el log binario que se utiliza para replicación de bases de datos. Para ello buscamos la línea que contiene log-bin y le ponemos un «#» al comienzo.

# Replication Master Server (default)
# binary logging is required for replication
#log-bin

Dentro de la sección mysqld vamos también a introducir una línea comentada que nos permitirá activar el log de consultas si en algún momento necesitamos ver qué consultas se están ejecutando, por ejemplo, si detectamos que el servidor tiene problemas y consideramos que se debe a algún tipo de consultas SQL.

#log             = /usr/local/mysql/var/mysql.log

Tablas de permisos

La primera vez que se instala MySQL es necesario crear estas tablas. Para ello disponemos de un programa que permite hacerlo automáticamente.

bash# /usr/local/mysql/bin/mysql_install_db --user=mysql

El valor mysql que se indica en el parámetro --user ha de coincidir con el usuario que hemos creado al comienzo de la instalación.

Permisos

Debemos configurar los permisos de los programas generados así como de la carpeta que contiene las bases de datos. Vamos a poner como propietario de todos los archivos al usuario root, y como grupo mysql, salvo en la carpeta de datos var y su contenido, que le pondremos como usuario propietario mysql.

bash# chown -R root /usr/local/mysql
bash# chown -R mysql /usr/local/mysql/var
bash# chgrp -R mysql /usr/local/mysql

Arranque de MySQL

Vamos a comenzar lo primero lanzando el servidor de MySQL para comprobar que la instalación que hemos realizado ha ido bien.

bash# /usr/local/mysql/bin/mysqld_safe --user=mysql &

Si falla nos indicará algo similar a «mysqld ended». Podremos ver información al respecto en el archivo «host_name.err» que hay en el directorio de datos.

Podemos probar a entrar en la consola de mysql utilizando el usuario root, el cual inicialmente no tiene password, lo cual convendría por seguridad cambiar.

bash# /usr/local/mysql/bin/mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.10a
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>

Una vez llegados a este punto, en el que ya tenemos MySQL instalado y funcionando, podemos probar a configurar MySQL para que se active automáticamente al arrancar la máquina. Para ello podemos copiar el archivo support-files/mysql.server en la ubicación en donde estén los scripts de arranque en la máquina.

bash# cp support-files/mysql.server /etc/init.d/mysqld
bash# chmod +x /etc/init.d/mysqld

En sistemas basados en RedHat puede ser que en vez de en /etc/init.d, tengamos que copiar el archivo en /etc/rc.d/init.d. Podemos probar el script llamándole directamente /etc/init.d/mysqld e indicándole la acción que queremos, start,stop o restart.

Una vez copiado el script de arranque es necesario activarlo, por ejemplo usando chkconfig o creando enlaces simbólicos desde el runlevel que deseemos.

bash# chkconfig --add mysqld

En el caso de distribuciones basadas en debian podemos utilizar:

bash# update-rc.d mysqld defaults

En la web de MySQL hay más información al respecto.

Con esto ya tendríamos MySQL correctamente instalado y configurado, es momento de pasar a instalar Apache.

Páginas: 1 2 3 4

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

19 Respuestas para “Instalación de Apache 2, PHP4 y MySQL 4”

  1. Felicitaciones, todo me funciono como indicas.

  2. hola,
    podrias dejar tb la instalacion para win??? me obligan a instalarlo en win y me toy volviendo loca….
    gracias

  3. Lo hice con PHP5 + MYSQL5 + APACHE2 y Funciona perfectamente

  4. oye que onda……….. en lugar que suban los archivos ya modifiados para lo unico que se tenga que hacer es copiar y pegar asi sera mas facil para rodos

  5. Hola
    Me podrían indicar por favor, como iniciar mysql 4.0.23, yo lo instale desde un rpm, creo que se instaló correctamente pero no puedo iniciarlo. ayudenme por favor

  6. Hola
    Alguien me podria explicar como puedo iniciar windows sin que apache y mysql empiezen a ejecutarse, es para ya no estar esperando que cargen. Este es mi mail para que puedan contactarme black_fire_dark@hotmail.com

  7. Hola. Probaron con PHP Triad? Les instala Apache, MySQL etc etc. desde un solo programa. Está bastante bueno. S2.

  8. Mariano, PHP Triad en efecto es una buena opción para instalar todo el lote Apache+MySQL+PHP en un windows, aunque también hay otras alternativas como easyPHP. En cualquier caso ten en cuenta que en este artículo nos centramos en la configuración e instalación en linux.

  9. Hola KikaySensO, para que tu Windows inicie sin tener que cargar Apache, MySQL u otra cosa que tu no quisieras o que no te fuera util, solo debes desactivar temporalmete el servicio, vea a INICIO y en ejecutar escribe msconfig y en la pestaña de Servicios quitale la palomita al servicio que desees. De igual manera haras lo mismo cuando quieras recuperar el servicio.

    Saludos y suerte xD 🙂

  10. Hola
    Hice todos los pasos y funciona bien, pero cuando tengo archivos con codigo html y codigo php juntos me los descarga. hice todo lo que decian para arreglar eso pero aun me persiste el problema

    Como lo soluciono?

    Grax

  11. Hola
    Ya arregle lo de php y html
    Pero me parece que el problema es con Mysql, cuando tengo scrip de conexion a la base de datos dentro de codigo php me descarga el archivo…a que se puede deber????

  12. Hola a todos y gracias por atender esta pregunta.

    Alguien me podria decir por favor como configurar correctamente apache 2.2.4. El problema es que cuando entro al localhost solo me aparecen las palabras IT WORKS y no la pagina que debe de aparecer de apache con las palabras funciona y el logo de apache (pluma). Ya intente cargando LoadMOdule php5 y AddModule ademas de añadir el AddType application y el Action application, tambien ya revise el listen para el puerto (80)los directorys, el server name y nada. Todo lo anterior ya esta en mi archivo httpd.conf y solo aparece IT WOKRS. Gracias por su ayuda

  13. Hola me aparece este error al cargar un modulo de apache
    httpd: Syntax error on line 406 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

    LoadModule php5_module /usr/local/apache2/modules/libphp5.so
    AddModule mod_php5.c

    AddType application/x-httpd-php .php4 .php3 .phtml .php
    AddType application/x-httpd-php-source .phps

  14. Josue, puede ser que tengas instalado SELinux?

    Intenta ejecutar ‘ls –lcontext’ (LS –LCONTEXT), puede que obtengas algo como:

    root:object_r:usr_t

    Ejecuta ‘chcon libphp5.so -t shlib_t’ y comprueba que haya cambiado a:

    root:object_r:shlib_t

    Referencia: http://www.linuxquestions.org/questions/linux-software-2/apache-and-php5-problem-fc4-342621/

  15. hola no ‘puedo reiniciar apache: me aparece un error en apache2.conf error de sintaxisen al linea 141
    invalid comand «Order», perhaps or misspelled or definide by other module not included in the server configuration.
    que hago ayudenme porfas!!!!!

  16. Hola mi nombre es oscar y mi problema es en esta parte, ya que no tengo «var», tengo que crearla yo mismo o ya tendria que estar?, le agradeceria su ayuda ya que soy nuevo en esto, he seguido todos los pasos y creo que han salido pero cuando llego hasta aqui pues ya no puedo seguir.

    Gracias

    bash# chown -R root /usr/local/mysql
    bash# chown -R mysql /usr/local/mysql/var
    bash# chgrp -R mysql /usr/local/mysql

  17. hola necesito instalar apache2 en suse 10.3.
    lo intente desde la terminal.

    sudo apt-get install apache2

    y me dice que apt-get no se puede usar alguien me podia explicar que estoy haciendo mal.

  18. No estoy seguro porque no utilizo Suse, pero me parece que no usa apt-get sino Yast para instalar software.

Trackbacks/Pingbacks

  1. EsLoMas.com » Instalación de WebDAV en Apache - 02. Nov, 2005

    […] Hace unos meses publiqué un artículo en el que se explicaba cómo instalar Apache 2 con MySQL y PHP4, ahora voy a dar algunas indicaciones sobre como instalar y configurar el módulo mod_dav, pero conviene que leas ese árticulo si tienes previsto compilar e instalar apache desde cero. Si ya partes de una compilación e instalación anterior, conviene ejecutar un make clean antes de nada. […]