Instalar LAMP en Arch Linux y derivados.
El paquete LAMP (Linux, Apache, MySQL/MariaDB, PHP) es el más común a la hora de montar un servidor web. En este articulo veremos cómo instalar LAMP en un servidor Arch Linux.
No debes preocuparte por las versiones que se instalaran, como Arch es una distribución Linux de lanzamiento constante, siempre instalara las ultimas versiones de PHP, Apache, y MariaDB.
Comenzamos…
Instalar LAMP en Arch Linux y derivados
Lo primero que debemos hacer es actualizar Arch Linux.
sudo pacman -Syu
Instalar Apache
Una vez tengamos nuestro servidor actualizado, instalamos Apache.
sudo pacman -Syu apache
Ahora editamos los recursos en el archivo de configuración de Apache, «httpd-default.conf». Te recomiendo que primero hagas una copia de seguridad con el siguiente comando.
cp /etc/httpd/conf/extra/httpd-mpm.conf ~/httpd-mpm.conf.backup
Abrimos el archivo con nuestro editor preferido, en nuestro caso utilizamos nano.
nano /etc/httpd/conf/extra/httpd-mpm.conf
Modifica los valores según tus necesidades. Si tienes un VPS, un buen ejemplo es…
<IfModule mpm_prefork_module>
StartServers 4
MinSpareServers 20
MaxSpareServers 40
MaxRequestWorkers 200
MaxConnectionsPerChild 4500
</IfModule>
Guarda el archivo, y cierra el editor.
Te recomiendo que des-habilites KeepAlive, pero es tu decisión.
nano /etc/httpd/conf/extra/httpd-default.conf
ejemplo…
KeepAlive Off
Solo nos falta habilitar el inicio automático de Apache con el sistema.
sudo systemctl enable httpd.service
Configurar el Virtual Host
Abrimos el archivo de configuración.
nano /etc/httpd/conf/httpd.conf
Debemos definir la raíz predeterminada. Busca la linea…
DocumentRoot "/srv/http"
y la editas como…
DocumentRoot "/srv/http/default"
En el mismo archivo buscamos otra linea más.
#Include conf/extra/httpd-vhosts.conf
la descomentas.
Include conf/extra/httpd-vhosts.conf
Guarda el archivo y cierra el editor.
Configuramos un host virtual (con tus datos reales).
nano /etc/httpd/conf/extra/httpd-vhosts.conf
ejemplo de configuración…
<VirtualHost *:80>
ServerAdmin webmaster@ejemplo.com
ServerName ejemplo.com
ServerAlias www.ejemplo.com
DocumentRoot /srv/http/ejemplo.com/public_html/
ErrorLog /srv/http/ejemplo.com/logs/error.log
CustomLog /srv/http/ejemplo.com/logs/access.log combined
<Directory />
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Guarda el archivo y cierra el editor.
Creamos los directorios (carpetas) a los que hace referencia el Virtualhost (no te olvides de insertar tu dominio real).
sudo mkdir -p /srv/http/default sudo mkdir -p /srv/http/ejemplo.com/public_html sudo mkdir -p /srv/http/ejemplo.com/logs
Iniciamos el servicio Apache.
sudo systemctl start httpd.service
Instalar MariaDB en Arch Linux
Por defecto, Arch Linux instala el motor de base de datos MariaDB.
sudo pacman -Syu mariadb mariadb-clients libmariadbclient
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Arrancamos MariaDB, y habilitamos su inicio con el sistema.
sudo systemctl start mysqld.service sudo systemctl enable mysqld.service
No te olvides de asegurar la instalación de MariaDB.
mysql_secure_installation
- Enter current password for root (enter for none): Pulsa enter
- Set root password? [Y/n]: Y
- New password: Enter password
- Re-enter new password: Repeat password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
La instalación de MariaDB a concluido, ya podemos crear nuestra primera base de datos.
Accedemos a la consola MySQL. La password es la del usuario root.
mysql -u root -p
Creamos la base de datos «MiWeb».
CREATE DATABASE MiWeb;
El usuario y la password.
GRANT ALL ON webdata.* TO 'tu-usuario' IDENTIFIED BY 'tu-password';
Para salir de la consola escribe lo siguiente.
quit
Instalar PHP en Arch Linux
Para finalizar la instalación de LAMP en Arch, nos falta instalar PHP.
sudo pacman -Syu php php-apache
Una vez concluya la instalación de PHP, editamos el archivo php.ini.
nano /etc/php/php.ini
El php.ini debe ser personalizado, pues depende de tu sitio web. Un buen comienzo es configurar el archivo para que obtenga los mensajes de error y registros, ademas de mejorar el rendimiento del servidor.
nano /etc/php/php.ini
Vemos un ejemplo de lineas a modificar en un VPS.
–error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
–log_errors = On
–error_log = /var/log/php/error.log
–max_input_time = 30
–extension=mysql.so
Creamos la carpeta donde se guardaran los registros, y concedemos permisos al usuario de Apache.
sudo mkdir /var/log/php sudo chown http /var/log/php
Habilitamos el modulo PHP en Apache, insertando las siguientes lineas en su sección correspondiente.
nano /etc/httpd/conf/httpd.conf
# Dynamic Shared Object (DSO) Support LoadModule php7_module modules/libphp7.so AddHandler php7-script php # Supplemental configuration # PHP 7 Include conf/extra/php7_module.conf # Located in the <IfModule mime_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Sin salir del archivo, busca la linea que te indico a continuación y la comentas.
LoadModule mpm_event_module modules/mod_mpm_event.so
Justo después de la anterior, copia y pega la que te indico a continuación.
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
ejemplo…
#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Guarda el archivo y cierra el editor.
Para finalizar reiniciamos Apache y el sistema.
sudo systemctl restart httpd.service
sudo systemctl reboot
Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.
genial, todo perfecto
Gracias por tu comentario rigogonza.
Hola, tenemos que usar sudo ? porque veo por otros sitios no lo usan…. saludos
Depende si tienes permisos de administración o no los tienes.
https://wiki.archlinux.org/index.php/Sudo_(Espa%C3%B1ol)#:~:text=Sudo%20es%20una%20alternativa%20a,privilegios%20a%20un%20solo%20comando.