Vous êtes sur la page 1sur 5

Instalacin y configuracin del entorno LAMP (Apache + PHP + MySQL) en ArchLinux con systemd

Ahora que las nuevas instalaciones de ArchLinux usan systemd de manera predeterminada, algunas cosas han cambiado, entre ellas, ciertos detalles en la instalacin y configuracin del entorno LAMP (Linux + Apache + MySQL + PHP). Aprovechando que hace unos das realic una instalacin limpia en mi equipo de produccin, tambin lo hice con dicha instalacin y configuracin, misma que comparto con ustedes en el presente tutorial.

Paso 1. Instalacin de los paquetes necesarios


Antes que nada, instalemos los paquetes bsicos que necesitaremos.
sudo pacman -S apache php php-apache mysql

Paso 2. Ejecutando Apache


Ejecutemos (va systemd) nuestro servidor web Apache con las configuraciones predeterminadas:
sudo systemctl start httpd.service

Adicionalmente, para que Apache se ejecute de manera automtica en los siguientes booteos, usa:
sudo systemctl enable httpd.service

Ahora bien, cmo se llama tu servidor? Eso lo tienes establecido en dos archivos:/etc/hostnamey/etc/hosts. Lo ms comn es que en ambos tengas localhost. Si no es as, reemplaza localhost por tu nombre de servidor en el resto del tutorial. En tu navegador web favorito, entra a http://localhost/ o http://127.0.0.1/ donde veremos algo similar a la siguiente captura de pantalla.

Muy feo! verdad? Es porque localhost no tiene ningn contenido, as que vamos a solucionarlo!.

Paso 3. Creando nuestro index.html


Antes de crear nuestro index.html, debemos tener en cuenta dos detalles que se encuentran establecidos en/etc/httpd/conf/httpd.conf (el archivo de configuracin principal de Apache en ArchLinux): Durante el booteo del sistema, el encargado de ejecutar Apache es root, pero por motivos de seguridad, de inmediato se cambia al usuario http (que a su vez pertenece al grupo http). La carpeta predeterminada para el contenido de localhost es /srv/http, cuyo propietario es root de manera predeterminada. Debido a lo anterior, debemos realizar algunas acciones para poder empezar a crear contenido en nuestro servidor web local. 1.Primero, debemos agregar nuestro usuario al grupo http.
sudo gpasswd -a miusuario http

Debemos cerrar nuestra sesin actual y volver a loguearnos para que el cambio sea aplicado. 2.Ahora, debemos ceder la propiedad de root a http (tanto para el usuario como para el grupo) de manera recursiva para /srv/http.
sudo chown -R http:http /srv/http

3.Debemos establecer permisos de escritura para el grupo http (al cual nos hemos
agregado) para la misma carpeta (y todo su contenido).
sudo chmod -R g+w /srv/http

Ahora si, ya podemos crear nuestro index.html, el cual puede ser desde una simple lnea de texto
echo 'Hola Mundo!' > /srv/http/index.html

hasta algo ms elaborado (usa tu editor preferido y guardalo como index.html en /srv/http/).
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <title>Bienvenidos a ArchLinux!</title> <style> body { margin: 0; font-family: Helvetica, Arial, sans-serif; } h1 { background: #ccc; margin: 0; padding: 10px; } #contenido { margin: 10px auto; padding: 10px; width: 500px; } </style> </head> <body> <div id="contenido"> <h1>Bienvenido!</h1> <p><strong>Apache</strong> corriendo bajo <strong>ArchLinux</strong> con <strong>systemd</strong>.</p> </div> </body> </html>

Paso 4. Configurando PHP


Este paso es el tpico de siempre. Vamos a configurar Apache para que reconozca a PHP. Primero, como root, abre el archivo /etc/httpd/conf/httpd.conf con tu editor favorito. Por ejemplo:
sudo vim /etc/httpd/conf/httpd.conf

Ah, realiza los siguientes cambios: 1.En la lista que tiene todos los LoadModule, y despus de LoadModule dir_module modules/mod_dir.so, agrega la lnea:
LoadModule php5_module modules/libphp5.so

2.Al final de la lista de todos los Include, agrega la lnea:


Include conf/extra/php5_module.conf

3.Asegrate que la siguiente lnea no est comentada (que no tenga # al inicio) en la seccin
TypesConfig conf/mime.types

4.Descomenta (elimina el # del inicio) la siguiente lnea:


MIMEMagicFile conf/magic

Ahora, como root, abre el archivo /etc/httpd/conf/mime.types con tu editor preferido (seguro que es vim!). Por ejemplo:
sudo vim /etc/httpd/conf/mime.types

Al final de dicho archivo agrega la lnea:


application/x-httpd-php5 sudo systemctl restart httpd.service php php5

Listo! Reiniciemos Apache para aplicar los cambios: Para probar que Apache ya reconoce a PHP, vamos a crear el tpico archivo de ejemplo:
echo '<?php phpinfo(); ?>' > /srv/http/info.php

Y finalmente, para verlo entra a tu navegador web, y entra a http://localhost/info.php

Paso 5. Configurando MySQL


Primero, vamos a ejecutar de inmediato el servidor de base de datos MySQL con:
sudo systemctl start mysqld.service

Para que se ejecute en cada booteo, usamos:


sudo systemctl enable mysqld.service

Y antes de que hagamos cualquier otra cosa, debemos establecer la contrasea del usuario root de MySQL (no es el mismo que el root del sistema). La forma ms sencilla de hacerlo, es ejecutar la siguiente utilera:
mysql_secure_installation

Lo anterior nos preguntar primero la contrasea actual de root, la cual no existe, as que debemos dar [Enter], y entonces escribir (y confirmar) la nueva contrasea. Adicionalmente, la utilera nos preguntar algunos detalles adicionales, a los cuales se sugiere responder las opciones predeterminadas. Ahora, tenemos que decirle a PHP de la existencia de MySQL. Vamos a abrir el archivo /etc/php/php.ini con tu editor favorito
sudo vim /etc/php/php.ini

y descomentar (eliminar el ; al inicio) las siguientes lneas:


extension=mysqli.so extension=mysql.so

Si deseas realizar alguna modificacin en los parmetros de MySQL debes hacerlo editando el archivo/etc/mysql/my.cnf. Finalmente, reiniciemos Apache y MySQL para aplicar los cambios realizados.
sudo systemctl restart httpd.service sudo systemctl restart mysqld.service

Comentarios Adicionales
Aunque ya los mencion, no olviden que los archivos de configuracin son: Apache: /etc/httpd/conf/httpd.conf PHP: /etc/php/php.ini

MySQL: /etc/mysql/my.cnf
Tampoco olviden que bajo systemd, se utilizan los comandos: Habilitar para cada booteo: sudo systemctl enable <servicio> Ejecutar de inmediato: sudo systemctl start <servicio>

Detener de inmediato: sudo systemctl stop <servicio> Reiniciar de inmediato: sudo systemctl restart <servicio> Ver el estado del servicio: sudo systemctl status <servicio>
Donde <servicio> puede ser alguno de los siguientes:

Apache: httpd.service MySQL: mysqld.service


Por ltimo, no olviden consultar la documentacin oficial para ms informacin: https://wiki.archlinux.org/index.php/LAMP https://wiki.archlinux.org/index.php/PHP

https://wiki.archlinux.org/index.php/MySQL

Vous aimerez peut-être aussi