Installazione di WordPress su Ubuntu 16.04 LTS

In questo tutorial andremo ad installare il noto CMS (Content Management System) WordPress su Ubuntu Server 16.04 LTS.

Consideriamo di partire da un sistema Ubuntu Server 16.04 (per l’installazione leggere l’articolo qui) e procediamo all’installazione di un ambiente LAMP (Linux Apache Mysql Php).

Partiamo dall’installazione del Web server Apache 2:

sudo apt-get update

sudo apt-get install apache2

verifichiamo che la configurazione del web server sia corretta, innanzitutto attraverso il comando

sudo apache2ctl configtest

dovremo avere questo output

AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OK

l’eccezione (AH00558) sollevata dalla configurazione è dovuta al fatto di non aver impostato  il Server Name globale ( l’impostazione è da inserire nel file /etc/apache2/apache2.conf, aggiungendo la direttiva ServerName ip_server_o_dominio ), ma la sintassi come è possibile notare è OK.  Un’ ulteriore riscontro è l’accesso diretto tramite url (porta standard 80):

http://ip_server_ubuntu/

dovremo avere il seguente risultato

Procediamo con l’ installazione del database server Mysql

sudo apt-get install mysql-server

durante la fase d’installazione verrà richiesta la password dell’utente principale root, dovremo inserirla per due volte. Il file di configurazione principale di Mysql è presente al seguente percorso:

/etc/mysql/my.cnf

quest’ultimo è stato creato con impostazioni standard. Rendiamo il Mysql sicuro seguendo la procedura guidata dettata dal comando:

mysql_secure_installation

come output avremo

Securing the MySQL server deployment.

Enter password for user root:Yes

andremo ad impostare la password inserita in fase d’installazione

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:No

nella precedente schermata ci viene richiesta la volontà di installare il plugin di validazione della password, ma per semplicità metteremo No. Ci viene chiesta successivamente il cambio password di root

Change the password for root ? ((Press y|Y for Yes, any other key for No) : No

eliminiamo utenti anonimi

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Yes

Success

non permettiamo di collegarsi da remoto con root

Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Yes

Success.

eliminiamo il database di test

By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Yes
– Dropping test database…
Success.

– Removing privileges on test database…
Success.

ricarichiamo i privilegi con le nuove impostazioni

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Yes
Success.

All done!

A questo punto abbiamo terminato l’installazione e la messa a punto del database Mysql.

Installiamo il linguaggio PHP con i suoi moduli:

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

WordPress è un sito web costruito prevalentemente in php, il file contattato dal web server Apache è index.php e non index.html, quindi per far sì che questo accada dovremo modificare le configurazioni di default del file dir.conf, in particolare:

sudo vim /etc/apache2/mods-enabled/dir.conf

modifichiamolo mettendo in prima posizione index.php, in questo modo

<IfModule mod_dir.c>
          DirectoryIndex index.php index.cgi index.pl index.html index.xhtml index.htm
</IfModule>

quindi riavviamo apache2

sudo systemctl restart apache2

Controlliamo che il tutto funzioni correttamente creando il noto file info.php nella directory di dafault di Apache2:

sudo vim /var/www/html/info.php

con il seguente codice (cat /var/www/html/info.php):

<?php
phpinfo();
?>

accedendo all’indirizzo http//indirizzo_server_ubuntu/info.php avremo:

L’installazione dell’ambiente LAMP su Ubuntu 16 è finita, adesso configuriamo tutto lo stack in modo da far girare WordPress.

Accediamo a mysql e creiamo il database per WordPress:

sudo mysql -u root -p

mysql> CREATE DATABASE primo_sito DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Query OK, 1 row affected (0,00 sec)

Accediamo a mysql e creiamo il database per WordPress:

mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';

Query OK, 1 row affected (0,00 sec)

mysql> GRANT ALL ON primo_sito.* TO 'user1'@'localhost' IDENTIFIED BY 'password1';

Query OK, 1 row affected (0,00 sec)

quindi effettuare il reload dei privilegi

mysql> FLUSH PRIVILEGES;

Query OK, 1 row affected (0,00 sec)

nel caso si presentasse nella fase d’inserimento della password il seguente errore

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

considerare per server di laboratorio disabilitare il plugin della validazione della password, in questo modo

mysql> uninstall plugin validate_password;

possiamo uscire da Mysql

mysql> EXIT;

Installiamo i moduli php necessari per il corretto funzionamento della piattaforma WordPress:

sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

sudo systemctl restart apache2

All’ interno  della piattaforma WordPress abilitiamol’uso del file .htaccess, in particolare avremo

sudo vim /etc/apache2/apache2.conf

modifichiamo all’interno del blocco Directory la direttiva AllowOverride nella cartella principale di WordPress, facendo un cat su file di aconfigurazione avremo il seguente output:

<Directory /var/www/html/>
            AllowOverride All
</Directory>

Abilitiamo anche il modulo rewrite, molto utile nel caso vogliamo riscrivere un url (qui la guida)

sudo a2enmod rewrite

sudo systemctl restart apache2

Scarichiamo dal sito ufficiale di WordPress l’ultima versione stabile:

sudo apt-get install curl

cd /tmp

sudo curl -O https://wordpress.org/latest.tar.gz

sudo tar xzvf latest.tar.gz

sudo touch /tmp/wordpress/.htaccess

sudo chmod 660 /tmp/wordpress/.htaccess

per l’installazione della piattaforma WordPress creiamo il file principale di configurazione da una copia dell’esempio presente nei file di installazione, in particolare:

sudo cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

a questo punto copiamo mantanendo i permessi orginali WordPress nella cartella principale di Apache 2:

sudo cp -a /tmp/wordpress/. /var/www/html

quindi forniremo i seguiti permessi alle cartelle interne

sudo chown -R www-data:www-data /var/www/html

sudo chmod g+w /var/www/html/wp-content

sudo chmod -R g+w /var/www/html/wp-content/themes

sudo chmod -R g+w /var/www/html/wp-content/plugins

Rendiamo la piattaforma WordPress sicura da eventuali attacchi Hacker, migliorando alcuni aspetti, in particolare sfruttiamo le API di WordPress per generare alcune chiavi :

curl -s https://api.wordpress.org/secret-key/1.1/salt/

ci viene restituito il seguente risultato:

define(‘AUTH_KEY‘, ‘&P#f=*aHo{plmvBpK`3bf2?uJ+p2>5yKn_ghI)rQ*S8)/TUWv ?dJ RLW]Ixhy&$’);
define(‘SECURE_AUTH_KEY‘, ‘yejtZK(V*=&1CQC}E+QLeNZzT(+vPZU)=N9R*_c-tMY}C3Bo@F6f8&ITKn$+>T.[‘);
define(‘LOGGED_IN_KEY‘, ‘]jfLD:,g} mFs-B3rI*DaE-{7]}S`R&|IS1M!ZgP=eb!nO=pYx^lffK!Dxc1&;0;’);
define(‘NONCE_KEY‘, ‘,=A&UN}ZWG|H[+F*(C:a kLrRwY8 ]zW=&Q]xj,F_m&O 9+z(J:[;=0*p5bqB>–‘);
define(‘AUTH_SALT‘, ‘vqw9~i-?PgAEPR:>KP)PRAIdxu)&X8x6Hf/O_j)y.HC,[(S:Sq|.WBg(E|ffU@tn’);
define(‘SECURE_AUTH_SALT‘, ‘QjKk5n^gZytxd]|DE,M[2#X]MWOd {!K:~K^mUyv&)qz|UzqqJ^Vn,$P*d9r.v`V’);
define(‘LOGGED_IN_SALT‘, ‘_#j2Z;#P)YWOtGyS*T^5%BX|;egjM!|m.+iAg_s~*p<|]efv2&|,_{$Uh>k4W%nw’);
define(‘NONCE_SALT‘, ‘~-+#b>o}IXjB~-dw}015}O6GOo@558eqrnrLc(cfE|F{0Qf*m,u`]/L2K|KyJmq<‘);

i valori all’interno delle variabili sono unici e per ogni volta che si installa una piattaforma WordPress bisogna generarli e inserirli nel file di configurazione

sudo vim /var/www/html/wp-config.php

in ultimo inseriamo anche i dati per la connessione al database sempre all’interno del file wp-config

define(‘DB_NAME’, ‘primo_sito’);

/** MySQL database username */
define(‘DB_USER‘, ‘user1’);

/** MySQL database password */
define(‘DB_PASSWORD‘, ‘password1’);

/** MySQL hostname */
define(‘DB_HOST‘, ‘localhost’);

/** 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‘, ”);

systemctl restart apache2

attenzione a questo file di configurazione, in particolare ai dati inseriti per la connessione al database (riguardare passi installazione Mysql), perchè potrebbe accadere un problema di questo tipo:

Error establishing a database connection

Terminata la configurazione del WordPress non ci rimane che collegarci alla piattaforma, al seguente indirizzo http://ip_server_ubuntu/ avremo dopo la scelta della lingua di riferimento, la seguente schermata :

 

Inseriamo i dati che richiede il form iniziale e successivamente ci viene richiesto il login alla parte di amministrazione di WordPress all’indirizzo http://ip_server_ubuntu/wp-admin, inseriamo utente e password scelti nella precedente schermata ed avremo accesso al pannello amministrativo, in particolare:

L’installazione della piattaforma WordPress è finita.

Potrebbero interessarti anche...

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi