WordPress è un sistema di gestione dei contenuti gratuito e open source scritto in PHP e abbinato a un database MySQL o MariaDB. WordPress è uno dei CMS più popolari oggi disponibili.
WordPress.com è una piattaforma SaaS (Software-as-a-Service) ospitata che ti consente di creare un sito Web utilizzando i blocchi predefiniti di WordPress. Ti costerà ospitare il tuo sito web sul sito WordPress.
Il software WordPress è gratuito e Open Source ma per averlo installato e funzionante è necessario configurare l'hosting. In questa guida andremo con questa opzione, configurando WordPress in Ubuntu 20.04.
Prerequisiti
Per seguire questa guida, abbiamo bisogno di quanto segue:
- Server Ubuntu 20.04 aggiornato con connessione Internet
- Accesso root nel server o utente con accesso sudo
- Conoscenza dell'utilizzo del terminale Linux
Passaggi necessari per far funzionare WordPress in Ubuntu 20.04
- Assicurati che il sistema sia aggiornato
- Installazione del server di database mysql 8 e creazione di un utente WordPress
- Installa il server Web Nginx
- Installa PHP con le dipendenze
- Configura le impostazioni PHP e PHP FPM
- Download e configurazione di WordPress
- Configura Nginx per offrire contenuti wordpress
- Verifica l'installazione di WordPress
1. Assicurati che il sistema sia aggiornato
Prima di procedere, assicuriamoci che il nostro server sia aggiornato. Utilizzare questi comandi per 1. Aggiornare i repository del server, 2. Aggiornare i pacchetti del server alle versioni più recenti:
# Update repos
sudo apt update
# Upgrade packages
sudo apt -y upgrade
2. Installazione del server di database mysql 8 e creazione di un utente WordPress
Il pacchetto mysql-server richiesto non è presente nei repository Ubuntu predefiniti. Quindi dobbiamo configurarlo.
Il team di mysql fornisce un .deb
scaricabile file che configurerà i repository per l'installazione di mysql server 8. Scaricalo con questo comando:
curl -LO https://dev.mysql.com/get/mysql-apt-config_0.8.19-1_all.deb
Una volta terminato il download, è necessario installare il file deb scaricato. Usa questo comando per installare:
sudo dpkg -i ./mysql-apt-config_0.8.19-1_all.deb
Si aprirà una finestra di configurazione che ti chiederà di scegliere la versione del server MySQL e altri componenti come cluster, librerie client condivise o il workbench MySQL
Per ora poiché siamo interessati solo all'installazione di Mysql Server, lascia le impostazioni predefinite e fai clic su OK per procedere.
Installazione del server MySQL
Ora che i repository sono stati aggiunti per includere il server MySQL, ora possiamo installare. Aggiorniamo i repository per ottenere le ultime dal repository aggiunto usando questo comando:
$ sudo apt update
Quindi installa Mysql 8 Server usando questo comando:
sudo apt install -y mysql-server
Inserisci le tue credenziali di amministratore e il sistema installerà il pacchetto del server MySQL, i pacchetti client e i file comuni del database.
L'installazione ti chiederà di inserire e confermare un utente root e una password per il database MySQL.
Successivamente ti verrà chiesto di selezionare il plug-in di autenticazione. Si consiglia di scegliere di utilizzare una password complessa:
Dopodiché verrà impostata la nuova password e il servizio verrà ricaricato.
Conferma che il server mysql è attivo e funzionante con questo comando:
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 13:08:22 UTC; 2min 23s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 45123 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 45173 (mysqld)
Status: "Server is operational"
Tasks: 37 (limit: 4710)
Memory: 353.0M
CGroup: /system.slice/mysql.service
└─45173 /usr/sbin/mysqld
Sep 28 13:08:21 ip-172-26-11-229 systemd[1]: Starting MySQL Community Server...
Sep 28 13:08:22 ip-172-26-11-229 systemd[1]: Started MySQL Community Server.
Il Active: active (running) since ...
la parte in alto mostra che l'app è attiva e funzionante.
Connettiti al server e crea l'utente
Dopo una corretta installazione di mysql-server, connettiamoci al server e creiamo un utente WordPress.
Connettiti al server mysql fornendo la password che abbiamo fornito in precedenza:
$ mysql -h 127.0.0.1 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Quindi crea un database, un utente e una password:
mysql> create database wordpress_db;
Query OK, 1 row affected (0.01 sec)
mysql> create user 'wordpress_user'@'%' identified by 'S0mStrongPa$$word';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on wordpress_db.* to 'wordpress_user'@'%';
Query OK, 0 rows affected (0.00 sec)
3. Installa il server Web Nginx
Nginx non funzionerà se Apache è installato e in esecuzione. Dato che useremo Nginx, usiamo questo comando per rimuovere Apache se è installato nel nostro sistema:
$ sudo apt remove apache2 -y
Per installare Nginx:
sudo dnf -y install nginx
Una volta completata l'installazione, avvia Nginx e abilita l'avvio automatico dopo un riavvio
systemctl start nginx
systemctl enable nginx
Controlla lo stato di Nginx:
$ sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
Docs: man:nginx(8)
Main PID: 56990 (nginx)
Tasks: 3 (limit: 4710)
Memory: 3.7M
CGroup: /system.slice/nginx.service
├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─56991 nginx: worker process
└─56992 nginx: worker process
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>
Per confermare che Nginx è effettivamente in esecuzione ed è raggiungibile, usa questo comando:
curl http://server_ip/
Dove server_ip
è l'ip del tuo server. Se per qualsiasi motivo non conosci l'ip pubblico del tuo server usa questo per controllare
curl -4 icanhazip.com
Dovresti vedere la pagina predefinita di Nginx.
4. Installa PHP con le dipendenze
Poiché i repository predefiniti contengono php versione 7.4, installiamolo con questo comando:
sudo apt install php -y
Conferma la versione installata con il comando php -v
:
~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Quindi installiamo le dipendenze php. Le dipendenze php sono disponibili come pacchetti a livello di sistema operativo con il prefisso php-
. Installiamo le dipendenze di cui WordPress ha bisogno con questo comando:
sudo apt install -y \
php-common \
php-mbstring \
php-gd \
php-intl \
php-xml \
php-json \
php-mysqlnd \
php-fpm
5. Configura le impostazioni PHP e PHP FPM
Le impostazioni php globali per la versione di php installata sono memorizzate in /etc/php/7.4/cli/php.ini
file. Aggiorniamo queste impostazioni.
Apri php.ini
con il tuo editor di testo preferito, userò vim
sudo vim /etc/php/7.4/cli/php.ini
Quindi cerca le seguenti variabili e aggiorna i valori come mostrato di seguito:
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 32M
date.timezone = Africa/Nairobi
6. Download e configurazione di WordPress
Ora che abbiamo configurato i server, scarichiamo e installiamo WordPress sul server. L'ultima versione di WordPress può essere scaricata dal loro sito Web ufficiale.
Creiamo una directory in cui verranno pubblicati i nostri contenuti WordPress in questo percorso /var/www/example.citizix.com
.
sudo mkdir /var/www/example.citizix.com
Assicurati che l'utente web sia il proprietario del contenuto:
sudo chown -R www-data.www-data /var/www/example.citizix.com
Scarica gli ultimi contenuti di WordPress:
cd /tmp
curl -LO https://wordpress.org/latest.zip
Esempio di output:
$ curl -LO https://wordpress.org/latest.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 15.7M 100 15.7M 0 0 6650k 0 0:00:02 0:00:02 --:--:-- 6647k
$ ls
latest.zip
Estrai e sposta il contenuto nella nostra directory del server. Assicurati di avere unzip
comando o installazione con sudo apt install unzip
.
unzip latest.zip
sudo mv wordpress/* /var/www/example.citizix.com
# Confirm content with
ls /var/www/example.citizix.com
Configurazione di WordPress
Ora che il contenuto di WordPress è stato copiato nella directory del sito, aggiorniamo la configurazione del db utilizzando il file di esempio fornito.
Passa alla directory del sito:
cd /var/www/example.citizix.com/
Copia il tuo wp-config-sample
file in wp-config.php
.
cp wp-config-sample.php wp-config.php
Apri il file di configurazione in un editor di testo:
vim wp-config.php
Aggiorna queste variabili:DB_NAME
, DB_USER
, DB_PASSWORD
, DB_HOST
:
<?php
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'xxx' );
/** MySQL database username */
define( 'DB_USER', 'xxx' );
/** MySQL database password */
define( 'DB_PASSWORD', 'xxx' );
/** MySQL hostname */
define( 'DB_HOST', 'xxx' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
Salva il file di testo una volta terminato.
Rendi l'utente web come proprietario della directory di WordPress, in modo che abbia accesso e sia in grado di servire i file.
sudo chown -R www-data:www-data /var/www/example.citizix.com
7. Configura Nginx per offrire contenuti wordpress
Ora che la configurazione è a posto, configuriamo un host virtuale Nginx per servire il contenuto che abbiamo appena aggiunto a /var/www/example.citizix.com
Creiamo un sito virtuale nella directory in cui Nginx fornisce contenuti qui /etc/nginx/conf.d
:
sudo vim /etc/nginx/conf.d/example.citizix.com.conf
Aggiungi il seguente contenuto:
server {
listen 80;
server_name example.citizix.com;
root /var/www/example.citizix.com;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Assicurati che la configurazione aggiunta sia corretta usando questo comando per testare:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Dopo aver confermato che tutto è a posto, riavvia Nginx per rendere effettive le modifiche:
sudo systemctl restart nginx
8. Infine, prova l'installazione di WordPress
Una volta completati tutti i passaggi precedenti, l'installazione dalla riga di comando è completata. Puoi aprire il tuo browser web preferito e puntarlo su http://example.citizix.com/. Dovresti visualizzare la seguente schermata che ti chiede di iniziare con la configurazione dell'installazione di WordPress:
[Schermata qui]
Dovrebbe essere facile seguire le istruzioni per configurare WordPress per la prima volta.