Molts blogers comencen el seu primer blog a plataformes com wordpress.com. És una plataforma que et permet configurar el teu blog de forma senzilla i molt ràpida però té alguns desavantatges que una intal·lació amb servidor dedicat no té. Són els següents:

  • No tens control sobre la base de dades del teu blog.
  • Tens preinstal·lats unes extensions (plugins) que no pots treure que potser relentitzen el teu lloc o simplement no són útils per a tú.
  • La instal·lació d’altres plugins requereix contractar un pla mensual.
  • Espai limitat en el cas no contractar un pla mensual.
  • El teu blog està ubicats dins d’un subdomini de wordpress.com i no amb un domini propi.

Una opció molt econòmica és muntar el teu servidor web casolà i comprar un domini, hi ha des de 8 euros a l’any o inclús menys. Hi ha molts llocs per poder registrar dominis, la majoria són seriosos. Podeu fer una ullada als preus en pàgines com GoDaddy, webempresa, nominalia, namecheap… per posar alguns exemples. Si no voleu complicacions podeu contractar amb qualsevol d’aquestes empreses o moltes altres un servidor dedicat però això ja té un cost mensual.

L’objecte d’aquesta entrada és explicar amb detall com fer la insta·lació d’un servidor web per a wordpress. Si heu seguit el tutorial de com instal·lar moodle en un servidor casolà teniu molt feina avançada i només heu de completar la instal·lació de la base de dades (4t pas), descarrega de la última versió de wordpress (5è pas) i la instal·lació web seguint l’assistent de configuració (8è pas).

1r Pas: instal·leu el servidor HTTP Apache2

WordPress requereix un servidor web i el servidor HTTP Apache2 és el servidor web de codi obert més popular disponible actualment. Per instal·lar el servidor Apache2, executeu les ordres següents:

sudo apt update
sudo apt install apache2

A continuació, executeu les ordres següents per aturar, iniciar i habilitar el servei Apache2. No cal que reinicieu l’ordinador.

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

2n Pas: instal·leu MariaDB

En aquest segon pas toca instal·lar una base de dades i una bona opció és MariaDB.

sudo apt install mariadb-server mariadb-client

Desprès hauriem de fer el mateix que hem fet abans, aturar, iniciar i habilitar el servei.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Després d’això, executeu les ordres següents per realitzar una instal·lació segura del servidor MariaDB.

sudo mysql_secure_installation

Heu de respondre unes preguntes, responeu les preguntes següents seguint la guia (en anglès):

  • Enter current password for root (enter for none): Premeu la tecla “enter”
  • Set root password? [Y/n]: Y
  • New password: Enter password
  • Re-enter new password: Repeat password
  • Remove anonymous users? [Y/n]: Y
  • Disallow root login remotely? [Y/n]: Y
  • Remove test database and access to it? [Y/n]: Y
  • Reload privilege tables now? [Y/n]: Y

Reinicieu el servidor MariaDB amb la següent ordre: 

sudo systemctl restart mysql.service

3r Pas: instal·leu PHP7.2

WordPress requereix la instal·lació de PHP, en aquest cas instal·larem l’última versió estable, la 7.2, ja disponible en els repositoris oficials d’ubuntu 18.04. En el cas que ho feu en versions d’ubuntu 16.04 o més antigues podeu afegir el següent repositori:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Després hem d’instal·lar tots aquests paquets:

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mysql php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-cli php7.2-zip

Després d’instal·lar PHP, executeu les ordres següents per obrir els fitxers predeterminats de PHP:

sudo nano /etc/php/7.2/apache2/php.ini

A continuació, canvieu les següents línies al fitxer i deseu-les. Podeu augmentar o disminuir els valors segons les necessitats del vostre entorn:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Europe/Madrid

4t Pas: creeu la base de dades wordpress

Ara després d’instal·lar tots els paquets necessaris, toca crear les bases de dades per a wordpress.

Executeu les ordres següents per iniciar sessió al servidor de la base de dades. Quan se vos demane una contrasenya, escriviu la contrasenya del root que heu creat anteriorment.

ATENCIÓ: El text en color roig s’ha de substituir per les vostres dades.

sudo mysql -u root -p

A continuació, creeu una base de dades anomenada wordpress.

CREATE DATABASE wordpress;

Creeu un usuari de base de dades anomenat wordpressusuari amb una nova contrasenya

CREATE USER 'wordpressusuari'@'localhost' IDENTIFIED BY 'nova_contrasenya';

A continuació, concediu a l’usuari accés complet a la base de dades.

GRANT ALL ON wordpress.* TO 'wordpressusuari'@'localhost' IDENTIFIED BY 'nova_contrasenya' WITH GRANT OPTION;

Finalment, deseu els canvis i eixiu.

FLUSH PRIVILEGES;

EXIT;

5è pas: Descarregueu l’última versió de wordpress

Executeu la següent ordre al terminal per entrar al directori tmp i descarregar l’última versió wordpress.

cd /tmp && wget https://wordpress.org/latest.tar.gz

A continuació, executeu les ordres següents per extreure el fitxer descarregat a la ruta predeterminada del servidor Apache2.

tar -zxvf latest.tar.gz
sudo mv wordpress /var/www/html/wordpress

Canvieu el propietari i permisos del directori.

sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo chmod -R 755 /var/www/html/wordpress/

6è pas: configureu l’Apache2

