GNU/Linux >> Tutoriales Linux >  >> Debian

Instale WordPress 5 con Apache en Debian 9

Este tutorial le mostrará cómo instalar y configurar la última versión de WordPress 5 sobre una pila LAMP en Debian 9 - Stretch. Wordpress, sin duda, es uno de los sistemas de administración de contenido o CMS de código abierto más populares que se utilizan en estos días para la publicación en Internet, que impulsa a más de 60 millones de sitios web en todo el mundo, ya sean pequeños sitios de blogs o grandes marcas notables. Basado en el motor PHP y MySQL, Wordpress a menudo se asocia con la colección LAMP, ya sea instalada en servidores dedicados o servidores privados virtuales o en proveedores de alojamiento web compartido. El acrónimo LAMP describe una colección de software, también conocido como paquete de software, que generalmente consta de Linux Kernel de código abierto, independientemente de la distribución elegida, Apache Servidor HTTP, que es uno de los servidores web de código abierto más populares en Internet debido a su estabilidad, flexibilidad y rendimiento, PHP lenguaje de programación interpretado del lado del servidor y MariaDB sistema de gestión de base de datos relacional (RDBMS), que es uno de los software de base de datos más populares, bifurcado y desarrollado simultáneamente por la comunidad de código abierto a partir de MySQL original.

Requisitos

  • Una instalación limpia del sistema operativo Debian 9 en un servidor privado virtual o una máquina virtual o directamente en una máquina completa dedicada.
  • Acceso remoto SSH en caso de un VPS o un servidor remoto o acceso directo a la consola
  • Al menos una dirección IP estática para una interfaz de red configurada en el servidor
  • En caso de que la página web esté disponible públicamente en Internet, necesitará un nombre de dominio público registrado con los registros DNS adecuados configurados. Durante este tutorial, usaremos example.com  como dominio de ejemplo y una dirección IP estática desde un espacio privado, en NAT, detrás del enrutador principal. Se podrá acceder al dominio desde Internet mediante el reenvío de puertos Apache 80 y 443 desde el lado del enrutador a la LAN interna de la máquina virtual autohospedada.

Instalar paquete de software LAMP

Lo primero que debe hacer antes de comenzar a instalar todos los componentes LAMP es iniciar sesión en el servidor Debian 9 y realizar un procedimiento actualizado para todos los componentes del sistema, como actualizaciones del kernel, actualizaciones de paquetes o parches de seguridad, emitiendo el siguientes comandos con privilegios de root.

apt-get update
apt-get upgrade
apt-get dist-upgrade

En el siguiente paso, debe configurar el nombre de su máquina reemplazando la variable de nombre de host con su propio nombre descriptivo ejecutando el siguiente comando. Tenga en cuenta que es posible que deba reiniciar el sistema para aplicar el nuevo nombre de host en consecuencia.

hostnamectl set-hostname hostname.yourdomain.com

También debe instalar las siguientes utilidades que serán útiles más adelante para solucionar varios problemas.

apt install net-tools sudo wget curl bash-completion

Después de que se haya aplicado el nombre de host de la máquina, vuelva a iniciar sesión con privilegios de root e instale el servidor Apache HTTP, que, de forma predeterminada, está precompilado en un paquete binario y lo proporcionan los repositorios de Debian 9.

apt install apache2

A continuación, instale la última versión del intérprete de lenguaje PHP y todos los módulos necesarios para el servidor web Apache para implementar Wordpress CMS emitiendo el siguiente comando.

apt install libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc

El último componente que falta ahora para que la pila LAMP esté completa es el servidor de base de datos MariaDB. Ejecute el siguiente comando para instalar el servidor MariaDB junto con el módulo PHP necesario para acceder a la base de datos desde el servidor Apache HTTP.

apt install php7.0-mysql mariadb-server mariadb-client

Después de instalar la base de datos MariaDB, inicie el demonio y asegure la base de datos ejecutando mysql_secure_installation guión como se ilustra en el siguiente extracto. Responda principalmente con en todas las preguntas que le pide el guión. Además, asegúrese de elegir una contraseña segura para la cuenta raíz. Tenga en cuenta que la cuenta raíz de MySQL no es idéntica a la cuenta raíz de Linux. El primero se usa solo para administrar la base de datos MariaDB y el segundo es la cuenta de superusuario en todos los sistemas Linux. Estas cuentas nunca se superponen en un sistema.

systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Aún no hemos terminado de asegurar la base de datos MariaDB. De forma predeterminada, puede iniciar sesión en MariaDB desde localhost con la cuenta raíz de la base de datos sin que se le solicite una contraseña. Para evitar posibles problemas de seguridad, inicie sesión en la base de datos con el usuario root y emita los siguientes comandos.

mysql -u root -p
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

 

Ahora, pruebe la base de datos intentando iniciar sesión con root cuenta sin la contraseña. Se le debe negar el acceso a la base de datos MariaDB.

En el siguiente paso, habilitaremos y configuraremos TLS y reescribiremos los módulos para el servidor web Apache, que por defecto están deshabilitados. Ejecute los siguientes comandos para habilitar ambos módulos.

a2enmod rewrite ssl
a2ensite default-ssl.conf

Luego, abra los archivos de configuración de Apache para ambos sitios habilitados y agregue el siguiente bloque debajo de DocumentRoot directiva como se ilustra en la siguiente captura de pantalla.

nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

En ambos archivos de configuración, agregue el siguiente bloque de código:

    <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory>

En apache default-ssl.conf Archivo de configuración TLS, también puede agregar el siguiente contenido, si no existe, para mejorar la seguridad del protocolo Apache SSL. Estas líneas de código deberían solucionar las vulnerabilidades comunes de SSL.

SSLProtocol all -SSLv2 -SSLv3
# Add SSL Cipher in one long line
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire
 
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

Si las líneas ilustradas en el extracto anterior ya existen en el archivo de configuración de Apache SSL, asegúrese de modificarlas para que se vean como se describe arriba. Para aplicar esta configuración, habilite los encabezados de Apache module y reinicie el servicio ejecutando los siguientes comandos:

a2enmod headers
systemctl restart apache2.service

Para un sitio web de producción, debería ser obligatorio habilitar el módulo Apache TLS porque WordPress CMS genera principalmente contenido dinámico a través de la puerta de enlace PHP y también maneja el proceso de autenticación para sus usuarios internos. El uso de la tecnología TLS garantiza que la información transferida esté encriptada en ambos extremos y que la conexión sea segura. Un tercero o un man-in-the-middle puede interceptar el tráfico, pero no puede descifrar el contenido, porque la información no se entrega en texto sin formato.

Después de realizar todos los cambios anteriores, pruebe la configuración de Apache para detectar posibles errores de sintaxis y, si todo está bien, reinicie los demonios LAMP para reflejar todos los cambios realizados hasta el momento y habilite los servicios en todo el sistema emitiendo los siguientes comandos. .

apache2ctl -t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

Finalmente, verifique si los servicios Apache y MariaDB han abierto puertos en estado de escucha emitiendo netstat comando y filtre la salida usando egrep A estas alturas, el servidor web Apache debería tener los puertos 80 y 443 (correspondientes a los protocolos HTTP y https) generalmente expuestos y MariaDB solo debería vincularse a localhost:3306 enchufe. Usa la -n bandera contra netstat Comando para suprimir la visualización de nombres de servicios.

netstat -tlp| egrep 'http|mysql'

 

Para asegurarse de que su servidor web sea accesible desde Internet a través de los protocolos HTTP y HTTPS, abra un navegador y navegue hasta su nombre de dominio. Navegando a través del protocolo HTTPS, se mostrará un error de certificado en el navegador. Esto se debe a que el archivo de configuración TLS predeterminado de Apache está configurado para usar certificados autofirmados. Debe aceptar el error de TLS y continuar navegando a la página web predeterminada como se ilustra a continuación.

http://www.tudominio.com 

https://www.tudominio.com 

En caso de que no pueda visitar la página web predeterminada de su dominio desde Internet, primero debe verificar si algunas reglas de firewall en el sistema están bloqueando las solicitudes o asegurarse de que los puertos adecuados en el enrutador se reenvíen a su LAN interna en caso de que el servidor se encuentre detrás de un red NAT-ed. También es posible que desee verificar los registros DNS en el panel de registro de su dominio y asegurarse de que apunten a su IP WAN y si los registros terminaron de propagarse en Internet.

Para probar si PHP está funcionando como se esperaba en el lado del servidor, cree un PHP php en /var/www/html/ ruta del sistema, que es la ruta raíz del documento web predeterminado del servidor web Apache, emita el siguiente comando y navegue hasta el siguiente URI desde el navegador para obtener el resultado:http://www.yourdomain.com/info .php

echo '<?php phpinfo(); ?>' > /var/www/html/info.php

 

Instalar WordPress 5.0

Ahora que la pila LAMP está completamente configurada, la instalación de Wordpress CMS es relativamente sencilla. Primero, inicie sesión en la base de datos MariaDB y cree una base de datos de instalación para Wordpress y un usuario con la contraseña adecuada para instalar y administrar Wordpress CMS, emitiendo los siguientes comandos. Siéntase libre de reemplazar el nombre de la base de datos y las credenciales de la base de datos para que coincidan con sus propios requisitos.

mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

A continuación, descargue el último tarball de Wordpress desde el sitio web oficial usando wget utilidad y extraiga el archivo comprimido con tar utilidad. Copie los archivos de instalación en la ruta raíz del documento del servidor web Apache emitiendo los siguientes comandos. Además, asegúrese de eliminar el index.html predeterminado. página web.

cd /tmp
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

 

Modifique los permisos de la ruta webroot de Apache como se describe a continuación para otorgar al servidor web www-data permisos completos de escritura del grupo en el directorio de instalación. Esta configuración permitirá que el servidor web Apache cree o modifique archivos y directorios en esta ruta específica del sistema. Las más importantes serían las cargas directorio y .htaccess archivo, que se puede utilizar para controlar y ampliar la funcionalidad de Apache.

chmod -R 775 /var/www/html/
chgrp -R www-data /var/www/html/
ls -al /var/www/html

Ahora que todo está en su lugar, comencemos a instalar Wordpress. El proceso de instalación se realizará desde el navegador. Abra un navegador y visite su dominio a través del protocolo HTTPS. En la primera pantalla de la instalación, presione Vamos botón para iniciar la instalación.

En la siguiente pantalla de instalación, agregue el nombre de la base de datos, las credenciales de acceso a la base de datos y el host de la base de datos que creó anteriormente para la instalación de Wordpress y presione Enviar. botón para continuar. La configuración de la base de datos se guardará en /var/www/html/wp-config.php Puede modificar manualmente el archivo en una fecha posterior para fines especiales de Wordpress.

En la siguiente pantalla, haga clic en Ejecutar la instalación y complete el título de su sitio web, las credenciales de administrador del sitio web y la dirección de correo electrónico. Los scripts de instalación deben generar automáticamente una contraseña segura. Puede optar por guardar esta contraseña o proporcionar su propia contraseña segura. Cuando haya terminado, haga clic en Instalar Wordpress botón para completar el proceso de instalación.

Finalmente, después de que la instalación se complete con éxito, inicie sesión al panel de Wordpress con las credenciales creadas durante el proceso de instalación y comience a administrar su propio sitio web.

Inicie sesión en el backend de WordPress.

Panel de administración de WordPress.

Editar una publicación en el nuevo editor Gutenberg de WordPress.

Wordpress 5.0 Frontend con el nuevo tema TwentyNineteen.

¡Felicidades! Ha instalado con éxito la última versión de Wordpress CMS además del paquete de software LAMP en Debian 9, nombre en clave Stretch.

Descarga de imagen de máquina virtual de este tutorial

Este tutorial está disponible como una imagen de máquina virtual lista para usar en formato ovf/ova que es compatible con VMWare y Virtualbox. La imagen de la máquina virtual utiliza los siguientes detalles de inicio de sesión:

Inicio de sesión SSH/Shell

Nombre de usuario:administrador
Contraseña:howtoforge

Este usuario tiene sus derechos.

Nombre de usuario: root
Contraseña:howtoforge

Inicio de sesión de WordPress

Nombre de usuario:admin
Contraseña:howtoforge

Inicio de sesión de MySQL

Nombre de usuario: root
Contraseña:howtoforge

La IP de la VM es 192.168.1.100, se puede cambiar en el archivo /etc/network/interfaces. Cambie todas las contraseñas anteriores para proteger la máquina virtual.


Debian
  1. Instalar WordPress con base de datos remota en Debian

  2. Instalar Apache Cassandra en Debian 7

  3. Instalar Cockpit en Debian 9

  4. Cómo instalar WordPress con Nginx en Debian 10

  5. Instalar WordPress en Linux con Apache

Cómo instalar Nginx con PHP-FPM en Debian 11

Cómo instalar Apache en Debian 7

Cómo instalar Apache en Debian 8.2

Cómo instalar WordPress en un servidor en la nube Debian 8.2

Cómo instalar WordPress en CentOS 7.1 con Apache

Cómo instalar WordPress con LAMP en Debian 10