Come posso installare manualmente uno stack LAMP su un’istanza Lightsail?

7 minuti di lettura
0

Desidero installare manualmente uno stack Lamp (Linux, Apache, MySQL, PHP) su un’istanza Amazon Lightsail.

Risoluzione

Nota: la seguente risoluzione vale per la maggior parte delle principali distribuzioni Linux disponibili con l'opzione Solo OS in Amazon Lightsail. Queste includono Ubuntu 20.04, Ubuntu 18.04, Debian 10 e 9 e CentOS 8 e 7.

Per informazioni su come installare uno stack LAMP su Amazon Linux 2, consulta Install LAMP web server on Amazon Linux 2.

Per informazioni su come installare uno stack LAMP su Amazon Linux, consulta Install LAMP web server on Amazon Linux.

Installazione di Apache

**Ubuntu 20.04 e 18.04, Debian 9 e 10 **

Esegui i seguenti comandi per installare il server Web Apache:

sudo apt update -y
sudo apt install apache2 -y

CentOS 7 e CentOS 8

Esegui i seguenti comandi per installare il server Web Apache:

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

Installazione di PHP

Nota: la seguente procedura consente di installare l'ultima versione del pacchetto, PHP 8.0. Per impostazione predefinita, PHP 8.0 non è presente nella maggior parte delle distribuzioni. Per installare PHP 8.0, attiva i repository di terze parti.

Ubuntu 20.04 e Ubuntu 18.04

Per installare PHP, esegui i seguenti comandi:

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 e Debian 9

Per installare PHP, esegui i seguenti comandi:

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

Per installare PHP, esegui i seguenti comandi:

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

Per installare PHP, esegui i seguenti comandi:

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

Attivazione del modulo PHP-FPM

Il modulo PHP-FPM fornisce un sito Web più veloce. Sebbene PHP-FPM sia opzionale, è consigliabile utilizzarlo per la maggior parte delle attività di creazione e gestione di siti Web.

Ubuntu 20.04 e 18.04, Debian 10 e 9

Esegui i seguenti comandi per installare 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. Aggiorna la configurazione di Apache per utilizzare mpm\ _event\ _module invece di 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. Esegui il backup del file di configurazione PHP corrente in Apache, quindi creane uno nuovo con il seguente contenuto:

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
  1. Riavvia Apache e PHP-FPM per rendere effettive le modifiche:
    sudo systemctl restart php-fpm
    sudo systemctl restart httpd

CentOS 8

  1. Aggiorna il file di configurazione PHP-FPM in modo che il servizio ascolti la porta anziché il 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. Esegui il backup del file di configurazione PHP corrente in Apache, quindi creane uno nuovo con il seguente contenuto:

    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. Esegui il seguente comando sul server per consentire ad Apache di effettuare connessioni in uscita:

    sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
  4. Riavvia Apache e PHP-FPM per rendere effettive le modifiche:

    sudo systemctl restart php-fpm
    sudo systemctl restart httpd

Installazione di MariaDB

Installa la versione 10.5 di MariaDB con il repository MariaDB.

  1. Esegui il seguente comando per aggiungere il repository yum di MariaDB (per tutte le distribuzioni Linux):

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

    Ubuntu 20.04, Ubuntu 18.04, Debian 10 e Debian 9

    sudo apt install mariadb-server -y

    CentOS 8 e CentOS 7

    sudo yum install MariaDB-server MariaDB-client -y
    sudo systemctl start mariadb.service
    sudo systemctl enable mariadb.service
  3. Esegui il seguente comando per completare l'installazione sicura di MariaDB e impostare la password root:

    sudo mysql_secure_installation
  4. Quando richiesto, imposta una password per l'account root:
    Inserisci la password root corrente. Per impostazione predefinita, l'account root non ha una password impostata.
    Premi Invio.
    Premi N per passare all'autenticazione unix\ _socket.
    Premi Y per impostare una password, quindi inserisci una password sicura due volte. Conserva questa password in un luogo sicuro.
    Premi Y per rimuovere gli account utente anonimi.
    Premi Y per disattivare l'accesso root remoto.
    Premi Y per rimuovere il database di prova.
    Premi Y per ricaricare le tabelle delle autorizzazioni e salvare le modifiche.

Aggiungi le autorizzazioni per le cartelle del sito Web all'utente predefinito

Come best practice, per trasferire l'istanza del sito Web con SCP/SFTP, imposta le autorizzazioni per consentire all'altro utente di accedere alla directory /var/www. Per istruzioni su come impostare le autorizzazioni, consulta la sezione To set file permissions in Step 1: Prepare the LAMP server. I passaggi seguenti forniscono le autorizzazioni richieste per l'utente predefinito in ogni distribuzione Linux. È possibile aggiungere l'utente al gruppo Apache e quindi trasferire la proprietà della directory all'utente e al gruppo Apache predefiniti.

Completa i seguenti passaggi:

Ubuntu 20.04 e 18.04

  1. Esegui il comando seguente:

    sudo usermod -a -G www-data ubuntu
  2. Esci e poi accedi nuovamente per selezionare il nuovo gruppo. Quindi, esegui il comando group per verificare l’appartenenza al gruppo:

    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 e 9

  1. Esegui il comando seguente:

    sudo usermod -a -G www-data admin
  2. Esci e poi accedi nuovamente per selezionare il nuovo gruppo. Quindi, esegui il comando group per verificare l’appartenenza al gruppo:

    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 e 7

  1. Esegui il comando seguente:

    sudo usermod -a -G apache centos
  2. Esci e poi accedi nuovamente per selezionare il nuovo gruppo. Esegui il comando group per verificare l’appartenenza al gruppo:

    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 {} \;

Visualizzazione della pagina Web predefinita

Accedi all'indirizzo IP pubblico della tua istanza su un browser Web per visualizzare la pagina Web predefinita. Il sito Web è ora pronto per la personalizzazione.

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa