LAMP en ArchLinux

Servidor LAMP en ArchLinux

Introducción

LAMP es el acrónimo de Linux + Apache + mariaDB/MySQL + PHP/Perl/Python. Este tutorial se basa en PHP versión 7, si desea instalar y configurar la versión 8 deberá consultar algún otro tutorial.

Instalación

Ejecute en la consola el siguiente comando para instalar los paquetes necesarios:

$ sudo pacman -S apache php7 php7-apache mariadb phpmyadmin

Apache

Apache es el servidor web encargado de atender las solicitudes Web.

Configuración

Es probable que varias de las siguientes configuraciones ya se encuentren realizadas por defecto, entonces sólo habrá que verificar que tengan el valor correcto.

  • Deshabilitar módulo unique_id. Para ello es necesario editar el archivo /etc/httpd/conf/httpd.conf:
sudo vim /etc/httpd/conf/httpd.conf
  • Buscar la línea correspondiente al modulo unique_id y comentarla anteponiendo el caracter #.
#LoadModule unique_id_module    modules/mod_unique_id.so
  • Habilitar el modulo userdir Este modulo permite que los usuarios puedan publicar archivos a través de Apache mediante el directorio public_html en su directorio personal.
sudo vim /etc/httpd/conf/extra/httpd-userdir.conf
  • Verificar que la línea que contiene UserDir public_html
# Settings for user home directories
#
# Required module: mod_authz_core, mod_authz_host, mod_userdir

#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir public_html

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
  • Habilitar el servicio Apache

Ejecutar el siguiente comando para habilitar el servicio a través de SystemD.

sudo systemctl enable httpd
  • Ejecutar el siguiente comando para iniciar el servicio via SystemD.
sudo systemctl start httpd

PHP

PHP es un lenguaje interpretado de propósito general que proporciona funcionalidad a los sitios Web.

Configuración

  • Editar el archivo de configuración /etc/httpd/conf/httpd.conf:
sudo vim /etc/httpd/conf/httpd.conf
  • Añadir debajo de todos los LoadModules:
LoadModule php7_module modules/libphp7.so
  • Comentar la siguiente linea:
#LoadModule mpm_event_module modules/mod_mpm_event.so
  • Añadir la siguiente línea, en caso de que no exista:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
  • Verificar que exista el archivo:
sudo vim /etc/httpd/conf/extra/php7_module.conf
  • Verificar que su contenido sea el siguiente:
# Required modules: dir_module, php7_module

<IfModule dir_module>
  <IfModule php7_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
      SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
      SetHandler application/x-httpd-php-source
    </FilesMatch>
  </IfModule>                                                                                                                                     
</IfModule>
  • Editar el archivo /etc/httpd/conf/httpd.conf
sudo vim /etc/httpd/conf/httpd.conf
  • Agregar las líneas al final del archivo:
# Configuración de PHP7
AddHandler php7-script php
Include conf/extra/php7_module.conf
  • Ahora editar el archivo /etc/php7/php.ini :
sudo vim /etc/php7/php.ini
  • En la línea de open_basedir añadir los directorios para PHP y phpMyAdmin:
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps
  • Activar soporte para MariaDB/MySQL, editar el archivo:
sudo vim /etc/php7/php.ini
  • Descomentar las líneas:
extension=iconv
extension=mysqli
  • Ahora reiniciar el demonio Apache:
sudo systemctl restart httpd

mariaDB

Configuración

  • Este comando realiza la configuración inicial del gestor de bases de datos:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
  • Habilitar el servicio mariaDB
sudo systemctl enable mysqld
  • Iniciar el servicio mariaDB
sudo systemctl start mysqld
  • Configuración general de mariaDB. Basta con responder las preguntas del asistente de configuración general que se ejecuta mediante el siguiente comando:
sudo mysql_secure_installation

phpMyAdmin

Configuración

  • Acceso de PHP a /etc/webapps Verificar que el cambio previo a open_basedir haya sido realizado en el archivo /etc/php/php.ini:
sudo vim /etc/php/php.ini
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps
  • Creación del archivo de configuración de phpMyAdmin
sudo vim /etc/httpd/conf/extra/phpmyadmin.conf
  • Añadir las líneas al archivo:
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
  DirectoryIndex index.php
  AllowOverride All
  Options FollowSymlinks
  Require all granted
</Directory>
  • Configurar Apache para phpMyAdmin, editar el archivo:
sudo vim /etc/httpd/conf/httpd.conf
  • Añadir la línea al final del archivo:
# phpMyAdmin
Include conf/extra/phpmyadmin.conf
  • Reiniciar el servicio Apache:
sudo systemctl restart httpd
  • Probar phpMyAdmin mediante la URL:
http://localhost/phpmyadmin 

Comentarios

Entradas más populares de este blog

Cómo habilitar y configurar el módulo userdir de Apache2 y PHP5 en Ubuntu

Instalar Spotify + Blockify Ubuntu 17.04

Problema con ícono de Chrome en Ubuntu Gnome 14.04