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

7 minutos de lectura
0

Quiero instalar manualmente una pila Lamp (Linux, Apache, MySQL, PHP) en mi instancia de Amazon Lightsail.

Solución

Nota: La siguiente resolución es válida para la mayoría de las principales distribuciones de Linux que están disponibles en la opción Solo SO de Amazon Lightsail. Entre ellas, Ubuntu 20.04, Ubuntu 18.04, Debian 10 y 9 y CentOS 8 y 7.

Para obtener información sobre cómo instalar una pila LAMP en Amazon Linux 2, consulte Install LAMP web server on Amazon Linux 2.

Para obtener información sobre cómo instalar una pila LAMP en Amazon Linux, consulte Install LAMP web server on 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 pasos siguientes instalan la última versión del paquete, PHP 8.0. Por defecto, PHP 8.0 no está presente en la mayoría de las distribuciones. Para instalar PHP 8.0, active los repositorios de terceros.

Ubuntu 20.04 y Ubuntu 18.04

Para instalar PHP, ejecute los siguientes comandos:

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

Para instalar PHP, ejecute los siguientes comandos:

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

Para instalar PHP, ejecute los siguientes comandos:

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

Para instalar PHP, ejecute los siguientes comandos:

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

Activación del módulo PHP-FPM

El módulo PHP-FPM proporciona un sitio web más rápido. Aunque PHP-FPM es opcional, se recomienda usarlo para la mayoría de las tareas de creación y administración de sitios web.

Ubuntu 20.04 y 18.04, Debian 10 y 9

Ejecute los siguientes comandos para instalar 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 usar el módulo 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 de 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 PHP-FPM para que el servicio escuche al puerto en lugar de al socket:

    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 de 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 con el repositorio de MariaDB.

  1. Ejecute el siguiente comando para agregar el repositorio yum de MariaDB (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 pida, defina una contraseña para la cuenta raíz:
    Introduzca 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. Guarde 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 volver a cargar las tablas de permisos y guardar los cambios.

Cómo añadir permisos a las carpetas de su sitio web para el usuario predeterminado

Para transferir la instancia de su sitio web con SCP/SFTP, como práctica recomendada, establezca los permisos para que el otro usuario acceda al directorio /var/www. Para obtener instrucciones sobre cómo configurar los permisos, consulte la sección Para configurar los permisos de archivo del Paso 1: Preparación del servidor LAMP. En los pasos siguientes se proporcionan los permisos necesarios para el usuario predeterminado en cada distribución de Linux. Puede agregar el usuario al grupo Apache y, a continuación, cambiar la propiedad del directorio al usuario y al grupo Apache predeterminados.

Siga estos pasos:

Ubuntu 20.04 y 18.04

  1. Ejecute el siguiente comando:

    sudo usermod -a -G www-data ubuntu
  2. Cierre sesión y vuelva a iniciarla para seleccionar el nuevo grupo. A continuación, ejecute el comando group para verificar su suscripción:

    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 sesión y vuelva a iniciarla para seleccionar el nuevo grupo. A continuación, ejecute el comando group para verificar su suscripción:

    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 apache centos
  2. Cierre sesión y vuelva a iniciarla para seleccionar el nuevo grupo. Ejecute el comando group para verificar su suscripción:

    sudo chown -R centos:apache /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 {} \;

Cómo ver la página web predeterminada

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 ya está listo para personalizarlo.

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses