Búsqueda de sitios web

Instale WordPress en Debian 11 con Apache y Let's Encrypt


WordPress es un sistema de gestión de contenidos basado en PHP, gratuito y de código abierto, ampliamente utilizado. Fue desarrollado por Matt Mullenweg y Mike Little en 2003. WordPress se puede instalar y utilizar en casi cualquier servicio de alojamiento web, lo que lo convierte en el CMS más fácil de instalar y utilizar. Además, con WordPress puedes crear un sitio web sin necesidad de conocimientos de programación.

Las características interesantes asociadas con WordPress CMS son:

  • Fácil de agregar editores de sitios web adicionales: agregue, edite o elimine fácilmente editores adicionales para brindarles a otros dentro de su organización la capacidad de administrar el contenido de su sitio web.
  • Programación de publicaciones flexible: las publicaciones se pueden programar para que se muestren en fechas y horas específicas posteriores, de modo que pueda crear contenido con anticipación y programarlo.
  • Restaurar páginas eliminadas y revertir versiones: restaure el contenido de la página eliminada antes de que se elimine permanentemente e incluso revierta el texto de la página a versiones anteriores utilizando funciones de control de versiones integradas.
  • Copias de seguridad automáticas: para evitar la pérdida de datos, se realizan copias de seguridad automáticas diarias a nivel del sitio, así como copias de seguridad completas.
  • Noticias integradas y publicaciones en blogs: utilice la gestión integrada de blogs y categorías de blogs para agregar, editar o eliminar fácilmente el contenido que necesite. Agregue artículos de noticias de forma continua directamente desde su navegador.
  • Seguridad administrada del sitio web: como parte de los servicios de alojamiento web administrados de WordPress, la seguridad, las copias de seguridad, las actualizaciones principales y las actualizaciones de WordPress están a cargo de usted.
  • Fácil de administrar: utilizando el intuitivo CMS de WordPress, puede iniciar sesión desde cualquier navegador moderno y realizar cambios en su sitio web sin conocimientos de programación.
  • Páginas, publicaciones y productos ilimitados: permite agregar imágenes, texto, archivos, enlaces e incrustar medios directamente en las áreas de contenido sin estar restringido en la cantidad de páginas, publicaciones o productos a puede agregar.
  • Estabilidad y confiabilidad: los complementos de terceros se revisan y prueban para ayudar a prevenir riesgos de seguridad y minimizar los impactos en el rendimiento de su sitio web.

Si sigue esta guía hasta el final, debería poder instalar WordPress en Debian 11 (Bullseye) con Apache y Let's Encrypt.

Empezando.

Es importante que el sistema y los paquetes disponibles se actualicen y actualicen antes de continuar. El comando utilizado para actualizar el sistema y sus paquetes es:

sudo apt update && sudo apt upgrade -y

Paso 1: instalar extensiones PHP

Dado que WordPress está basado en PHP, necesitamos instalar PHP y sus extensiones en Debian 11 (Bullseye).

El repositorio predeterminado proporciona PHP 7.4 que se puede instalar usando el comando:

sudo apt install php php-common php-mysql php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip

Puedes confirmar la versión de PHP con:

$ php -v
PHP 7.4.33 (cli) (built: Feb 22 2023 20:07:47) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

Para PHP 8.2 y sus extensiones, debe agregar un repositorio de terceros como se muestra a continuación:

sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Eliminar versiones antiguas de PHP:

sudo apt remove apache2 php php-common php-mysql php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip libapache2-mod-php

Una vez agregado, instale PHP 8.2 con el comando:

sudo apt update
sudo apt install apache2 php8.2 libapache2-mod-php8.2 php8.2-{common,mysql,gmp,curl,intl,mbstring,xmlrpc,gd,xml,cli,zip}

Confirme la versión de PHP:

$ php -v
PHP 8.2.6 (cli) (built: May 12 2023 07:48:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.6, Copyright (c), by Zend Technologies

Una vez instalado, debe configurar PHP para WordPress a continuación:

##For PHP7.4
sudo vim /etc/php/7.4/apache2/php.ini

##For PHP8.2
sudo vim /etc/php/8.2/apache2/php.ini

Edite el archivo como se muestra a continuación:

max_execution_time = 300
upload_max_filesize = 100M
post_max_size = 128M

Paso 2: instalar y configurar MariaDB

Se requiere una base de datos que sirva como almacenamiento para WordPress. Para esta guía, instalaremos la base de datos MariaDB en Debian 11.

sudo apt install -y mariadb-server mariadb-client

Inicie y habilite MariaDB.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Asegure la instalación de MariaDB.

$ sudo mysql_secure_installation
.....
Enter current password for root (enter for none): Just press Enter
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] 
New password: xxx << Enter Password
Re-enter new password: xxx << Re-Enter Password
.....
Remove anonymous users? [Y/n] y
....
Disallow root login remotely? [Y/n] y
.....
Remove test database and access to it? [Y/n] y
.....
Reload privilege tables now? [Y/n] y
....
Thanks for using MariaDB!

Ahora inicie sesión en el shell y cree una base de datos para WordPress.

sudo mysql -u root -p

Cree la base de datos y recuerde reemplazar las variables cuando sea necesario.

CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'Passw0rd';
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT

Paso 3: descargue WordPress en Debian

Ahora extraeremos el último archivo de WordPress usando el comando wget a continuación:

cd /tmp
wget https://wordpress.org/latest.tar.gz

Continúe y extraiga el archivo.

tar -xvzf latest.tar.gz

Mueva el archivo al directorio webroot.

sudo mv wordpress /var/www/html/wordpress

Establezca los permisos correctos para la ruta.

sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo chmod -R 755 /var/www/html/wordpress/

Paso 4: configurar el host virtual Apache para WordPress

Luego crearemos un archivo de host virtual para WordPress. Crea el archivo usando tu editor favorito:

sudo vim /etc/apache2/sites-available/wordpress.conf

El archivo contendrá las siguientes líneas:

<VirtualHost *:80>
   ServerName wordpress.example.com
   ServerAlias www.wordpress.example.com
   ServerAdmin [email 
   DocumentRoot /var/www/html/wordpress

   ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
   CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined


   <Directory /var/www/html/wordpress>
      Options FollowSymlinks
      AllowOverride All
      Require all granted
   </Directory>

</VirtualHost>

Recuerde reemplazar wordpress.example.com con su propio nombre de dominio. Guarde el archivo, habilite el sitio y active el módulo de reescritura.

sudo  a2dissite 000-default.conf
sudo a2ensite wordpress
sudo a2enmod rewrite ssl headers

Reinicie Apache para que se apliquen los cambios.

sudo systemctl restart apache2

Paso 5: acceda al instalador web de WordPress

Acceda al instalador web de WordPress utilizando la URL http://nombre_dominio. Seleccione el idioma preferido y continúe.

Haga clic en Vamos para continuar con la instalación.

Proporcione los detalles de la base de datos de WordPress creada.

Si la conexión se realiza, verá este mensaje.

Haga clic en Ejecutar la instalación y proceda a crear su sitio de WordPress y su cuenta de administrador.

Ejecute la instalación y, una vez completada, continúe e inicie sesión en el administrador de WordPress.

Paso 6: acceda y use WordPress en Debian 11 (Bullseye)

Inicie sesión en el panel de administración de WordPress proporcionando las credenciales de usuario creadas.

Una vez que haya iniciado sesión, verá el siguiente panel.

En este panel, puede realizar varias personalizaciones/configuraciones en su sitio web.

Para configurar el tema, el fondo, los widgets y personalizar su página, haga clic en apariencia.

También puede agregar los complementos que desee en la pestaña Complementos.

Cree y administre usuarios en WordPress en la pestaña Usuarios. Aquí puede crear usuarios y asignarles una función como suscriptor, autor, colaborador, editor o administrador.

Realice configuraciones en el sitio de WordPress en la pestaña configuración. La configuración general implica configurar el título del sitio, la URL del sitio, el eslogan del sitio, etc.

También puedes configurar el Permalink(enlace permanente) para tu sitio. Esto es muy importante ya que evita exponer el ID de publicación que en ocasiones puede cambiar cuando se accede desde un sistema diferente. El enlace permanente normalmente se obtiene del título de la publicación. Puedes configurar cómo quieres que aparezca el enlace permanente.

Una vez que se hayan guardado los ajustes realizados, continúe y cree una publicación de muestra. En la pestaña Publicaciones. Ya tenemos una publicación de muestra creada.

Cree uno nuevo haciendo clic en Agregar nuevo y proporcionando el contenido que necesita publicar.

Mientras escribe, puede guardar y obtener una vista previa del contenido. Una vez que haya completado la tarea y necesite publicarla como contenido en línea, haga clic en publicar.

El contenido publicado se puede ver mediante el enlace permanente. Alternativamente, visite el sitio usando la URL http://nombre_dominio.

Recuerde que la consola de administración se mueve a la URL http://domain_name/wp-admin una vez completada la instalación.

Paso 7: Asegure WordPress con Let's Encrypt

Let's Encrypt se utiliza para generar certificados confiables gratuitos para cualquier FQDN. Comience instalando las herramientas necesarias:

sudo apt install certbot python3-certbot-apache

Una vez que se haya instalado el paquete Certbot, continúe y genere certificados SSL usando el comando:

sudo certbot --apache

Proceda como se muestra:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): Enter a valid Email address here          

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: wordpress.example.com
2: www.wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Requesting a certificate for wordpress.example.com
Created an SSL vhost at /etc/apache2/sites-available/wordpress-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/wordpress-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/wordpress-le-ssl.conf
Redirecting vhost in /etc/apache2/sites-enabled/wordpress.conf to ssl vhost in /etc/apache2/sites-available/wordpress-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wordpress.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email ).

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wordpress.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wordpress.example.com/privkey.pem
   Your certificate will expire on 2022-07-18. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

¡Eso es! Ahora puede acceder a su sitio de WordPress a través de HTTPS.

¡Voilá!

Eso fue suficiente aprendizaje. Hemos instalado correctamente WordPress en Debian 11 (Bullseye) con Apache y Let's Encrypt. Espero que esto te haya resultado significativo.

  • Configure WordPress para usar Gmail usando WP Mail SMTP

Ver más:

  • Instalar y usar WPScan: escáner de seguridad de WordPress
  • Consejos de rendimiento de WordPress para el usuario cotidiano
  • Cómo configurar WordPress multisitio en Ubuntu
  • Los mejores libros para aprender sobre el desarrollo de WordPress