WordPress es, sin duda, la plataforma de blogs más utilizada del planeta. Pero la herramienta puede ser utilizada para mucho más que sólo bloguear. Con la adición correcta de extensiones, puede transformar WordPress en un sitio de comercio electrónico, un sitio multimedia y mucho más. Si tienes un servidor propio, puedes alojar una instalación de WordPress, sin tener que recurrir a un tercero. Y eso es exactamente lo que vamos a hacer aquí. En este tutorial, aprenderá a instalar los componentes necesarios así como la plataforma WordPress en Ubuntu Server 18.04. Esto sólo supondrá una cosa: que tiene el servidor Ubuntu en funcionamiento.
Índice de contenidos
Dependencias
Lo primero que hay que hacer es poner en marcha nuestro servidor LAMP (Linux Apache MySQL PHP). Como Ubuntu ya está allí, todo lo que hay que hacer es instalar los componentes secundarios. Como estamos usando Ubuntu, esto se puede hacer con un solo comando. Sin embargo, antes de hacerlo, queremos asegurarnos de que nuestro servidor está actualizado. Abra una ventana de terminal y emita los siguientes comandos:
sudo apt-get update
sudo apt-get upgrade
Si el kernel se actualiza en el proceso, será necesario reiniciar el sistema. Si ese es el caso, el servidor tendrá que ser reiniciado (para que los cambios surtan efecto). Esto significa que debe ejecutar la actualización/actualización en el momento en que un reinicio es viable.
Con la actualización/actualización fuera del camino, es hora de instalar los servidores web/base de datos y PHP. Esto se puede hacer con un solo comando:
sudo apt-get install lamp-server^
Durante la instalación, se le pedirá que cree/verifique una contraseña para el usuario administrador de MySQL. Cuando el proceso se completa, puede dirigir un navegador a http://SERVER_IP (donde SERVER_IP es la dirección IP de su servidor Ubuntu) para ver la pantalla de bienvenida de Apache.
A continuación tenemos que instalar algunas extensiones necesarias de PHP. Esto se puede hacer con el comando:
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Habilitación de SSL
Antes de entrar en la configuración de Apache y la instalación de WordPress, vamos a preparar nuestro servidor para usar SSL (Secure Sockets Layer), que son varios protocolos web que trabajan juntos para envolver el tráfico HTTP normal en una envoltura protegida y encriptada. Así que HTTP se convierte en HTTPS. Como sólo estoy configurando un servidor de pruebas, crearé un certificado SSL autofirmado para una dirección IP. Para ello, siga estos pasos.
Genere el certificado SSL con el siguiente comando:
sudo openssl req -x509 -nodos -días 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt>.
Cuando ejecute ese comando, se le pedirá que responda a las siguientes preguntas:
Nombre del país (código de 2 letras)[AU]:
Estado o provincia Nombre (nombre completo)[Some-State]:
Localidad Nombre (por ejemplo, ciudad) []:
Nombre de la organización (p. ej., empresa)[]
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>))Nombre de la unidad organizativa (p. ej., sección) []:
Nombre común (p.ej. servidor FQDN o SU nombre) []:
Dirección de correo electrónico []:
Es importante, para el certificado autofirmado, que introduzca la dirección IP de su servidor para la entrada Nombre común.
A continuación configuramos Apache para que use SSL. Cree un nuevo archivo con el comando:
sudo nano /etc/apache2/conf-available/ssl-params.conf
En ese nuevo archivo, pegue lo siguiente:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
>>>.Protocolo SSL Todos -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder Encendido
>.# Desactivar la precarga de HSTS por ahora. Puede utilizar la línea de encabezado comentada que incluye
.# la directiva «preload» si entiende las implicaciones.# El encabezado siempre establece Strict-Transport-Security «max-age=63072000; includeSubDomains; preload»
La cabecera siempre fija las opciones de X-Frame-Options DENY
>El encabezado siempre establece X-Content-Type-Options nosniff
# Requiere Apache>= 2.4
SSLCompresión apagado
SSLUseStapling on
SSLStaplingCache «shmcb:logs/stapling-cache(150000)»
# Requiere Apache>= 2.4.11
SSLSessionTickets OffGuardar y cerrar ese archivo.
Ahora vamos a crear un nuevo archivo defaultssl.conf. Antes de hacerlo, haga una copia de seguridad del original con el comando:
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
Cree el nuevo archivo con el comando:
sudo nano /etc/apache2/sites-available/default-ssl.conf
En ese nuevo archivo, pegue lo siguiente:
ServerAdmin YOUR_EMAIL
>ServerAdmin YOUR_EMAIL
ServerAdmin YOUR_EMAIL
Nombre del servidor SERVER_IP
> Nombre del servidorDocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinado
SSLEngine on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>))SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
SSLOptions +StdEnvVars
DIFUNDE LA PALABRA-DIFUNDE LA PALABRA-SSLOptions +StdEnvVars
Subtítulos por aRGENTeaMDIFUNDE LA PALABRA-Donde SERVER_IP es la dirección IP de su servidor y YOUR_EMAIL es su dirección de correo electrónico.Guarde y cierre ese archivo.
Ahora vamos a configurar una redirección para que todo el tráfico HTTP se redirija automáticamente a HTTPS. Para ello, cree un nuevo archivo con el comando:
sudo nano /etc/apache2/sites-available/000-default.conf
En ese archivo, agregue la siguiente línea bajo la entrada DocumentRoot:
Redirect "/" "https://SERVER_IP/"
Donde SERVER_IP es la dirección IP de su servidor.
Guarde y cierre ese archivo.
A continuación necesitamos habilitar algunos módulos y hosts con los comandos:
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite defaultssl
sudo a2enconf ssl-params
Finalmente, reinicie Apache con el comando:
sudo systemctl restart apache2
Ahora debería poder dirigir su navegador a https://SERVER_IP (donde SERVER_IP es la dirección IP de su servidor) y seguir viendo la pantalla de bienvenida de Apache.
La base de datos
WordPress depende de una base de datos para funcionar. Para crear esto, primero debe iniciar sesión en el indicador de MySQL con el comando:
mysql -u root -p
Se le pedirá la contraseña de usuario del administrador MySQL que creó durante la instalación del servidor LAMP. En el símbolo del sistema MySQL, cree la base de datos con el comando:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
A continuación, cree un nuevo usuario y concédale permiso para acceder a la base de datos con el comando:
Pre data-type=»code»>CONCEDER TODO EN wordpress.* A’wordpressuser’@’localhost’ IDENTIFICADO POR <'PASSWORD';>.
Donde PASSWORD es una contraseña única y segura.
Limpie los privilegios de la base de datos y salga con los comandos:
FLUSH PRIVILEGES;
EXIT
> EXIT
Permitir el acceso al.htaccess y habilitar el módulo de reescritura
Necesitamos habilitar .htaccess para WordPress. Para ello, cree un nuevo archivo de configuración de Apache con el comando:
sudo nano /etc/apache2/sites-available/wordpress.conf
En ese archivo pegue lo siguiente:
AllowOverride All
DIFUNDE LA PALABRA-Habilite el módulo de reescritura con el comando:
sudo a2enmod reescribir
Reinicie Apache con el comando:
sudo systemctl restart apache2
Descargar, descomprimir y preparar WordPress
Vamos a descargar el archivo oficial de WordPress con los siguientes comandos:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
Desempaquetar WordPress con el comando:
tar xvzf latest.tar.gz
Cree un archivo dummy.htaccess con el comando:
touch /tmp/wordpress/.htaccess
Copie el archivo de configuración de ejemplo al archivo de configuración necesario con el comando:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Cree un directorio de actualización (para evitar problemas de permisos) con el comando:
mkdir /tmp/wordpress/wp-content/upgrade
Copie el contenido del directorio wordpress en la raíz del documento con el comando:
sudo cp -a /tmp/wordpress/. /var/www/html/wordpress
Finalmente, ajuste la propiedad y los permisos del directorio wordpress recién movido con los comandos:
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;
Configuración de WordPress
Esta sección se complica un poco. El archivo wp-config.php necesita ser editado, pero antes de que eso se pueda hacer, usted debe descargar claves secretas únicas para ser agregadas al archivo de configuración. Para obtener esas llaves, emita el comando:
Esto producirá un número de cadenas largas, cada una asociada con una opción de configuración específica. Cada cadena está asociada con los siguientes valores en el archivo de configuración:
AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
LLAVE_NONCE
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT
Copie esos valores en otro archivo. Luego abra el archivo de configuración de WordPress con el comando:
sudo nano /var/www/wordpress/wp-config.php
Localiza los valores anteriores y pega la clave secreta de cada uno. Después de eso, desplácese hacia arriba y edite los valores de:
DB_NAME
DB_USER
DB_PASSWORD
Los valores anteriores se crearon antes (con MySQL).
Guarde y cierre ese archivo.
Completar la instalación
Ahora puede dirigir su navegador a https://SERVER_IP/wordpress y recorrer el instalador basado en web para completar la instalación. Después de un par de clics