Tutorial: installare un LAMP server su AL2 023 - Amazon Linux 2023

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: installare un LAMP server su AL2 023

Le seguenti procedure ti aiutano a installare un server web Apache con PHP supporto MariaDB (un fork di SQL My sviluppato dalla comunità) sulla AL2 tua istanza 023 (a volte chiamata server web o stack). LAMP LAMP È possibile utilizzare questo server per ospitare un sito Web statico o distribuire un'applicazione dinamica PHP che legge e scrive informazioni su un database.

Importante

Queste procedure sono destinate all'uso con AL2 023. Se state cercando di configurare un server LAMP web su una distribuzione diversa, come Ubuntu o Red Hat Enterprise Linux, questo tutorial non funzionerà. Per Ubuntu, consulta la seguente documentazione della community di Ubuntu: ApacheMySQLPHP. Per altre distribuzioni, consulta la relativa documentazione specifica.

Passo 1: Preparare il LAMP server

Prerequisiti
  • Questo tutorial presuppone che tu abbia già lanciato una nuova istanza utilizzando AL2 023, con un DNS nome pubblico raggiungibile da Internet. Per ulteriori informazioni, consulta AL2023 su Amazon EC2. È inoltre necessario aver configurato il gruppo di sicurezza per consentire le SSH connessioni (porta 22), HTTP (porta 80) e HTTPS (porta 443). Per ulteriori informazioni su questi prerequisiti, consulta Autorizza il traffico in entrata per le tue istanze Linux nella Amazon User Guide. EC2

  • La seguente procedura installa l'ultima PHP versione disponibile su AL2 023, attualmente 8.1. Se prevedi di utilizzare PHP applicazioni diverse da quelle descritte in questo tutorial, dovresti verificarne la compatibilità con 8.1.

