¿Cómo puedo instalar una pila LAMP manualmente en mi instancia Lightsail?

Última actualización: 25 de octubre de 2021

Quiero instalar manualmente una pila Lamp (Linux, Apache, MySQL, PHP) en mi instancia de Amazon Lightsail. ¿Cómo lo hago?

Resolución

Nota: Los pasos de esta resolución cubren la mayoría de las principales distribuciones de Linux disponibles en la opción OS Only (Solo OS) de Amazon Lightsail. Entre ellos se encuentran Ubuntu 20.04, Ubuntu 18.04, Debian 10 y 9, y CentOS 8 y 7.

Para obtener información sobre la instalación de una pila LAMP en Amazon Linux 2, consulte el Tutorial: Instalación de un servidor web LAMP en Amazon Linux 2.

Para obtener información sobre la instalación de una pila LAMP en Amazon Linux, consulte el Tutorial: Instalación de un servidor web LAMP en la AMI de Amazon Linux.

Instalación de Apache

Ubuntu 20.04 y 18.04, Debian 9 y 10

Ejecute los siguientes comandos para instalar el servidor web Apache:

sudo apt update -y
sudo apt install apache2 -y

CentOS 7 y CentOS 8

Ejecute los siguientes comandos para instalar el servidor web Apache:

sudo yum update -y
sudo yum install httpd wget -y
sudo systemctl enable httpd
sudo systemctl start httpd

Instalación de PHP

Nota: Los siguientes pasos instalan PHP 8.0, que es la versión más reciente del paquete PHP compatible. PHP 8.0 no está presente de forma predeterminada en la mayoría de las distribuciones. PHP 8.0 se instala habilitando los repositorios de terceros.

Ubuntu 20.04 y Ubuntu 18.04

Ejecute los siguientes comandos para realizar la instalación de PHP:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

Debian 10 y Debian 9

Ejecute los siguientes comandos para realizar la instalación de PHP:

sudo apt install -y gnupg2 ca-certificates apt-transport-https software-properties-common
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo apt update
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

CentOS 7

Ejecute los siguientes comandos para realizar la instalación de PHP:

sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php80
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

CentOS 8

Ejecute los siguientes comandos para realizar la instalación de PHP:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf module enable php:remi-8.0 -y
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

Habilite el módulo PHP-FPM

El módulo PHP-FPM proporciona un sitio web mucho más rápido. Aunque la instalación de PHP-FPM es opcional, es una práctica recomendada utilizarlo con la mayoría de los sitios web de creación y administración de sitios web.

Ubuntu 20.04 y 18.04, Debian 10 y 9

Ejecute los siguientes comandos para la instalación de PHP-FPM:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm
sudo a2dismod php8.0
sudo systemctl enable php8.0-fpm
sudo service apache2 restart;sudo service php8.0-fpm restart

CentOS 7

1.    Actualice la configuración de Apache para utilizar mpm_event_module en lugar de mpm_prefork_module:

[centos@ip ~]# sudo vi /etc/httpd/conf.modules.d/00-mpm.conf 
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_event_module modules/mod_mpm_event.so

2.    Haga una copia de seguridad del archivo de configuración PHP actual en Apache y, a continuación, cree uno nuevo con el siguiente contenido:

sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf

<Files ".user.ini">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>
</Files>

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

AddType text/html .php
DirectoryIndex index.php

3.    Reinicie Apache y PHP-FPM para que los cambios surtan efecto:

sudo systemctl restart php-fpm
sudo systemctl restart httpd

CentOS 8

1.    Actualice el archivo de configuración de PHP-FPM para que el servicio escuche el puerto en lugar del conector.

sudo sed 's#listen = /run/php-fpm/www.sock#listen = 127.0.0.1:9000#g' -i /etc/php-fpm.d/www.conf

2.    Haga una copia de seguridad del archivo de configuración PHP actual en Apache y, a continuación, cree uno nuevo con el siguiente contenido:

sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
sudo vi /etc/httpd/conf.d/php.conf

<Files ".user.ini">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
        Satisfy All
    </IfModule>
</Files>

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

AddType text/html .php
DirectoryIndex index.php

3.    Ejecute el siguiente comando en el servidor para permitir que Apache establezca conexiones salientes:

sudo /usr/sbin/setsebool -P httpd_can_network_connect 1

4.    Reinicie Apache y PHP-FPM para que los cambios surtan efecto:

sudo systemctl restart php-fpm
sudo systemctl restart httpd

Instalación de MariaDB

Instale la versión 10.5 de MariaDB utilizando el repositorio MariaDB directamente.

1.    Ejecute el siguiente comando para agregar el repositorio MariaDB yum (para todas las distribuciones de Linux):

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5"

2.    Instale el paquete MariaDB:

Ubuntu 20.04, Ubuntu 18.04, Debian 10 y Debian 9

sudo apt install mariadb-server -y

CentOS 8 y CentOS 7

sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

3.    Ejecute el siguiente comando para completar la instalación segura de MariaDB y establecer la contraseña raíz:

sudo mysql_secure_installation

4.    Cuando se le solicite, establezca una contraseña para la cuenta raíz:

Escriba la contraseña raíz actual. De forma predeterminada, la cuenta raíz no tiene una contraseña establecida.
Pulse Intro.
Pulse N para cambiar a la autenticación unix_socket.
Pulse Y para establecer una contraseña y, a continuación, introduzca una contraseña segura dos veces. Asegúrese de guardar esta contraseña en un lugar seguro.
Pulse Y para eliminar las cuentas de usuario anónimas.
Pulse Y para desactivar el inicio de sesión raíz remoto.
Pulse Y para eliminar la base de datos de prueba.
Pulse Y para recargar las tablas de privilegios y guardar los cambios.

Añadir permisos para las carpetas de tu sitio web al usuario predeterminado

Para transferir la instancia del sitio web mediante SCP/SFTP, es una práctica recomendada que el usuario correspondiente tenga permisos para acceder al directorio /var/www. En los pasos siguientes se otorgan los permisos adecuados para el usuario predeterminado en cada distribución de Linux. Puede agregar el usuario al grupo Apache y, a continuación, cambiar la propiedad de ese directorio al usuario predeterminado y al grupo Apache.

Ubuntu 20.04 y 18.04

1.    Ejecute el siguiente comando:

sudo usermod -a -G www-data ubuntu

2.    Cierre la sesión y vuelva a iniciarla para recuperar el nuevo grupo. A continuación, verifique su membresía ejecutando “grupo”:

sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

Debian 10 y 9

1.    Ejecute el siguiente comando:

sudo usermod -a -G www-data admin

2.    Cierre la sesión y vuelva a iniciarla para recuperar el nuevo grupo. A continuación, verifique su membresía ejecutando “grupo”.

sudo chown -R admin:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

CentOS 8 y 7

1.    Ejecute el siguiente comando:

sudo usermod -a -G www-data ubuntu

2.    Cierre la sesión y vuelva a iniciarla para recuperar el nuevo grupo. Verifique su membresía ejecutando “grupo”:

sudo chown -R ubuntu:www-data /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

Su sitio web está listo

Acceda a la dirección IP pública de su instancia en un navegador web para ver la página web predeterminada. Su sitio web ahora está listo para la personalización.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?