Instalación de un servidor web en la instancia de EC2
Instale un servidor web en una instancia de EC2 que creó en Lanzamiento de una instancia EC2 para conectarse con la instancia de base de datos. El servidor web se conecta a la instancia de base de datos de Amazon RDS que creó en Crear una instancia de base de datos de Amazon RDS.
Instalación de un servidor web Apache con PHP y MariaDB
Conéctese a su instancia de EC2 e instale el servidor web.
Para conectarse a la instancia de EC2 e instalar el servidor web Apache con PHP
Conéctese a la instancia de EC2 que ha creado anteriormente siguiendo los pasos que se indican en Conexión con la instancia de Linux en la Guía del usuario de Amazon EC2.
Le recomendamos que se conecte a la instancia de EC2 mediante SSH. Si la utilidad de cliente SSH está instalada en Windows, Linux o Mac, puede conectarse a la instancia con el siguiente formato de comando:
ssh -i
location_of_pem_file
ec2-user@ec2-instance-public-dns-name
Por ejemplo, suponga que
ec2-database-connect-key-pair.pem
está almacenado en/dir1
en Linux y que el DNS IPv4 público de su instancia de EC2 esec2-12-345-678-90.compute-1.amazonaws.com
. Su comando SSH tendría el siguiente aspecto:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
Obtenga las correcciones de errores y las actualizaciones de seguridad más recientes actualizando el software en su instancia de EC2. Para ello, utilice el siguiente comando.
nota
La opción
-y
instala las actualizaciones sin necesidad de confirmación. Para examinar las actualizaciones antes de la instalación, omita esta opción.sudo dnf update -y
-
Una vez completadas las actualizaciones, instale el servidor web Apache, PHP y el software de MariaDB o PostgreSQL con los siguientes comandos. Este comando instala varios paquetes de software y dependencias relacionadas al mismo tiempo.
Si recibe un error, probablemente la instancia no se ha iniciado con una AMI de Amazon Linux 2023. Es posible que esté usando la AMI Amazon Linux 2 en su lugar. Puede ver la versión de Amazon Linux usando el comando siguiente:
cat /etc/system-release
Para obtener más información, consulte Actualización del software de instancia.
Inicie el servidor web mediante el comando que se muestra a continuación.
sudo systemctl start httpd
Puede probar que el servidor web esté correctamente instalado e iniciado. Para ello, escriba el nombre público del Sistema de nombres de dominio (DNS) de su instancia de EC2 en la barra de direcciones de un navegador web, por ejemplo:
http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com
. Si el servidor web se está ejecutando, se mostrará la página de prueba de Apache.Si no ve la página de prueba de Apache, compruebe las reglas de entrada para el grupo de seguridad de VPC que creó en Tutorial: Creación de una VPC para utilizarla con una instancia de base de datos (solo IPv4). Asegúrese de que las reglas de entrada incluyan una que permita el acceso HTTP (puerto 80) a la dirección IP que utiliza para conectarse al servidor web.
nota
La página de prueba de Apache aparece únicamente cuando el directorio raíz de documentos está vac,
/var/www/html
. Después de añadir contenido al directorio raíz de documentos, el contenido aparece en la dirección DNS pública de la instancia de EC2. Antes de este punto, aparece en la página de prueba de Apache.Configure el servidor web para que se inicie en cada arranque del sistema con el comando
systemctl
.sudo systemctl enable httpd
Para permitir a ec2-user
administrar archivos en el directorio raíz predeterminado del servidor web Apache, modifique los propietarios y los permisos del directorio /var/www
. Existen muchas formas de realizar esta tarea. En este tutorial se añade el usuario ec2-user
al grupo apache
, se otorga al grupo apache
la propiedad del directorio /var/www
y se asignan permisos de escritura al grupo.
Para configurar los permisos de archivo para el servidor web Apache
Agregue el usuario
ec2-user
al grupoapache
.sudo usermod -a -G apache ec2-user
Cierre la sesión para actualizar los permisos e incluir el nuevo grupo
apache
.exit
Inicie sesión nuevamente y compruebe que existe el grupo
apache
mediante el comandogroups
.groups
El resultado tiene un aspecto similar al siguiente:
ec2-user adm wheel apache systemd-journal
Cambie la propiedad de grupo del directorio
/var/www
y su contenido al grupoapache
.sudo chown -R ec2-user:apache /var/www
Cambie los permisos del directorio
/var/www
y sus subdirectorios para añadir permisos de escritura de grupo y establecer el ID de grupo en los subdirectorios que se creen en el futuro.sudo chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 {} \;
Cambie recursivamente los permisos de los archivos del directorio
/var/www
y sus subdirectorios para añadir permisos de escritura de grupo.find /var/www -type f -exec sudo chmod 0664 {} \;
Ahora ec2-user
(y cualquier miembro futuro del grupo de apache
) puede añadir, eliminar y editar archivos en la raíz de documentos de Apache. Esto le permite añadir contenido, como un sitio web estático o una aplicación PHP.
nota
Un servidor web que ejecuta el protocolo HTTP no proporciona seguridad de transporte de los datos que envía o recibe. Cuando se conecta a un servidor HTTP utilizando un navegador web, la mayor parte de la información es visible a cualquier acceso no autorizado en la ruta de la red. Esta información incluye las URL que visita, el contenido de las páginas web que recibe y el contenido (incluidas las contraseñas) de cualquier formulario HTML.
La práctica recomendada para proteger el servidor web es instalar soporte para HTTPS (HTTP seguro). Este protocolo protege los datos con el cifrado SSL/TLS. Para obtener más información, consulte Tutorial: Configurar SSL/TLS con la AMI de Amazon Linux en la Guía del usuario deAmazon EC2.
Conecte el servidor web Apache con la instancia de base de datos.
A continuación, agregue contenido al servidor web Apache que se conecta a su instancia de base de datos de Amazon RDS.
Para agregar contenido al servidor web Apache que se conecta a su instancia de base de datos
-
Mientras está conectado a la instancia de EC2, cambie el directorio a
/var/www
y cree un subdirectorio nuevo denominadoinc
.cd /var/www mkdir inc cd inc
-
Cree un archivo en el directorio
inc
, denominadodbinfo.inc
y, a continuación, edite el archivo mediante nano (o a cualquier otro editor de su elección).>dbinfo.inc nano dbinfo.inc
-
Añada el siguiente contenido al archivo
dbinfo.inc
. Aquí,db_instance_endpoint
es su punto de conexión de instancia de base de datos, sin el puerto, para su instancia de base de datos.nota
Recomendamos colocar la información del nombre de usuario y la contraseña en una carpeta que no forme parte de la raíz del documento del servidor web. Al hacerlo, se reduce la posibilidad de que se exponga la información de seguridad.
Asegúrese de cambiar la
master password
a una contraseña adecuada en su aplicación.<?php define('DB_SERVER', '
db_instance_endpoint
'); define('DB_USERNAME', 'tutorial_user'); define('DB_PASSWORD', 'master password
'); define('DB_DATABASE', 'sample'); ?> -
Guarde y cierre el archivo
dbinfo.inc
. Si utiliza nano, guarde y cierre el archivo con Ctrl+S y Ctrl+X. -
Cambie el directorio a
/var/www/html
.cd /var/www/html
-
Cree un archivo en el directorio
html
, denominadoSamplePage.php
y, a continuación, edite el archivo mediante nano (o a cualquier otro editor de su elección).>SamplePage.php nano SamplePage.php
-
Añada el siguiente contenido al archivo
SamplePage.php
: -
Guarde y cierre el archivo
SamplePage.php
. -
Compruebe que el servidor web se conecta correctamente a su instancia de base de datos abriendo un navegador web y navegando a
http://
, por ejemplo:EC2 instance endpoint
/SamplePage.phphttp://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php
.
Puede utilizar SamplePage.php
para agregar datos a su instancia de base de datos. Los datos que añada se mostrarán en la página. Para verificar que los datos se insertaron en la tabla, puede instalar el cliente MySQL en la instancia de Amazon EC2. A continuación, se conectará a la instancia de base de datos y ejecutará una consulta en la tabla.
Para obtener información acerca de la instalación del cliente MySQL y la conexión a la instancia de base de datos, consulte Conexión a una instancia de base de datos que ejecuta el motor de base de datos de MySQL.
Para asegurarse de que su instancia de base de datos es lo más seguro posible, compruebe que los orígenes fuera de la VPC no se pueden conectar a su instancia de base de datos.
Una vez que haya terminado de probar su servidor web y su base de datos, debe eliminar la instancia de base de datos y la instancia Amazon EC2.
-
Para eliminar una instancia de base de datos, siga las instrucciones que se indican en Eliminación de una instancia de base de datos. No es necesario crear una instantánea final.
-
Para finalizar una instancia Amazon EC2, siga las instrucciones de Terminar su instancia en la Guía del usuario de Amazon EC2.