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