LAMP no sirve para el desarrollo web en PHP con conexión a base de datos en MySQL.

¿Qué es LAMP?

Se llama LAMP en contrapoición con XAMP que son los mismos servicios para Windows; mientras que LAMP son para poder utilizarlo en Linux.

LAMP

Nota: En esta publicación se muestra el comando “pacman” para la instalación de paquetes.

Si tienes yay, puedes cambiar el comando pacman por yay sin problema.

Apache

Apache es el servidor web por excelencia. Nos permite mostrar páginas web en nuestra computadora.

Muy útil cuando somos desarrolladores de páginas o aplicativos web y requerimos ver el resultado previo a pasarlo a producción.

Para instalarlo sólo se requiere el siguiente comando:

sudo pacman -S apache

Una vez que está instalado, debemos modificar la configuración de Apache:

sudo nano /etc/httpd/conf/httpd.conf

Y comentamos la siguiente línea:

#LoadModule unique_id_module modules/mod_unique_id.so

Opcional: Cambiar la carpeta raíz de Apache

Si deseas que el servidor Apache cargue otra carpeta en lugar de la que está en /srv/http, bien puede ser porque tu código está en home o en orto disco duro.

Esto ayuda a que si por alguna razón debes formatear root o reinstalar tu sistema operativo, no se pierde tu código al estar en otra partición.

Para esto se debe modificar el siguiente archivo:

sudo nano /etc/httpd/conf/httpd.conf

Baja hasta encontrar lo siguiente:

DocumentRoot "/srv/http"
<Directory "/srv/http">

Y cámbialo por la nueva ruta donde deseas que esté el código en el servidor (la ruta debe existir), por ejemplo:

DocumentRoot "/home/miUsuario/miServidor/www"
<Directory "/home/miUsuario/miServidor/www">

Recordatorio: Debes colocar la ruta en donde está tu carpeta de códigos.

Ahora bien, si reiniciamos el servidor Apache, puede mostrarnos una pantalla Forbidden, que singifica que no tenemos permiso de mostrar una página o un directorio del sitio al que nosotros apuntamos.

Para esto, debemos corregir los permisos de la carpeta padre.

Enfatizo, carpeta padre, es decir la carpeta donde reside la carpeta en donde están nuestros archivos de código.

Ejemplo:

Si nuestra ruta personalizada es /home/miUsuario/miServidor/www, entonces la carpeta del código es www y la carpeta padre es “miServidor”.

Una vez identificada la carpeta padre, procedemos a corregir los permisos:

chmod o+x rutaCarpetaPadre

Por ejemplo:

chmod o+x /home/miUsuario/miServidor

Prueba entrar desde el navegador a 127.0.0.1 y si te marca forbidden, entonces ejecuta el mismo comando pero a puntando a la padre de donde se hizo originalmente. Por ejemplo:

chmod o+x /home/miUsuario

Y comprueba que ya no marca Forbidden.

Listo. Termina la parte opcional.

Una vez que tienes tu configuración lista, se debe habilitar y reiniciar el servidor Apache.

systemctl enable httpd
systemctl restart httpd

Y listo, ya debes poder entrar en el navegador desde la dirección 127.0.0.1.

MySQL / MariaDB

El servidor MySQL o MariaDB nos permitirá utilizar base de datos y tener acceso a los mismos desde console, un cliente o desde una página web (Se requiere un lenguaje de programación como PHP que se verá más adelante).

Su instalación es la siguiente:

sudo pacman -S mysql

Se indica la carpeta de datos de MySQL:

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Iniciamos el servicio:

sudo systemctl enable mysqld
sudo systemctl start mysqld

E indicamos la contraseña de root:

sudo mysql_secure_installation

Con esto nos guiará por unos pasos para terminar de configurar MySQL y se muestran a continuación:

Indicar la clave de root del sistema para poder asignar clave de root de MySQL:

Enter current password for root (enter for none):

Nos pregunta si indicamos la clave de root de MySQL, indicamos que sí (Y):

Set root password? [Y/n]

Indicamos la nueva clave:

New password:

Repetimos la clave:

Re-enter new password:

Eliminar el usuario anónimo es muy recomendando para la seguridad del servidor:

Remove anonymous users? [Y/n]

También deberíamos desactivar el acceso a root de forma remota, a menos que si requiramos entrar como root desde otro dispositivo:

Disallow root login remotely? [Y/n]

De igual manera, deberíamos, por seguridad, eliminar la base de datos de prueba:

Remove test database and access to it? [Y/n]

Y finalmente recargamos la tabla de privilegios:

Reload privilege tables now? [Y/n]

Y listo. Tenemos MySQL instalado.

Para poder iniciar sesión como root lo hacemos de la siguiente manera:

mysql -u root -p

PHP

PHP nos permite crear scripts que puedan ejecutarse desde un servidor, como Apache; también nos permite conectarnos a una base de datos y extraer la información.

Su instalación y configuración es la siguiente.

Instalamos PHP:

sudo pacman -S php php-apache

Ahora necesitamos indicarle a Apache que debe procesar los scripts de PHP.

Editamos el siguiente archivo:

sudo nano /etc/httpd/conf/httpd.conf

Y comentamos la siguiente línea:

#LoadModule mpm_event_module modules/mod_mpm_event.so

Y agregamos las siguientes líneas:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php7_module modules/libphp7.so
AddHandler php7-script php
Include conf/extra/php7_module.conf

Posibles extensiones de PHP que podemos utilizar.

Las extensiones nos permiten realizar más funciones en PHP. Sólo debemos buscar la extensión en:

sudo nano /etc/php/php.ini

Y descomentarlo quitando el punto y coma que está al principio de la línea.

Para conectar con MySQL ya sea MySQLi o PDO:

extension=mysqli
extension=pdo_mysql

Finalmente reiniciamos Apache:

sudo systemctl restart httpd

Y listo. Tendremos Apache, MySQL y PHP (LAMP) listos para poder utilizarlos.


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

0 Comments

Deja un comentario