GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Apache 2?

Come posso installare Apache2, php, mysql e configurarlo con host virtuali e preferibilmente certificato Let's Encrypt SSL, e quindi procedere con l'installazione di WordPress su di esso?

Risposta accettata:

Presumo che tu abbia un'installazione Ubuntu in esecuzione. Questo è stato scritto pensando alla 16.04, ma dovrebbe funzionare anche con alcuni adattamenti su altre versioni.

In queste risposte, # denota una shell radice, mentre $ denota una normale shell utente.

example.org è usato come esempio (D'oh) in questa risposta e dovrebbe essere modificato per adattarsi alla tua installazione.

Installazione di Apache2, PHP, MariaDB e così via

$ sudo apt install apache2 libapache2-mod-php mariadb-server php-mysql

Questo installerà Apache2, PHP, MariaDB e alcune dipendenze, oltre ai collegamenti PHP per l'accesso a mysql.

A questo punto, dovresti essere in grado di accedere a http://example.org e vedere una pagina predefinita:

Configurazione di un host virtuale

I Vhost sono host virtuali, utilizzati per servire contenuti diversi per nomi di dominio diversi.

Inizia a modificare un nuovo file chiamato /etc/apache2/sites-available/01-example.org.conf nel tuo editor preferito:

$ sudo editor /etc/apache2/sites-available/01-example.org.conf 

Immettere la seguente configurazione:

<VirtualHost *:80>
        ServerName example.org
        ServerAlias www.example.org
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/example.org/
        ErrorLog ${APACHE_LOG_DIR}/example.org.error.log
        CustomLog ${APACHE_LOG_DIR}/example.org.access.log combined
</VirtualHost>

Innanzitutto, definiamo il ServerName primario. Questo è il dominio utilizzato per accedere al sito. È possibile definirne solo uno per vhost. Inoltre, definiamo un ServerAlias, nel caso qualcuno inserisca www.example.org nel proprio browser. Ciò garantisce che Apache risponda a entrambi i nomi. Entrambi i nomi devono puntare al tuo server, in DNS o in /etc/hosts per test locali.

È possibile specificare un numero qualsiasi di alias di server che non devono contenere parti di ServerName. Pertanto, ServerAlias example.com sarebbe valido.

Crea la nuova DocumentRoot

Ho inserito il nuovo documentroot in /var/www/html/example.org . Questa è una posizione che può essere servita da Apache in Ubuntu. Se, ad esempio, l'ho inserito in /srv/ , dovrei includere una stanza Directory per questo. Per ora, crea la webroot, riempila con alcuni contenuti e attiva la nuova configurazione:

$ sudo mkdir /var/www/html/example.org
$ echo "This is a test" | sudo tee /var/www/html/example.org/index.html
$ sudo a2ensite 01-example.org.conf
$ sudo service apache2 reload

Se ora visiti http://example.org, dovresti vedere l'output *Questo è un test”. Congratulazioni! Il tuo primo vhost è in esecuzione!

Installa Letencrypt e prendi i certificati

Per ricevere i certificati da Let's Encrypt, abbiamo bisogno di un client. Il pacchettoletsencrypt incluso con 16.04 è vecchio, quindi abbiamo bisogno di un ppa per questo.

$ echo "deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/01-certbot.list
$ sudo add-apt-key -k keyserver.ubuntu.com 8C47BE8E75BCA694
$ sudo apt update && sudo apt install certbot python3-certbot-apache 

Esegui certbot come root:

$ sudo certbot

Seleziona il dominio per il quale desideri ottenere un certificato e segui le istruzioni sullo schermo di certbot. Quando ti viene chiesto se desideri reindirizzare, seleziona reindirizzamento se desideri solo https e nessun reindirizzamento se desideri sia http che https. Oggi non c'è quasi nessun motivo per non reindirizzare.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

Prova a visitare nuovamente http://example.com:dovrebbe cambiare per mostrare che è sicuro.

Correlati:come migliorare la velocità di avvio in Ubuntu?

Congratulazioni, non hai configurato apache2 con un certificato TLS valido che garantisca la crittografia del traffico!

Installa WordPress

Il prossimo passo è installare alcune applicazioni. Ho scelto WordPress come esempio da installare.

Prima diventa root inserendo sudo -i . Quindi, cambia la directory nella tua webroot e scarica, decomprimi e cambia la proprietà per l'utente di Apache:

$ sudo -i
# cd /var/www/html/example.org/
# wget https://wordpress.org/latest.tar.gz
# tar -zxf latest.tar.gz && rm latest.tar.gz
# chown -R www-data.www-data wordpress/

Ora avrai un'istanza di WordPress su https://example.com/wordpress/ – andiamo lì.

La procedura guidata ti dice che hai bisogno di una tabella MySQL, di un utente e di una password. Facciamoli!

Per impostazione predefinita, Ubuntu utilizzerà l'autenticazione socket unix per MariaDB. Quindi, per accedere a MariaDB come root, devi usare

sudo mysql -u root

oppure esegui il comando in una shell di root (ad esempio sudo -i ). Questo ti consentirà di accedere senza inserire alcuna password

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.0.33-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wordpress_db`.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'passw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> exit

Inserisci il nome utente wordpress_user , nome database wordpress_db e password passw0rd nella configurazione di WordPress. Fondamentalmente è tutto; il resto riguarda il seguire le linee guida di installazione di WordPress.

Per aggiungere più vhost, inizia semplicemente da "Configurazione di un vhost".

Ulteriori letture

  • Moduli Apache:disabilitazione e abilitazione
  • Esecuzione di certbot da cron per rinnovare automaticamente i certificati
  • Guida per mod_rewrite, un modulo Apache di uso comune
  • Autorizzazioni file per /var/www/html
  • Guida per l'utente di Certbot

Ubuntu
  1. Come configurare e configurare ModSecurity su Apache

  2. Come installare Apache su CentOS 8

  3. Come installare Apache Maven su Ubuntu 18.04 e 16.04

  4. Come installare e configurare mysql 8 su Ubuntu 20.04

  5. Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04

Come installare Mod_Security Apache su Ubuntu 14.04

Come installare Apache su Linux Mint 19

Come installare Apache su Ubuntu 20.04 LTS

Come installare il server Apache e configurare host virtuali su Ubuntu 22.04

Come installare ModSecurity Apache su Ubuntu 20.04

Come installare Apache su Ubuntu 22.04