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 aopen_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
Publicar un comentario