GNU/Linux >> Tutoriales Linux >  >> Linux

Instalar WordPress en Linux con Apache

Este artículo explica cómo instalar WordPress® en un servidor web Linux® con Apache®.

WordPress, una popular herramienta de blogs de código abierto, utiliza PHP y MySQL® para administrar el contenido y la interfaz del sitio.

Importante :Rackspace Support no es compatible con la configuración de WordPress. Este artículo brinda pasos como una solución de mejor esfuerzo, pero sus desarrolladores deben revisarlos minuciosamente antes de implementarlos para evitar tiempos de inactividad inesperados.

Requisitos

Ejecute todos los comandos como usuario no root con sudo privilegios.

Para esta instalación, instale una pila LAMP en el servidor. LAMP incluye Linux®, Apache, MySQL y PHP). Si ya los tiene instalados, continúe con la siguiente sección. De lo contrario, consulte nuestro artículo sobre cómo instalar una pila LAMP en distribuciones basadas en RHEL 7.

Crea una base de datos MySQL y un usuario para WordPress

Como se mencionó anteriormente, WordPress utiliza una base de datos relacional para administrar el contenido. Este ejemplo usa MariaDB, instalada previamente, para crear un usuario y una base de datos para que WordPress la use. Realice los siguientes pasos para crear una base de datos y un usuario de WordPress:

  1. Ejecute el siguiente comando para iniciar sesión en MySQL con el usuario raíz:
$ mysql -u root -p
  1. Cree la base de datos llamada wpdatabase . Recuerde, todas las instrucciones de MySQL deben terminar con un punto y coma (; ):
CREATE DATABASE wpdatabase;
  1. Cree un usuario, que WordPress usa para trabajar en esta base de datos. Establecer el usuario como wpuser con contraseña password :
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
  1. Otorgue al usuario los permisos para administrar toda la base de datos:
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. Salga de la interfaz de MySQL:
exit

Este procedimiento completa los requisitos de WordPress MySQL. No es necesario que cree una base de datos y un usuario específicos para WordPress, pero lo recomendamos encarecidamente por seguridad.

Instalar WordPress

Realice los siguientes pasos para instalar WordPress:

  1. Ejecute los siguientes comandos para instalar los paquetes PHP que permiten a WordPress cambiar el tamaño de las imágenes en miniatura y permitir que la base de datos MySQL acceda a las funciones necesarias:
$ sudo yum install php74-gd php74-mysqlnd
$ sudo service httpd restart
  1. Descargue la última versión de WordPress en el directorio principal de su servidor:
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
  1. Extraiga todos los archivos de la carpeta comprimida:
$ tar xzvf latest.tar.gz

Este comando crea un directorio llamado wordpress en su directorio de inicio que contiene todos los archivos que WordPress necesita para funcionar correctamente.

  1. Ejecute el siguiente comando para copiar el wordpress directorio a /var/www/html , que contiene todos los archivos de la página web, y conserva los permisos predeterminados:
$ sudo mv ~/wordpress/ /var/www/html/example.com
  1. Cree una carpeta donde WordPress pueda almacenar todos los archivos cargados:
$ mkdir /var/www/html/example.com/wp-content/uploads
  1. Los pasos anteriores crean una página de ejemplo de WordPress en su servidor web. Sin embargo, para que funcione sin problemas, debe cambiar la propiedad de los archivos a su usuario de FTP o al usuario y grupo de Apache para que WordPress pueda acceder a todos los archivos con los permisos adecuados. Ejecute el siguiente comando:
$ sudo chown -R FTP_USER:apache /var/www/html/example.com

Configurar WordPress

Aunque completa la mayor parte de la configuración a través de una interfaz gráfica (GUI) en la página web, debe realizar algunos cambios de configuración en el servidor. Realice los siguientes pasos para configurar el servidor:

  1. Cambie a la carpeta donde se encuentran todos los archivos web:
$ cd /var/www/html
  1. Porque WordPress necesita un archivo de configuración llamado wp-config.php , que no existe, ejecute el siguiente comando para copiar el archivo de muestra y cambiarle el nombre:
$ sudo cp wp-config-sample.php wp-config.php
  1. Edite el archivo de configuración con el editor de texto como nano o vi. Este ejemplo usa vi :
$ sudo vi wp-config.php
  1. Especifique la información de la base de datos en la configuración de MySQL sección. Ingrese el nombre de la base de datos y las credenciales de usuario definidas en Crear una base de datos MySQL y un usuario para WordPress sección, similar al siguiente ejemplo:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Asegurar WordPress

Cambiando permisos de archivo

Según la documentación de WordPress, cambiar los permisos de archivo en la raíz del documento de su sitio web aumentará la seguridad en su sitio web.

$ find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
$ find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Dentro de su configuración de vHost o dentro del .htaccess, puede colocar el siguiente bloque para evitar que ningún usuario acceda a los scripts.

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress

Deshabilitar la ejecución de PHP en el directorio de cargas

Cuando un sitio de Wordpress se ve comprometido, a menudo hay puertas traseras cargadas en directorios grabables que se disfrazan como archivos legítimos de Wordpress. Un paso que puede tomar para agregar a su estrategia de seguridad existente es deshabilitar la ejecución de PHP en ciertos directorios.

Uno de los más comunes es deshabilitar la ejecución de PHP dentro del directorio wp-content/uploads. Esto se puede realizar de la siguiente manera:

$ vim /var/www/vhosts/example.com/wp-content/uploads/.htaccess
[...]
# Prevent PHP execution
<Files *.php>
deny from all
</Files>
[...]

ADVERTENCIA: Esto puede romper su tema si requiere la ejecución de PHP dentro del directorio wp-content/uploads. Si encuentra que algo falla, simplemente deshaga el cambio y el sitio comenzará a funcionar nuevamente.

Bloquear ataques xmlrpc.php

Wordpress usa XML-RPC para ejecutar funciones de forma remota dentro de Wordpress. A menudo, las partes maliciosas intentarán explotar xmlrpc.php por fuerza bruta, lo que puede enviar miles de solicitudes al servidor web y, por lo tanto, causar problemas de contención de recursos.

Se puede detectar un ataque xmlrpc.php revisando los registros de acceso del sitio. Si ve cientos o miles de solicitudes en un corto período de tiempo que se parecen a lo que se muestra a continuación, es una señal de que xmlrpc.php está siendo atacado:

$ tail /var/log/httpd/example.com-access.log
[...]
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:03 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[...]

Puede mitigar los ataques de fuerza bruta de xmlrpc.php en Apache colocando lo siguiente en el archivo .htaccess:

$ vim /var/www/vhosts/example.com/.htaccess
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

Forzar SSL en los inicios de sesión de wp-admin

$ vim /var/www/vhosts/example.com/wp-config.php
[...]
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* That's all, stop editing! Happy blogging. */
[...]

Complete la configuración en la GUI

Ahora puede acceder a su página de WordPress navegando a http:// . Introduzca el idioma de instalación, la información del sitio y el usuario para acceder al portal del administrador cuando se le solicite. Después de finalizar esta configuración, el sistema lo redirige al panel principal de WordPress.

Para acceder a este panel en cualquier momento, vaya a http:///wp-login.php o http:///wp-login.php .

Conclusión

WordPress es un sistema de gestión de contenido (CMS) muy intuitivo que le permite configurar una página web de blog, de forma rápida y gratuita. Después de completar los pasos de este artículo, puede comenzar a usar su sitio de WordPress.


Linux
  1. Instale phpMyAdmin en Ubuntu 20.04 con Apache

  2. Instale phpMyAdmin en Ubuntu 22.04 con Apache

  3. Instalar WordPress con Docker Compose, Nginx, Apache con SSL

  4. Instale Apache 2 desde la fuente en Linux

  5. Cómo instalar Apache 2 con SSL en Linux (con mod_ssl, openssl)

Instale WordPress 4.0 con Nginx 1.6 en Linux Mint 17

Cómo instalar WordPress con Apache en Ubuntu 20.04

Instalar WordPress con Nginx en Ubuntu 18.04

Cómo instalar WordPress en CentOS 7.1 con Apache

Instale WonderCMS en Rocky Linux 8

Instalar Windows 10 en Linux con VirtualBox