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
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
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 sí 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!
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
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.
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
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.