# WordPress



### Installer WordPress:

#### 

```bash title="Télécharger Wordpress"
cd /volume1/web
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
```



```bash title="Régler les permissions"
sudo chown -R http:http wordpress
sudo chmod -R 755 /volume1/web/wordpress/
sudo find /volume1/web/wordpress/ -type d -exec chmod 755 {} \;
sudo find /volume1/web/wordpress/ -type f -exec chmod 644 {} \;
```



#### Créer un Virtual Host:

- Aller dans **Web Station** -> **Portail de services Web** -> Créer -> **Créer un portail de service**
- Sélectionner **Virtual Host** 
- Configurer un **hôte virtuel**:
  -Nom d'hôte: 
  -Port: cocher 80/443
  -Racine du document: web/wordpress
  -Paramètres HTTPS: cocher HSTS
  -Serveur principal HTTP: Nginx
  -PHP: PHP 7.4

DSM ajustera les permissions pour les fichiers WordPress.



#### Créer une base MariaDB:

```bash title="Se connecter à MySQL"
sudo mysql -u root -p
```

```mysql title="Créer une base"
# Supprimer une ancienne base:
# DROP DATABASE wordpress;

MariaDB > CREATE DATABASE wordpress;

# Créer un utilisateur autorisé à se connecter uniquement depuis le NAS 
MariaDB > CREATE USER 'adm_wp'@'localhost' IDENTIFIED BY 'DB_password';

# Créer un utilisateur autorisé à se connecter uniquement depuis une IP fixe (interne/externe) 
# CREATE USER 'adm_wp'@'192.168.1.123' IDENTIFIED BY 'DB_password';
# Créer un utilisateur autorisé à se connecter uniquement depuis le réseau local 
# CREATE USER 'adm_wp'@'192.168.1.%' IDENTIFIED BY 'DB_password';
# Créer un utilisateur autorisé à se connecter uniquement depuis ln'importe où
# CREATE USER 'adm_wp'@'%' IDENTIFIED BY 'DB_password';

# Donner tousles droits à l'utilisateur admin_wp sur la base wordpress depuis le NAS
MariaDB > GRANT ALL PRIVILEGES ON wordpress . * TO 'adm_wp'@'localhost';

# On peut regrouper les 2 dernières commandes
# GRANT ALL ON wordpress.* TO 'adm_wp'@'localhost' IDENTIFIED BY 'Kpm!65YU$q';

MariaDB > FLUSH PRIVILEGES;
```



```mariadb title="Vérifier la base créée"
 MariaDB > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| admin_gitea        |
| information_schema |
| mysql              |
| nextcloud          |
| performance_schema |
| wordpress          |
+--------------------+

MariaDB > SELECT User, Host FROM mysql.user;
+-----------------+-----------+
| User            | Host      |
+-----------------+-----------+
| adm_gitea       | %         |
| admin_nextcloud | %         |
| root            | 127.0.0.1 |
| root            | ::1       |
| adm_wp          | localhost |
| root            | localhost |
+-----------------+-----------+
```



#### Finaliser l'installation:

Aller à https://clicclac.synology.me/wordpress dans Firefox.



#### Permaliens:



```php
# Note : avec DSM7, le chemin d'accès du fichier server.ReverseProxy.conf a changé
#         DSM6.2  = /etc/nginx/app.d/server.ReverseProxy.conf
#         DSM7    = /etc/nginx/sites-enabled/server.ReverseProxy.conf
```



Identification du dossier *réceptacle*:

```bash
sudo nano /usr/local/etc/nginx/sites-enabled/server.webstation-vhost.conf
```

```nginx
...

include /usr/local/etc/nginx/conf.d/2bbf5ec3-353e-48c2-8564-f5ad432bb05e/user.conf*;

...
```

Création du fichier:

```bash
cd /usr/local/etc/nginx/conf.d/2bbf5ec3-353e-48c2-8564-f5ad432bb05e/

# Créer un fichier de configuration nginx pour gérer les permaliens
sudo nano user.conf.wordpress-permalink
```

```nginx
location /{
  try_files $uri $uri/ /index.php?$args;
}
```



```bash title="Tester la configuration"
sudo nginx -t
```

```bash title="Recharger nginx"
sudo systemctl reload nginx
```



### Mises-à-jour

Configurer le fichier <u>config.php</u> comme suit:

```php
define( 'FS_METHOD', 'ftpext' );
define( 'FTP_PASS', 'nas_password' );
define( 'FTP_USER', 'bruno' );
define( 'FTP_HOST', 'clicclac.synology.me:21' );
```

ou plus simplement:

```php
define( 'FS_METHOD', 'direct' );
```



#### Liens:

 [Installer WordPress sur Debian / nginx](../../Divers/wordpress.md) 
