Istallazione lamp su centos 8

Installare e abilitare FirewallD

Firewalld è installato di default su CentOS 8, ma se non è installato sul tuo sistema, puoi installare il pacchetto digitando:

sudo dnf install firewalld

Il servizio Firewalld è disabilitato per impostazione predefinita. Puoi controllare lo stato del firewall con:

sudo firewall-cmd --state

Se hai appena installato o non hai mai attivato prima, il comando stamperà not running. Altrimenti, vedrai running.

Per avviare il servizio FirewallD e abilitarlo al tipo di avvio:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Passaggio 1: installare Apache Web Server

1. Innanzitutto, inizieremo installando il web server Apache, è un ottimo server web che alimenta milioni di siti Web su Internet. Per completare l’installazione, utilizzare il seguente comando:

# yum install wget

# yum install httpd

2. Al termine dell’installazione, abilitare Apache (per l’avvio automatico all’avvio del sistema), avviare il server Web e verificare lo stato utilizzando i comandi seguenti.

# systemctl enable httpd
# systemctl start httpd
# systemctl status httpd

3. Per rendere le nostre pagine disponibili al pubblico, dovremo modificare le nostre regole del firewall per consentire le richieste HTTP sul nostro server Web utilizzando i seguenti comandi.

# firewall-cmd --permanent --zone=public --add-service=http 
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload
# sudo dnf install mod_ssl

4. Verificare che il server Web sia in esecuzione e accessibile accedendo a http://localhost o all’indirizzo IP del server. Dovresti vedere una pagina Con scritto apache http server.

Passaggio 2: installa PHP Programing Language

5. Il nostro prossimo passo è installare PHP – linguaggio di programmazione utilizzato su molti siti Web come WordPress e Joomla, grazie al suo comportamento estremamente potente e flessibile.

dnf module list php

dnf module enable php:7.3



Per installare PHP sul tuo centos 8 usa il comando qui sotto.

# yum install php php-mysqlnd php-pdo php-gd php-mbstring php-json

6. Ora riavvia il tuo server web in modo che Apache sappia che servirà anche le richieste PHP.

# systemctl restart httpd

7. Metti alla prova il tuo PHP, creando un semplice file info.php con un phinfo () al suo interno. Il file deve essere inserito nella directory principale per il tuo server web, che è / var / www / html.

Per creare il file utilizzare:

# vi /var/www/html/info.php

inserire e salvare

<?php phpinfo(); ?>

Ora di nuovo, accedi a http: //localhost/info.php o http://server-ip-address/info.php. Dovresti vedere una pagina simile a questa.

Passaggio 3: installare il server MariaDB

8. MariaDB è un server di database popolare, utilizzato in molti ambienti. L’installazione è semplice e richiede solo pochi passaggi, come mostrato.

# yum install mariadb-server mariadb

9. Al termine dell’installazione, abilitare MariaDB (per l’avvio automatico all’avvio del sistema), avviare il server Web e verificare lo stato utilizzando i comandi seguenti.

# systemctl enable mariadb
# systemctl start mariadb
# systemctl status mariadb

10. Infine, vorrai proteggere l’installazione di MariaDB eseguendo il comando seguente.

# mysql_secure_installation

Ti verranno poste alcune domande diverse sull’installazione di MariaDB e su come desideri proteggerla. È possibile modificare la password dell’utente root del database, disabilitare il database di test, disabilitare gli utenti anonimi e disabilitare l’accesso root da remoto.

Creare la struttura delle directory Virtual host

DocumentRoot è la directory in cui i file del sito Web per un nome di dominio vengono archiviati e offerti in risposta alle richieste. È possibile impostare la root del documento in qualsiasi posizione desiderata, in questo esempio useremo la seguente struttura di directory:

/var/www/
├── example.com
│   └── public_html
├── example-1.com
│   └── public_html
├── example-2.com
│   └── public_html

Stiamo creando una directory separata per ogni dominio che vogliamo ospitare sul nostro server all’interno della directory var/www. All’interno di ciascuna di queste directory, creeremo una directory public_html che memorizzerà i file del sito Web del dominio.

Crea la directory principale per il dominio example.com usando il comando mkdir:

sudo mkdir -p /var/www/example.com/public_html

