Installazione di un server Web nell'istanza EC2
Installa un server Web in un'istanza EC2 creata in Avvio di un’istanza EC2 per la connessione all’istanza database. Il server Web si connette all'istanza database Amazon RDS creata in Creazione di un'istanza database Amazon RDS.
Installazione di un server Web Apache con PHP e MariaDB
Esegui la connessione all'istanza EC2 e installa il server Web Apache.
Per effettuare la connessione all'istanza EC2 e installare il server Web Apache con PHP.
Esegui la connessione all’istanza EC2 creata in precedenza seguendo la procedura riportata in Connessione all’istanza di Linux nella Guida per l’utente per di Amazon EC2.
Ti consigliamo di connetterti all'istanza EC2 tramite SSH. Se l'utilità client SSH è installata su Windows, Linux o Mac, puoi connetterti all'istanza utilizzando il comando nel seguente formato:
ssh -ilocation_of_pem_fileec2-user@ec2-instance-public-dns-nameAd esempio, supponi che
ec2-database-connect-key-pair.pemsia archiviato in/dir1su Linux e che il DNS IPv4 pubblico per l'istanza EC2 siaec2-12-345-678-90.compute-1.amazonaws.com. Il comando SSH sarà simile al seguente:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.comOttieni le ultime correzioni di bug e gli aggiornamenti di sicurezza aggiornando il software sulla tua istanza EC2. A questo scopo, eseguire il comando seguente.
Nota
L'opzione
-yinstalla gli aggiornamenti senza chiedere conferma. Per esaminare gli aggiornamenti prima di installarli, omettere questa opzione.sudo dnf update -y-
Al completamento degli aggiornamenti, installa il server Web Apache, PHP e il software MariaDB utilizzando i comandi seguenti. Con questo comando vengono installati contemporaneamente più pacchetti software e dipendenze correlate.
Se si verifica un errore, è possibile che l'istanza non sia stata lanciata con un'AMI Amazon Linux 2023. Puoi invece utilizzare l'AMI Amazon Linux 2. È possibile visualizzare la versione di Amazon Linux con il comando seguente.
cat /etc/system-releasePer ulteriori informazioni, consulta la pagina relativa all'aggiornamento del software dell'istanza.
Avviare il server Web con il comando visualizzato di seguito.
sudo systemctl start httpdÈ possibile verificare che il server Web sia installato e avviato correttamente. A tale scopo, immettere il nome DNS (Domain Name System) pubblico dell'istanza EC2 nella barra degli indirizzi di un browser Web, ad esempio:
http://ec2-42-8-168-21.us-west-1.compute.amazonaws.com. Se il server Web è in esecuzione, verrà visualizzata la pagina di test di Apache.Se la pagina di test Apache non viene visualizzata, controllare le regole in entrata per il gruppo di sicurezza VPC creato in Tutorial: Creazione di un Amazon VPC da utilizzare con un'istanza database (solo IPv4). Assicurati che le regole in entrata ne includano una che consenta l'accesso HTTP (porta 80) per l'indirizzo IP utilizzato per connettersi al server Web.
Nota
La pagina di test di Apache viene visualizzata solo quando la directory principale dei documenti è vuota,
/var/www/html. Dopo aver aggiunto contenuti alla directory root dei documenti, i contenuti vengono visualizzati all'indirizzo DNS pubblico dell'istanza EC2. Prima di questo punto, vengono visualizzati nella pagina di test di Apache.Configurare il server Web affinché si avvii a ogni avvio del sistema tramite il comando
systemctl.sudo systemctl enable httpd
Per permettere a ec2-user di gestire file nella directory principale predefinita del server Web Apache, è necessario modificare la proprietà e le autorizzazioni della directory /var/www. Sono disponibili molti modi per completare questa attività. In questo tutorial, aggiungi l'utente ec2-user al gruppo apache per assegnare la proprietà del gruppo apache della directory /var/www e assegnare autorizzazioni di scrittura al gruppo.
Per impostare le autorizzazioni dei file sul server Web Apache
Aggiungere l'utente
ec2-useral gruppoapache.sudo usermod -a -G apache ec2-userPer aggiornare le autorizzazioni e includere il nuovo gruppo
apache, eseguire la disconnessione.exitEffettuare nuovamente l'accesso e verificare che il gruppo
apacheesista mediante il comandogroups.groupsL'output avrà un aspetto simile al seguente:
ec2-user adm wheel apache systemd-journalCambiare la proprietà del gruppo della directory
/var/wwwe dei suoi contenuti sul gruppoapache.sudo chown -R ec2-user:apache /var/wwwCambiare le autorizzazioni della directory
/var/wwwe delle sue sottodirectory per aggiungere le autorizzazioni di scrittura di gruppo e impostare l'ID di gruppo per le sottodirectory create in futuro.sudo chmod 2775 /var/www find /var/www -type d -exec sudo chmod 2775 {} \;Cambiare le autorizzazioni in modo ricorsivo per i file nella directory
/var/wwwe nelle sue sottodirectory per aggiungere le autorizzazioni di scrittura di gruppo.find /var/www -type f -exec sudo chmod 0664 {} \;
Ora, ec2-user (e qualsiasi membro futuro del gruppo apache) può aggiungere, eliminare e modificare i file nella root del documento di Apache. Questo consente di aggiungere contenuti, ad esempio un sito Web statico o un'applicazione PHP.
Nota
Un server Web che esegue il protocollo HTTP non offre alcuna sicurezza di trasporto per i dati inviati e ricevuti. Quando ti connetti a un server HTTP tramite un browser Web, la molte informazioni sono visibili a persone non autorizzate in qualsiasi punto del percorso di rete. Queste informazioni includono gli URL visitati, il contenuto delle pagine Web ricevute e i contenuti (incluse le password) di eventuali moduli HTML.
La best practice per la protezione del tuo server Web prevede l'installazione del supporto per HTTPS (HTTP Secure). Questo protocollo protegge i dati con la crittografia SSL/TLS. Per ulteriori informazioni, consulta Esercitazione: Configurare SSL/TLS con l'AMI di Amazon Linux nella Guida per l’utente di Amazon EC2 .
Connessione del server web Apache all'istanza
Successivamente, aggiungere contenuti al server Web Apache che effettua la connessione all'istanza database Amazon RDS.
Per aggiungere contenuti al server Web Apache che effettua la connessione all'istanza database.
-
Mentre è ancora in corso la connessione all'istanza EC2, modificare la directory in
/var/wwwe creare una nuova sottodirectory denominatainc.cd /var/www mkdir inc cd inc -
Creare un nuovo file nella directory
incdenominatodbinfo.ince poi modificarlo con nano (o un altro editor a scelta).>dbinfo.inc nano dbinfo.inc -
Aggiungi i seguenti contenuti al file
dbinfo.inc. Qui,db_instance_endpointè l'endpoint dell'istanza DB, senza la porta, per l'istanza database.Nota
Si consiglia di inserire le informazioni relative al nome utente e alla password in una cartella che non fa parte della directory principale del documento per il server Web. In questo modo si riduce la possibilità che le informazioni di sicurezza vengano esposte.
Assicurati di modificare
master passwordin una password adatta per la tua applicazione.<?php define('DB_SERVER', 'db_instance_endpoint'); define('DB_USERNAME', 'tutorial_user'); define('DB_PASSWORD', 'master password'); define('DB_DATABASE', 'sample'); ?> -
Salvare e chiudere il file
dbinfo.inc. Se stai usando nano, salva e chiudi il file usando Ctrl+S e Ctrl+X. -
Cambiare la directory in
/var/www/html.cd /var/www/html -
Creare un nuovo file nella directory
htmldenominatoSamplePage.phpe poi modificarlo con nano (o un altro editor a scelta).>SamplePage.php nano SamplePage.php -
Aggiungere i seguenti contenuti al file
SamplePage.php: -
Salvare e chiudere il file
SamplePage.php. -
Verificare che il server Web effettui correttamente la connessione all'istanza aprendo un browser web e navigando fino a
http://, ad esempio:EC2 instance endpoint/SamplePage.phphttp://ec2-12-345-67-890.us-west-2.compute.amazonaws.com/SamplePage.php.
È possibile utilizzare SamplePage.php per aggiungere dati all'istanza. I dati aggiunti verranno visualizzati nella pagina. Per verificare che i dati siano stati inseriti nella tabella, installa il client MySQL nell'istanza Amazon EC2. Esegui quindi la connessione all'istanza database ed esegui la query sulla tabella.
Per informazioni sull’istallazione di un client SQL e la connessione a un'istanza database Oracle, consulta Connessione all’istanza database MySQL.
Per assicurarsi che l’istanza sia il più possibile sicura, verificare che le fonti esterne al VPC non possano connettersi all’istanza.
Dopo aver terminato il test del server Web e del database, è necessario eliminare l' il cluster DB e l'istanza Amazon EC2.
-
Per eliminare un’istanza database, segui le istruzioni riportate in Eliminazione di un'istanza database. Non è necessario creare uno snapshot finale.
-
Per terminare un'istanza Amazon EC2, segui le istruzioni riportate in Termina istanza nella Guida per l'utente di Amazon EC2.