Instalando Wordpress en nginx
Instalación de LEMP Stack
LEMP hace referencia a Linux + EngineX + MySQL + PHP
1. Actualizamos el sistema:
sudo apt update
sudo apt upgrade
2. Instalación de Nginx:
sudo apt install nginx
3. Instalación de MySQL (MariaDB):
sudo apt install mariadb-server
sudo mysql_secure_installation
Sigue las instrucciones para configurar la seguridad de la base de datos y establecer una contraseña para el usuario root de MySQL.
4. Instalación de PHP y extensiones:
sudo apt install php-fpm php-mysql
5. Configuración de Nginx para PHP:
Crea un archivo de configuración para tu sitio en Nginx:
sudo nano /etc/nginx/sites-available/alexwp.org
Ejemplo de configuración básica para un servidor PHP:
server {
listen 80;
server_name alexwp.org www.alexwp.org;
root /var/www/alexwp;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
# manejo de php
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; #Ajusta según tu versión de PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#negacion de acceso a archivos .ht
location ~ /\.ht {
deny all;
}
}
Las configuraciones antes vistas son directivas de manejo de php, vamos a desglosarlo:
location ~ \.php$
: Esta directiva de ubicación utiliza una expresión regular para coincidir con las solicitudes que terminan en ".php".include snippets/fastcgi-php.conf;
: Incluye un archivo de configuración específico para FastCGI y PHP.fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
: Especifica la ubicación del socket FastCGI para comunicarse con el servidor PHP-FPM.fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
: Establece el parámetroSCRIPT_FILENAME
para indicar la ruta del script PHP a ejecutar.include fastcgi_params;
: Incluye otros parámetros FastCGI necesarios para la comunicación con el servidor PHP-FPM.
Las que hay a continuación, son directivas de seguridad para la negación de acceso a archivos .ht:
location ~ /\.ht
: Esta directiva de ubicación utiliza una expresión regular para coincidir con cualquier archivo cuyo nombre comience con ".ht". En servidores web como Apache, los archivos.htaccess
y otros archivos que comienzan con ".ht" a menudo contienen configuraciones sensibles del servidor web.deny all;
: Niega el acceso a estos archivos, lo que significa que cualquier intento de acceder a un archivo que cumpla con la expresión regular será bloqueado y recibirá un código de estado de acceso denegado (403 Forbidden).
Crea un enlace simbólico para habilitar el sitio:
sudo ln -s /etc/nginx/sites-available/alexwp.org /etc/nginx/sites-enabled/
Creamos la carpeta donde guardaremos todos los archivos web y que ya hemos referenciado anteriormente.
sudo mkdir /var/www/alexwp
Elimina el archivo de configuración predeterminado si no lo necesitas:
sudo rm /etc/nginx/sites-enabled/default
Verificamos la configuración:
sudo nginx -t
Reiniciamos Nginx:
sudo service nginx restart
Instalación de WordPress:
1. Descargamos e instalamos WordPress:
sudo su
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo cp -R wordpress/* /var/www/alexwp
2. Configuración de la base de datos para WordPress:
sudo mysql -u root -p
En MySQL, crea una base de datos (alexwp
) y un usuario (alex
) para WordPress:
CREATE DATABASE alexwp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'alex'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON alexwp.* TO 'alex'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. Configuración de WordPress:
Copia el archivo de configuración de ejemplo que vamos a modificar:
cd /var/www/alexwp
sudo cp wp-config-sample.php wp-config.php
Vamos a editar el archivo de configuración y realizar los cambios necesarios:
sudo nano /var/www/alexwp/wp-config.php
Busca las líneas en el archivo relacionadas con la configuración de la base de datos y actualízalas con la información de tu base de datos:
// Database configuration
define('DB_NAME', 'alexwp');
define('DB_USER', 'alex');
define('DB_PASSWORD', 'P@ssw0rd');
define('DB_HOST', 'localhost');
En nuestro caso la base de datos está en el mismo servidor por lo que ponemos "localhost
".
Ahora puedes generar nuevas Secret keys y Salts de seguridad en el generador oficial de WordPress y reemplazar las líneas existentes en tu archivo wp-config.php
:
define('AUTH_KEY', 'pon_aqui_tu_clave');
define('SECURE_AUTH_KEY', 'pon_aqui_tu_clave');
define('LOGGED_IN_KEY', 'pon_aqui_tu_clave');
define('NONCE_KEY', 'pon_aqui_tu_clave');
define('AUTH_SALT', 'pon_aqui_tu_clave');
define('SECURE_AUTH_SALT', 'pon_aqui_tu_clave');
define('LOGGED_IN_SALT', 'pon_aqui_tu_clave');
define('NONCE_SALT', 'pon_aqui_tu_clave');
4. Ajustes de permisos:
Asegúrate de que el servidor web tiene permisos para acceder y escribir en los directorios relevantes:
sudo chown -R www-data:www-data /var/www/alexwp
5. Finalizar la instalación a través del navegador:
Accede a tu dominio o dirección IP en un navegador y sigue el asistente de instalación de WordPress.
Completa los detalles del sitio y la información de administrador.
Haz clic en "Instalar WordPress".
Última actualización