A scopo di test creeremo un file index.html all’interno della directory root del documento di dominio. Apri il tuo editor e crea un file HTML con i seguenti contenuti:

sudo vi /var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

Tutti i comandi vengono eseguiti come utente sudo, quindi i file e le directory appena creati sono di proprietà dell’utente root. Per assicurarsi che non vi siano problemi di autorizzazione, modificare la proprietà della directory principale del documento di dominio per l’utente apache:

sudo chown -R apache: /var/www/example.com

Creare il file Virtual Host

Esistono alcuni modi per configurare un host virtuale. È possibile aggiungere tutte le direttive dell’host virtuale in un singolo file o creare un nuovo file di configurazione per ciascuna direttiva dell’host virtuale.

Per impostazione predefinita, Apache è configurato per caricare tutti i file di configurazione che terminano con .conf dalla directory /etc/httpd/conf.d/.

Per creare un host virtuale per un sito Web specifico, aprire l’editor preferito e creare il seguente file di configurazione di base dell’host virtuale:

sudo vi /etc/httpd/conf.d/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>

ServerName: Il dominio che deve corrispondere per questa configurazione dell’host virtuale. Questo dovrebbe essere il tuo nome di dominio.

ServerAlias: Tutti gli altri domini che devono corrispondere anche per questo host virtuale, come il sottodominio

www.DocumentRoot: La directory da cui Apache servirà i file di dominio.

-Indexes: Impedisce gli elenchi di directory dal browser.

FollowSymLinks: Questa opzione indica al server Web di seguire i collegamenti simbolici.

AllowOverride: Specifica quali direttive dichiarate nel file

.htaccess possono sovrascrivere le direttive di configurazione.

ErrorLog, CustomLog: Specifica il percorso per i file di registro.

Modifica il file in base alle tue esigenze e salvalo.

È importante che il nome del file di configurazione termini .conf. È possibile assegnare un nome al file di configurazione come desiderato, ma è consigliabile utilizzare il nome di dominio come nome del file di configurazione dell’host virtuale.

Testare la sintassi del file di configurazione con:

sudo apachectl configtest

Se non ci sono errori vedrai il seguente output:

Syntax OK

Per attivare un host virtuale appena creato, riavvia il servizio Apache con:

sudo systemctl restart httpd

Verifica che tutto funzioni come previsto, aprendo http://example.com.

Installa Certbot

Esegui questi comandi dalla riga di comando sul computer per installare Certbot.

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto
sudo /usr/local/bin/certbot-auto --apache -d example.com -d www.example.com

Istallazione phpmyadmin

dnf install php php-pdo php-pecl-zip php-json php-mbstring php-mysqlnd php-json php-mbstring php-dom php-zip

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VER="$(echo $DATA | cut -d ' ' -f 1)"

curl -o phpMyAdmin-${VER}-all-languages.tar.gz https://files.phpmyadmin.net/phpMyAdmin/${VER}/phpMyAdmin-${VER}-all-languages.tar.gz

tar xvf phpMyAdmin-${VER}-all-languages.tar.gz
rm phpMyAdmin-*.tar.g
sudo mv phpMyAdmin-*/ /usr/share/phpmyadmin
sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown -R apache:apache /var/lib/phpmyadmin
sudo mkdir /etc/phpmyadmin/
sudo cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php
sudo vi /usr/share/phpmyadmin/config.inc.php
Inserire
$cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i'; 
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
sudo vi /etc/httpd/conf.d/phpmyadmin.conf
Inserire
# Apache configuration for phpMyAdmin
Alias /phpMyAdmin /usr/share/phpmyadmin/
Alias /phpmyadmin /usr/share/phpmyadmin/
 
<Directory /usr/share/phpmyadmin/>
   AddDefaultCharset UTF-8
 
   <IfModule mod_authz_core.c>
     # Apache 2.4
     Require all granted
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

sudo apachectl configtest
Syntax OK
sudo systemctl restart httpd

permessi seelinux
sudo semanage fcontext -a -t httpd_sys_content_t "/usr/share/phpmyadmin(/.*)?"
sudo restorecon -Rv /usr/share/phpmyadmin

Lastly in this step, change permissions and change file SELinux security context:

# chown -R apache:apache /var/www/wordpress
# chcon -t httpd_sys_rw_content_t /var/www/wordpress -R
Torna su