Per preparare il LAMP server
  1. Connettiti alla tua istanza. Per ulteriori informazioni, consulta Connessione a AL2 023 istanze.

  2. Per verificare che tutti i pacchetti software siano aggiornati, eseguire un aggiornamento rapido del software sull'istanza. Questo processo può richiedere alcuni minuti, ma è importante accertarsi che siano disponibili gli aggiornamenti della sicurezza e le correzioni dei bug più recenti.

    L'opzione -y installa gli aggiornamenti senza chiedere conferma. Se desideri esaminare gli aggiornamenti prima di installarli, puoi omettere questa opzione.

    [ec2-user ~]$ sudo dnf upgrade -y
  3. Installa le versioni più recenti del server web Apache e PHP i pacchetti per AL2 023.

    [ec2-user ~]$ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
  4. Installa i pacchetti software MariaDB. Utilizzare il comando dnf install per installare contemporaneamente più pacchetti software e tutte le dipendenze correlate.

    [ec2-user ~]$ sudo dnf install mariadb105-server

    È possibile visualizzare le versioni correnti di tali pacchetti utilizzando il comando seguente:

    [ec2-user ~]$ sudo dnf info package_name

    Esempio:

    [root@ip-172-31-25-170 ec2-user]# dnf info mariadb105 Last metadata expiration check: 0:00:16 ago on Tue Feb 14 21:35:13 2023. Installed Packages Name : mariadb105 Epoch : 3 Version : 10.5.16 Release : 1.amzn2023.0.6 Architecture : x86_64 Size : 18 M Source : mariadb105-10.5.16-1.amzn2023.0.6.src.rpm Repository : @System From repo : amazonlinux Summary : A very fast and robust SQL database server URL : http://mariadb.org License : GPLv2 and LGPLv2 Description : MariaDB is a community developed fork from MySQL - a multi-user, multi-threaded : SQL database server. It is a client/server implementation consisting of : a server daemon (mariadbd) and many different client programs and libraries. : The base package contains the standard MariaDB/MySQL client programs and : utilities.
  5. Avviare il server Web Apache.

    [ec2-user ~]$ sudo systemctl start httpd
  6. Utilizzare il comando systemctl per configurare il server Web Apache per l'avvio a ogni avvio del sistema.

    [ec2-user ~]$ sudo systemctl enable httpd

    Puoi verificare che httpd sia attivo eseguendo il seguente comando:

    [ec2-user ~]$ sudo systemctl is-enabled httpd
  7. Aggiungi una regola di sicurezza per consentire le connessioni in entrata HTTP (porta 80) alla tua istanza, se non l'hai già fatto. Per impostazione predefinita, una procedura guidata di avvio-Nil gruppo di sicurezza è stato creato per l'istanza durante il lancio. Se non hai aggiunto regole aggiuntive per il gruppo di sicurezza, questo gruppo contiene solo una singola regola per consentire SSH le connessioni.

    1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

    2. Nel riquadro di navigazione sinistro, scegli Istanze e seleziona la tua istanza.

    3. Nella scheda Security (Sicurezza) visualizzare le regole in entrata. Verrà visualizzata la regola seguente:

      Port range Protocol Source 22 tcp 0.0.0.0/0
      avvertimento

      Using 0.0.0.0/0 consente a tutti IPv4 gli indirizzi di accedere alla tua istanza utilizzandoSSH. L'opzione è accettabile per un breve periodo di tempo in un ambiente di test, ma non è sicura per gli ambienti di produzione. In produzione, potrai autorizzare solo un determinato indirizzo IP o un intervallo di indirizzi per accedere a un'istanza.

    4. Se non esiste una regola in entrata che consenta le connessioni HTTP (porta 80), ora devi aggiungere la regola add. Scegliere il collegamento per il gruppo di sicurezza. Utilizzando le procedure descritte nella sezione Autorizzazione del traffico in entrata per le istanze Linux, aggiungi una nuova regola di sicurezza in entrata con i seguenti valori:

      • Tipo: HTTP

      • Protocollo: TCP

      • Port Range (Intervallo porte): 80

      • Source (Origine): personalizzata

  8. Verificare il server Web. In un browser Web, digita l'DNSindirizzo pubblico (o l'indirizzo IP pubblico) dell'istanza. In assenza di contenuti in /var/www/html, dovresti visualizzare la pagina di test di Apache che mostra il messaggio "Funziona!".

    Puoi ottenere il pubblico DNS della tua istanza utilizzando la EC2 console Amazon (controlla la IPv4 DNS colonna Pubblico; se questa colonna è nascosta, scegli Preferenze (l'icona a forma di ingranaggio) e attiva Pubblico). IPv4 DNS

    Verifica che il gruppo di sicurezza dell'istanza contenga una regola per consentire il HTTP traffico sulla porta 80. Per ulteriori informazioni, consulta Aggiungere regole al gruppo di sicurezza.

    Importante

    Se non utilizzi Amazon Linux, potrebbe inoltre essere necessario anche configurare il firewall sulla tua istanza per consentire queste connessioni. Per ulteriori informazioni sulla modalità di configurazione del firewall, consulta la documentazione per la distribuzione specifica.

Apache httpd utilizza i file che sono tenuti in una directory chiamata root del documento di Apache. La root del documento di Apache Amazon Linux è /var/www/html, che per impostazione predefinita è di proprietà della root.

Per permettere all'account ec2-user di manipolare file nella directory, è necessario modificare la proprietà e le autorizzazioni della directory. Sono disponibili molti modi per completare questa attività. In questo tutorial, aggiungi 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
  1. Aggiungere l'utente (in questo caso ec2-user) al gruppo apache.

    [ec2-user ~]$ sudo usermod -a -G apache ec2-user
  2. Uscire e ripetere l'accesso per scegliere il nuovo gruppo, quindi verificare l'appartenenza.

    1. Uscire (utilizzare il comando exit o chiudere la finestra terminale):

      [ec2-user ~]$ exit
    2. Per verificare l'appartenenza al gruppo apache, riconnettersi all'istanza, quindi eseguire il seguente comando:

      [ec2-user ~]$ groups ec2-user adm wheel apache systemd-journal
  3. Modificare la proprietà del gruppo di /var/www e dei suoi contenuti al gruppo apache.

    [ec2-user ~]$ sudo chown -R ec2-user:apache /var/www
  4. Per aggiungere le autorizzazioni di scrittura di gruppo e impostare l'ID di gruppo nelle sottodirectory future, modificare le autorizzazioni di directory di /var/www e delle relative sottodirectory.

    [ec2-user ~]$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
  5. Per aggiungere le autorizzazioni di scrittura di gruppo, modificare in modo ricorsivo le autorizzazioni del file di /var/www e delle relative sottodirectory:

    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

Ora ec2-user (e tutti i futuri membri del apache gruppo) possono aggiungere, eliminare e modificare file nella radice del documento Apache, consentendoti di aggiungere contenuti, come un sito Web statico o un'PHPapplicazione.

Per proteggere il server Web (facoltativo)

Un server Web che esegue il HTTP protocollo non fornisce alcuna sicurezza di trasporto per i dati che invia o riceve. Quando ti connetti a un HTTP server utilizzando un browser Web, URLs ciò che visiti, il contenuto delle pagine Web che ricevi e il contenuto (comprese le password) di tutti i HTML moduli che invii sono tutti visibili agli intercettatori in qualsiasi punto del percorso di rete. La procedura migliore per proteggere il server Web consiste nell'installare il supporto per HTTPS (HTTPSecure), che protegge i dati con la crittografia/. SSL TLS

Per informazioni sull'attivazione HTTPS sul server, consultaTutorial: configurare SSL/TLS su AL2023.

Fase 2: Testa il tuo LAMP server

Se il server è installato e in esecuzione e le autorizzazioni relative ai file sono impostate correttamente, l'ec2-useraccount dovrebbe essere in grado di creare un PHP file nella /var/www/html directory disponibile su Internet.

Per testare il server LAMP
  1. Crea un PHP file nella radice del documento Apache.

    [ec2-user ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

    Se si verifica un errore "Permission denied" (Autorizzazione negata) quando si tenta di eseguire questo comando, provare a uscire e accedere nuovamente per ottenere le autorizzazioni di gruppo appropriate configurate in Per impostare le autorizzazioni dei file.

  2. In un browser web, digitate URL il file che avete appena creato. Questo URL è l'DNSindirizzo pubblico dell'istanza seguito da una barra e dal nome del file. Per esempio:

    http://my.public.dns.amazonaws.com/phpinfo.php

    Dovresti vedere la pagina delle PHP informazioni:

    Il test del LAMP server mostra la pagina PHP delle informazioni.

    Se non viene visualizzata questa pagina, verifica che il file /var/www/html/phpinfo.php sia stato creato correttamente nella fase precedente. È anche possibile verificare che tutti i pacchetti richiesti siano stati installati con il seguente comando.

    [ec2-user ~]$ sudo dnf list installed httpd mariadb-server php-mysqlnd

    Se uno dei pacchetti richiesti non è elencato nell'output, installarlo utilizzando il comando sudo yum install package.

  3. Eliminare il file phpinfo.php. Sebbene questa informazione possa essere utile, non deve essere divulgata su Internet per ragioni di sicurezza.

    [ec2-user ~]$ rm /var/www/html/phpinfo.php

Ora dovresti avere un server LAMP web completamente funzionante. Se aggiungete contenuti al documento Apache root su/var/www/html, dovreste essere in grado di visualizzarli all'DNSindirizzo pubblico della vostra istanza.

Fase 3: proteggere il server di database

L'installazione predefinita del server MariaDB ha diverse caratteristiche che sono ottime per test e sviluppo, ma dovrebbero essere disabilitate o rimosse per i server di produzione. Il comando mysql_secure_installation guida attraverso il processo di impostazione di una password root e la rimozione delle caratteristiche non protette dall'installazione. Anche se non hai intenzione di utilizzare il server MariaDB, consigliamo di eseguire questa procedura.

Per proteggere il server MariaDB
  1. Avviare il server MariaDB.

    [ec2-user ~]$ sudo systemctl start mariadb
  2. Esegui mysql_secure_installation.

    [ec2-user ~]$ sudo mysql_secure_installation
    1. Quando richiesto, digitare una password per l'account root.

      1. Digitare la password root corrente. Per impostazione predefinita, l'account root non ha una password configurata. Premere Invio.

      2. Digitare Y per impostare una password e digitare una password sicura due volte. Per ulteriori informazioni sulla creazione di una password sicura, consulta https://identitysafe.norton.com/password-generator/. Assicurarsi di conservare questa password in un posto sicuro.

        L'impostazione di una password root per MariaDB è solo la misura di base per la protezione del database. Quando si crea o si installa un'applicazione basata su un database, normalmente si crea un utente del servizio di database per tale applicazione per evitare di usare l'account root per ragioni diverse dall'amministrazione del database.

    2. Digitare Y per rimuovere gli account utente anonimi.

    3. Digitare Y per disabilitare l'accesso root in remoto.

    4. Digitare Y per rimuovere il database di test.

    5. Digitare Y per ricaricare le tabelle dei privilegi e salvare le modifiche.

  3. (Facoltativo) Se non si ha intenzione di utilizzare immediatamente il server MariaDB, interromperlo. È possibile riavviarlo quando è di nuovo necessario.

    [ec2-user ~]$ sudo systemctl stop mariadb
  4. (Facoltativo) Se si desidera che il server MariaDB si avvii a ogni avvio, digitare il seguente comando.

    [ec2-user ~]$ sudo systemctl enable mariadb

Fase 4: (Facoltativo) Installazione phpMyAdmin

phpMyAdminè uno strumento di gestione dei database basato sul Web che puoi utilizzare per visualizzare e modificare i miei SQL database sulla tua EC2 istanza. Segui le fasi seguenti per installare e configurare phpMyAdmin sull'istanza Amazon Linux.

Importante

Si sconsiglia di phpMyAdmin utilizzarlo per accedere a un LAMP server a meno che non sia stato abilitatoSSL/TLSin Apache; in caso contrario, la password dell'amministratore del database e altri dati vengono trasmessi in modo non sicuro su Internet. Per i consigli sulla sicurezza forniti dagli sviluppatori, consulta Proteggere l'installazione. phpMyAdmin Per informazioni generali sulla protezione di un server Web su un'EC2istanza, consulta. Tutorial: configurare SSL/TLS su AL2023

Per installare phpMyAdmin
  1. Installare le dipendenze richieste.

    [ec2-user ~]$ sudo dnf install php-mbstring php-xml -y
  2. Riavviare Apache.

    [ec2-user ~]$ sudo systemctl restart httpd
  3. Riavviare php-fpm.

    [ec2-user ~]$ sudo systemctl restart php-fpm
  4. Andare alla root del documento di Apache in /var/www/html.

    [ec2-user ~]$ cd /var/www/html
  5. Seleziona un pacchetto sorgente per l'ultima phpMyAdmin versione da https://www.phpmyadmin.net/downloads. Per scaricare il file direttamente nell'istanza, copiare il link e incollarlo in un comando wget, come in questo esempio:

    [ec2-user html]$ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
  6. Creare una cartella phpMyAdmin in cui estrarre il pacchetto con il comando seguente.

    [ec2-user html]$ mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
  7. Elimina le foto o i video phpMyAdmin-latest-all-languages.tar.gz tarball.

    [ec2-user html]$ rm phpMyAdmin-latest-all-languages.tar.gz
  8. (Facoltativo) Se il SQL server My non è in esecuzione, avvialo ora.

    [ec2-user ~]$ sudo systemctl start mariadb
  9. In un browser Web, digita la URL data dell' phpMyAdmin installazione. Questo URL è l'DNSindirizzo pubblico (o l'indirizzo IP pubblico) dell'istanza seguito da una barra e dal nome della directory di installazione. Per esempio:

    http://my.public.dns.amazonaws.com/phpMyAdmin

    Dovresti vedere la pagina di phpMyAdmin accesso:

    Il risultato della digitazione URL dell' phpMyAdmin installazione è la schermata di phpMyAdmin accesso.
  10. Accedi all' phpMyAdmin installazione con il nome root utente e la mia password SQL root che hai creato in precedenza.

    L'installazione deve essere configurata prima di essere messa in funzione. Si consiglia di iniziare con la creazione manuale del file di configurazione, come segue:

    1. Per iniziare con un file di configurazione minimo, utilizza l'editor di testo preferito per creare un nuovo file e quindi copia al suo interno il contenuto di config.sample.inc.php.

    2. Salva il file con lo stesso config.inc.php nome della phpMyAdmin cartella che contieneindex.php.

    3. Per qualsiasi configurazione aggiuntiva, fate riferimento alle istruzioni successive alla creazione del file nella sezione Uso dello script di phpMyAdmin installazione delle istruzioni di installazione.

    Per informazioni sull'utilizzo phpMyAdmin, consultate la Guida per l'phpMyAdmin utente.

Risoluzione dei problemi

Questa sezione offre suggerimenti per risolvere i problemi più comuni che potrebbero verificarsi durante la configurazione di un nuovo LAMP server.

Non riesco a connettermi al mio server utilizzando un browser Web

Esegui i controlli seguenti per verificare se il tuo server Web Apache è in esecuzione e accessibile.

  • Il server Web è in esecuzione?

    Puoi verificare che httpd sia attivo eseguendo il seguente comando:

    [ec2-user ~]$ sudo systemctl is-enabled httpd

    Se il processo httpd non è in esecuzione, ripeti le fasi descritte in Per preparare il LAMP server.

  • Il firewall è configurato correttamente?

    Verifica che il gruppo di sicurezza per l'istanza contenga una regola per consentire HTTP il traffico sulla porta 80. Per ulteriori informazioni, consulta Aggiungere regole al gruppo di sicurezza.

Non riesco a connettermi al mio server utilizzando HTTPS

Esegui i seguenti controlli per vedere se il tuo server web Apache è configurato per il supportoHTTPS.

  • Il server Web è configurato correttamente?

    Dopo aver installato Apache, il server è configurato per HTTP il traffico. Per supportareHTTPS, TLS abilitalo sul server e installa un SSL certificato. Per informazioni, consultare Tutorial: configurare SSL/TLS su AL2023.

  • Il firewall è configurato correttamente?

    Verifica che il gruppo di sicurezza per l'istanza contenga una regola per consentire HTTPS il traffico sulla porta 443. Per ulteriori informazioni, consulta Autorizzare il traffico in entrata per le istanze Linux.

Argomenti correlati

Per ulteriori informazioni sul trasferimento di file sull'istanza o sull'installazione di un WordPress blog sul server Web, consulta la seguente documentazione:

Per ulteriori informazioni sui comandi e sul software utilizzati in questo tutorial, consulta le pagine Web seguenti:

Per ulteriori informazioni sulla registrazione di un nome di dominio per il server Web o sul trasferimento di un nome di dominio esistente su questo host, consulta l'articolo relativo alla creazione e alla migrazione di domini e sottodomini ad Amazon Route 53 nella Guida per lo sviluppatore di Amazon Route 53.