# A2.Wordpress - servidor web amb php (i mysql)
### De Erik Llorens
## 1.Informació General
WordPress és el sistema de blocs i CMS de codi obert més popular a la web. Està basat en PHP i MySQL. Les funcions es poden ampliar amb milers de complements i temes gratuïts.
## 2.Instalarem les dependencies
El instalarem les dependencies amb
**sudo apt update**
**sudo apt install** *apache2 \
ghostscript \
libapache2-mod-php \
mysql-server \
php \
php-bcmath \
php-curl \
php-imagick \
php-intl \
php-json \
php-mbstring \
php-mysql \
php-xml \
php-zip*

## 3.Instalarem el Wordpress

Amb *sudo mkdir -p /var/www/blogsmxb.erik.conf* estem crean una carpeta en www, i amb *sudo chown www-data /var/www/blogsmxb.erik.conf* canviem el propietari que sigui el propi sistema per que pugui accedir el apache2.
I seguidament executem el *sudo curl https://wordpress.org/latest.tar.gz | sudo -u www-data tar zx -C /srv/www --strip-components=1*
Amb el curl ens descarguem una pagina web, i si el posem amb --strip-components=1 quitem la carpeta en la que ve tot i necesitarem sudo er descargarlo i utilitzamen el ls per veure si se ha descargat.

## 4. Configuració de Apache per WordPress
En aquesta part anirem a on tenim les plantilles, anirem amb *cd /etc/apache2/sites-avariables/* i farem una copia de la plantilla 000-default.conf, el farem utilitzan la comana de *cp 000-default.conf (i aqui el nom deseat)* i amb el nano editadem la nova plantilla que hem fet, també podem editar amb sudo vi.

Una vegada dins, editadem el ServerName i posarem el seguent dins del document.
*DocumentRoot /srv/www/wordpress
<Directory /srv/www/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /srv/www/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>*

I ens quedara aixi una vegada hem editat tot be i hara utilitzarem la comana de *sudo a2ensite (nom del teu arxiu.conf)* i no reiniciarem encada sino executarem *sudo a2enmod rewrite* aixó per posar un modul en apache2.

I desactivarem la plantilla de 000-default amb sudo a2dissite i hara si reiniciarem.

## 5. Configuracio de la base de dades
Per configurar WordPress, necessitem crear una base de dades MySQL.
Executarem *sudo mysql -u root* per aixi accedirem a un cmd de mysql i crearem la nostra base de dades executan en aquest cmd de mysql, executarem *CREATE DATABASE wordpress;*.

Hara per crear un usuari que necesitem, executem *CREATE USER (aqui posem el nostre nom per un usuari)@localhost IDENTIFIED BY '<(aqui posem la nostra contrasenya)>';* i tinrem que executar la seguent secuencia de comanes.

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
-> ON wordpress.*
-> TO (aqui el nom de la maquina)@localhost;
Query OK, 1 row affected (0,00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0,00 sec)
mysql> quit
Bye
I ja el donem permisos i ens despedim.

I hara habilitem el mysql *sudo service mysql start*
## 6. Configureu WordPress per connectar-vos a la base de dades
Ara, configurar WordPress per utilitzar aquesta base de dades. Primer, copieu el fitxer de configuració de mostra a wp-config.php:

A continuació, configureu les credencials de la base de dades al fitxer de configuració ( no les reemplaceu o en les ordres a continuació. Reemplaceu-les amb la database_name_herecontrasenya username_herede la seva<your-password> base de dades):
*sudo -u www-data sed -i 's/database_name_here/wordpress/' /srv/www/wordpress/wp-config.php
sudo -u www-data sed -i 's/username_here/wordpress/' /srv/www/wordpress/wp-config.php
sudo -u www-data sed -i 's/password_here/<your-password>/' /srv/www/wordpress/wp-config.php*
Hara ya fet aixo, anirem a aquest document *sudo -u www-data nano /srv/www/wordpress/wp-config.php* i eliminarem las seguents lineas:
**define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );**
Hara el sustituirem amb les claves que ens donara aquesta pagina https://api.wordpress.org/secret-key/1.1/salt/ i una vegada que terminem guardem.
## 7. Configurar WordPress
Anitem a la nostra pagina web, asegureobos de tenir el /etc/hosts actualitzat amb la IP i el domini del server, i una vegada entrem tenim que escogir un idioma, i rellenarem tot aixo.

I hara podrem accedir al wordpress per poder editarlo.