Finalment, configureu el fitxer de configuració del lloc Apache2 per a wordpress. Aquest fitxer controlarà com els usuaris accedeixen al contingut de wordpress. Executeu les ordres següents per crear un nou fitxer de configuració anomenat wordpress.

sudo nano /etc/apache2/sites-available/wordpress.conf

A continuació, copieu i enganxeu el contingut al fitxer i deseu-lo. Substituïu la línia ressaltada amb el vostre propi nom de domini i la ubicació del directori del directori. Aquest fitxer és el virtualhost per a wordpress.

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/wordpress/
     ServerName example.com
     ServerAlias www.example.com
     <Directory /var/www/html/wordpress/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Deseu l’arxiu i eixiu.

Després de configurar el VirtualHost anterior, habiliteu-lo executant les ordres a continuació. Com podeu veure primer habilitem el mòdul rewrite. Aquest mòdul permet crear direccions URL alternatives a les dinàmiques generades per la programació del nostre web, de manera que siguin més llegibles i fàcils de recordar.

sudo a2enmod rewrite
sudo a2ensite wordpress.conf

Per carregar totes les configuracions anteriors, reinicieu l’Apache2 executant les ordres a continuació.

sudo systemctl restart apache2.service

7è pas: Obtenció i configuració certificat SSL Let’s Encrypt (OPCIONAL però molt recomanable)

La configuració de wordpress per la banda del servidor està acabada però amb unes quantes ordres més podem obtenir i configurar fàcilment un certificat SSL que permet xifrar les connexions entre servidor i usuaris. Let’s Encrypy proporciona un mòdul apache2 per automatizar aquest procés.

En aquest pas també em vaig trobar un altre problema, la versió de PHP 7.2 ja no té suport per al mòdul mcrypt necessari per a la generació de certificats funcione correctament. 

Heu d’executar les ordres següents per instal·lar les dependències requerides que permetran instal·lar el mòdul mcrypt per Ubuntu amb el suport PHP 7.2:

sudo apt install php-dev libmcrypt-dev php-pear
sudo pecl channel-update pecl.php.net
sudo pecl install mcrypt-1.0.1

Després d’executar les ordres anteriors vos hauria d’eixir un missatge com el següent:

Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

Ara toca afegir la següent línia a l’arxiu php.ini corresponent a la nostra instal·lació de PHP:

extension=mcrypt.so

Heu d’editar l’arxiu i afegir la línia comentada anteriorment.

sudo nano /etc/php/7.2/apache2/php.ini

Després executeu les ordres per a recarregar la nova configuració i reiniciar el servidor apache2:

sudo systemctl reload apache2.service
sudo systemctl restart apache2.service

Ara ja podem continuar amb la generació dels certficats SSL. Per a instal·lar el mòdul executeu les ordres següents: 

sudo apt-get install python-certbot-apache

Després, executeu les ordres següents per obtenir el certificat SSL de Let’s Encriypt gratis per al vostre lloc. Recordeu que heu de substituir les dades de l’exemple per les vostres.

sudo certbot --apache -m admin@example.com -d example.com -d www.example.com

Després d’executar les ordres anteriors, heu d’acceptar els termes de la llicència per poder continuar. Heu d’indicar un lletra A per a continuar. 

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

Trieu SI (Y) per compartir la vostra adreça de correu electrònic o NO (N) si decidiu no compartir-la.

Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y

Vos eixirà una altre missatge preguntat si voleu redirigir tot el trànsit a través d’HTTPS. Elegiu l’opció 2.

El lloc quedarà configurat per redirigir tot el trànsit a a través de HTTPS (xifrat).

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): 2
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
-------------------------------------------------------------------------------
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2018-02-24. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Assegureu-vos que el vostre proveidor d’internet no bloquege l’accés des d’internet dels ports 80 (http) i 443 (https), a mi em va dornar molts mals de cap, em fallava la creació dels certificats perquè el servidor no es podia comunicar correctament amb internet.

8è Pas: configuració final de l’entorn wordpress

Obriu el navegador i escriviu el nom del servidor o l’adreça IP. Apareixerà l’assistent de configuració del lloc de wordpress. Heu de seguir les instruccions.

https://example.com

Haureu de completar els elements següents abans de continuar. Utilitzeu la informació de la connexió a la base de dades que heu creat anteriorment.


Nom de la base de dades
Nom d’usuari de la base de dades
Contrasenya de base de dades
Servidor de bases de dades
Prefix de taula (si voleu executar més d’un WordPress en una única base de dades)


L’assistent utilitzarà la informació de la base de dades per crear un fitxer wp-config.php a la carpeta arrel de WordPress.


Si per alguna raó aquesta creació automàtica d’arxius no funciona, no us preocupeu. L’assistent ompli la informació de la base de dades en un fitxer de configuració. També podeu obrir wp-config-sample.php en un editor de text, omplir la vostra informació i desar-lo com a wp-config.php.

A continuació, escriviu la informació de la connexió a la base de dades i feu clic a Envia.

Després d’això, feu clic a “Executa la instal·lació” per a què WordPress complete la configuració.

A continuació, indiqueu el nom del lloc de WordPress i el compte d’administració. Feu clic a Instal·la WordPress.

Al acabar, WordPress s’haurà instal·lat i està preparat per utilitzar.

Enhorabona!! ja tens instal·lat el teu blog de wordpress.

Publicat per dtalens

Professor. Amant de la tecnologia en general i especialment del món web.

Uneix-te a la conversa

1 comentari

Feu un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *