Guia rapida servidor Wordpress con Nginx en debian 11
Tags: spanish, debian11, wordpress, servidores
Published: 2023-03-31 19:51:28


- [Instalacion nginx](#instalacion-nginx)
- [Instalacion PHP y MariaDB Server](#instalacion-php-y-mariadb-server)
- [Creacion de la base de datos](#creacion-de-la-base-de-datos)
- [Descargamos e instalamos WordPress](#descargamos-e-instalamos-wordpress)
- [Creacion de un host virtual Nginx](#creacion-de-un-host-virtual-nginx)









## Instalacion nginx

Instalamos nginx

`$ apt-get install nginx`

Habilitamos nginx

```
$ systemctl start nginx
$ systemctl enable nginx
$ systemctl status nginx
```


![status nginx](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a50tmihukvmgsvdfez24.png)


## Instalacion PHP y MariaDB Server 

```
$ apt-get install php php-mysql php-fpm php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip mariadb-server mariadb-client

```

Iniciamos mariaDB y verificamos el estado 

```
$ systemclt start mariadb 
$ systemctl enable mariadb
$ systemctl status mariadb 
```

![status de mariadb](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/opuzsjsmit7iydbt8sw6.png)

Habilitamos el servicio de PHP-FPM

```
$ systemctl start php7.4-fpm
$ systemctl enable php7.4-fpm
$ systemctl status php7.4-fpm
```

![status php](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1lpx7h9vgc1hoji8tsjw.png)

Si qestamos en produccion y queremos asegurar la instalacion de mariaDB ejecutamos la configuracion guiada deacuerdo a lo que necesitemos 

`mysql_secure_installation`


## Creacion de la base de datos 


Ejecutamos la BD
`$ mysql`

Creamos una nueva base de datos 
`$  CREATE DATABASE wordpress_db;`

A continuación, creamos una nueva cuenta de usuario MySQL que utilizaremos para operar en la nueva base de datos de WordPress, con el nombre de usuario "wordpress_user".

```
$  CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

```

Vincular el usuario y la base de datos concediendo a nuestro usuario acceso a la base de datos.

```
$ GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@'localhost';

```

Vaciar los privilegios para que MySQL conozca los permisos de usuario que acabamos de agregar.

`$  FLUSH PRIVILEGES;`

Salga del símbolo del sistema de MySQL escribiendo.

`$  exit` 


## Descargamos e instalamos WordPress

```
$ wget -O /tmp/wordpress.tar.gz https://wordpress.org/latest.tar.gz

```

Descomprima el archivo descargado de WordPress.

`$ tar -xzvf /tmp/wordpress.tar.gz -C /var/www/html`

Cambie el permiso del directorio del sitio y revierta los cambios después de instalar WordPress.

```
# chown -R www-data.www-data /var/www/html/wordpress
# chmod -R 755 /var/www/html/wordpress
```

## Creacion de un host virtual Nginx


`$ nano /etc/nginx/conf.d/wordpress.conf`

Agreguamos el contenido al archivo wordpress.conf.

```
server {
        listen 80;
        listen [::]:80;
        root /var/www/html/wordpress;
        index index.php index.html index.htm;
        error_log /var/log/nginx/wordpress_error.log;
        access_log /var/log/nginx/wordpres_access.log;
        client_max_body_size 100M;
        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

```

Eliminamos el bloque de servidor predeterminado para habilitar su sitio web de WordPress.

```
$ rm /etc/nginx/sites-enabled/default
$ rm /etc/nginx/sites-available/default
```

A continuación, pruebamos para asegurarse de que no haya errores de sintaxis en ninguno de sus archivos Nginx.

`$ nginx -t`

Si no hay ningún problema, reiniciamos Nginx para habilitar sus cambios.

`$ systemctl reload nginx`


![status wordpress](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hwx5vwv3dqmqnhakoj4h.png)

! Felicidades tienes tu servidor wordpress !


Para probarlo y configurarlo.
Entra al navegador a tu ip del servidor o localhost 

o lo puedes hacer en el archivo wp-config-sample lo copias y le cambias el nombre a wp-config.php