Hosting

Guía para Instalar WordPress en Linux (1)

20/10/2017

Muchas compañías de alojamiento web tienen la opción de instalar WordPress de forma automática pulsando un botón. Pero para esas compañías que no ofrecen esa opción, vamos a hacer un turorial para instalar WordPress en Linux manualmente.

Además, vamos a poner un resumen de los comandos que hay que introducir en Linux para instalarlo. También vamos a dejar un script en bash que realiza la instalación.

Instalar WordPress en Linux (Ubuntu 16.04)

Hay muchas formas de instalar WordPress en Linux, aunque en este tutorial nos vamos a centrar en instalarlo a mano en Ubuntu. Además en localhost (para instalarlo en un servidor externo debemos seguir los mismos pasos, pero debemos conectarnos a él primero por medio de SSH).

Instalar servicios

Antes de nada, nos conectamos como 'root' (escribimos sudo su e introducimos la contraseña, si la tiene). Ahora vamos a actualizar los paquetes.

apt-get update

Ahora vamos a instalar nuestro servidor web (en nuestro caso es Apache2).

apt-get install apache2

Tras esto, vamos a instalar mysql-server. Se nos pedirá una contraseña para el usuario 'root', y esta contraseña la necesitamos para acceder a la base de datos, por lo que debemos recordarla.

apt-get install mysql-server

Instalamos los paquetes necesarios de php.

apt-get install php php-mysql

Preparar base de datos para WordPress

Ahora accedemos a la base de datos. Recordad que debeis introducir la contraseña elegida al instalar mysql-server; la contraseña la ponemos a continuación de -p, sin espacios. Nosotros hemos elegido 'root' por comodidad, pero en una instalación real debe ser más compleja.

mysql -u root -proot

Lo siguiente es crear la base de datos. La hemos llamado 'wordpress' para que quede claro qué base de datos es, pero por seguridad es mejor ponerle un nombre distinto. Creamos un usuario con privilegios totales sobre la base de datos. Nosotros hemos elegido 'user' como nombre de usuario y contraseña, pero por motivos de seguridad deberíamos elegir otro nombre de usuario, que no sean los típicos 'user', 'admin', etc. y la contrasñea desde luego que no sea una tan sencilla

create database wordpress;
grant all privileges on wordpress.* to 'user'@'localhost' identified by 'user';
flush privileges;

A esta base de datos sólo tiene acceso el usuario 'user' con el host 'localhost', es decir, que aunque conozcas la contraseña no podrás acceder desde fuera a la base de datos. El usuario en realidad es 'user@localhost', es decir, que podrías crear en usuario 'user@tu_IP' y no habría conflicto, puesto que sería otro usuario distinto.

Preparar ficheros de WordPress

Tras la creación de la base de datos, vamos a descargar la última versión de WordPress.

wget https://es.wordpress.org/wordpress-latest-es_ES.tar.gz

Extraemos el contenido.
tar -xzvf wordpress-latest-es_ES.tar.gz

Tras extraer el contenido, tenemos el directorio wordpress. A continuación vamos a borrar el paquete que acabamos de descargar. Este paso no es necesario, pero así ahorramos algo de espacio en el disco duro.
rm wordpress-latest-es_ES.tar.gz

El siguiente paso es mover el directorio de WordPress a la ruta que sirve el servidor web. Por defecto, apache sirve /var/www/html/.
mv wordpress /var/www/html/

Lo siguiente que vamos a hacer es permitir que WordPress se pueda conectar a la base de datos que hemos creado. Para eso, primero vamos a copiar el fichero de configuración de muestra que trae WordPress, renombraremos esta copia a 'wp-config.php' y modificaremos este fichero para que se pueda realizar la conexión a la base de datos.

cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
nano wp-config.php

Editamos el fichero 'wp-config.php', e indicamos a qué base de datos se tiene que conectar, con qué usuario y contraseña. Los valores que cambiaremos se encuentran en las líneas 'DB_NAME', 'DB_USER' y 'DB_PASSWORD', el resto los dejamos como están.

Configurar wp-config.php

Cambiamos el propietario del directorio 'wordpress'.

chown -R www-data:www-data .

Configurar apache2

Creamos el sitio virtual para WordPress en Apache.

cd /etc/apache2/sites-available
cp 000-default.conf wordpress.conf
nano wordpress.conf

Entonces puedes editar el fichero como quieras. Por ejemplo:

<VirtualHost *:80>
ServerName donwordpress.com
DocumentRoot /var/www/html/wordpress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Aquí podemos cambiar la IP por la que escucha apache ('*'), el puerto ('80'), el nombre del servidor, el directorio que sirve apache (DocumentRoot) y los ficheros donde se almacenan los logs de acceso y de error del host virtual.

Ahora vamos a habilitar el host virtual para nuestro sitio.

a2ensite wordpress.conf
a2dissite 000-default.conf
systemctl restart apache2

Continuar con la instalación desde el navegador

Ya hemos terminado con los comandos del sistema, ahora abrimos un navegador e introducimos la ip en la que se encuentra WordPress ('localhost' si es la misma máquina): "http://localhost/".

Instalación desde el navegador: seleccionar idioma

Pulsa 'Continuar' y sigue las instrucciones para instalar WordPress (la instalación la hemos realizado en inglés, pero en español es igual).

Instalar WordPress en Linux Se ha instalado WordPress correctamente Iniciar sesión con usuario por defecto Página principal de WordPress

Posibles problemas de WordPress

Uno de los fallos más comunes es que php no se ejecute.

PHP no se ejecuta

Esto se puede deber a muchos factores; uno de ellos es no tener el módulo de apache php activado.
Para que se ejecute el código php, debemos habilitar el módulo php7.0, pero sólo podemos hacer esto si está habilitado el módulo 'mpm_prefork'.

Primero comprobamos qué módulo mpm está habilitado.

ls /etc/apache2/mods-enabled/

Mods habilitados

Si hay algún módulo mpm que no sea 'prefork', lo deshabilitamos (con a2dismod), luego habilitamos el prefork (con a2enmod) y por último reiniciamos apache.

a2dismod mpm_event
a2enmod mpm_prefork
systemctl restart apache2

Tras esto, tenemos que habilitar el módulo php.

a2enmod php7.0
systemctl restart apache2

Si el módulo php está habilitado pero php no se ejecuta, una solución podría ser editar el fichero de configuración de apache (/etc/apache2/apache.conf) y poner el siguiente código en él.

<FilesMatch \.php$> SetHandler application/x-httpd-php</FilesMatch>

Nota: Antes de intentar cualquier solución, lo ideal es comprobar que todos los paquetes han sido instalados correctamente.

Comandos para instalar WordPress en Ubuntu 16.04:

Cambia 'root' de la contraseña por la contraseña que hayas elegido, 'wordpress' por el nombre de la base de datos, y 'user' por el usuario y contraseña que hayas elegido para la base de datos de WordPress, respectivamente.

apt-get update
apt-get install apache2 -y
apt-get install mysql-server -y
apt-get install php -y
apt-get install php-mysql -y
wget https://es.wordpress.org/wordpress-latest-es_ES.tar.gz
tar -xzvf wordpress-latest-es_ES.tar.gz
rm wordpress-latest-es_ES.tar.gz
chown -R www-data:www-data wordpress
mysql -u root -proot -se 'create database wordpress'
mysql -u root -proot -se "grant all privileges on wordpress.* to 'user'@'localhost' identified by 'user';"
mysql -u root -proot -se "flush privileges;"
cp wordpress/wp-config-sample.php wordpress/wp-config.php
nano wordpress/wp-config.php #Hay que configurar el fichero indicando la base de datos, el usuario, el host, etc.
mv wordpress/* /var/www/html/
cd /etc/apache2/sites-available
cp 000-default.conf wordpress.conf
a2ensite wordpress.conf
a2dissite 000-default.conf
systemctl restart apache2

Instalar WordPress con un script

A continuación vamos a poner un script (bastante simple y mejorable) que hace una instalación sencilla de WordPress. Puedes editar el script si te interesa cambiar el nombre del directorio de WordPress, nombre de base de datos, usuario y contraseña, etc.

Descargar script para instalar WordPress

Primero descomprimimos el archivo que acabamos de descargar situándonos en el directorio donde se ha descargado utilizando el comando:

tar xvzf wordpress.sh_.tar.gz

El script lo podemos ejecutar con sh wordpress.sh, y debemos darle permisos de ejecución si no los tiene con chmod +x wordpress.sh.

Con esto concluye el tutorial sobre cómo instalar WordPress de forma manual en Linux, concretamente en Ubuntu 16.04.

Conclusión

Es importante saber cómo instalar WordPress manualmente, pues aunque los paneles de control den la opción de instalar WordPress de forma automática, el día en que un usuario contrate un servidor de alojamiento web que no disponga de un panel de control, no sabrá como instalar WordPress, ni cómo gestionarlo, por lo que nunca está de más tener esta clase de conocimientos.

Prueba nuestro hosting WordPress administrado y ahórrate la tediosa tarea de tener que instalar WordPress a mano.

¿Nos ayudas a mejorar la calidad del blog?
Déjanos una valoración sobre este post para poder seguir mejorando
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando...

10 Comentarios

  1. Dan P.

    Buenas tardes.
    Interesantísima la entrada. Pero tengo dudas:
    1. Tengo apache2 rulando en mi raspberry con nextcloud. Si instalo wordpress entrarian en conflicto? Si si, como solvento dicho conflicto?
    2. Si en el paso de crear el virtual host le cambio el puerto, al conectarme en el navegador con ip_raspi:puerto cambiado funcionaria?
    3. COmo puedo hacer todo esto sin destruirme la instalación y funcionamento que ya tengo? (es decir, tengo miedo de perder otra vez el nextcloud y los datos guardados… ).
    Gracias de antemano.
    Un saludo,
    Dan P

    • Pascual Ibarra

      Hola Dan P.

      Encantados de que te pueda ser útil la entrada. Respecto a tus dudas:

      1. No debería entrar en conflicto mientras realices la instalación de wordpress en un virtual host nuevo con un documentroot diferente al de Nextcloud.
      2. Sí, debería funcionar si solo tienes un virtual host en dicho puerto.
      3. Como decía en el primer paso, si creas un virtual host para wordpress con un documentroot diferente y realizas ahí la instalación de WP no debería generar ningún conflicto. De todos modos, siempre recomendamos realizar una copia de seguridad de la configuración de Apache2 antes de realizar este tipo de cambios.

      Esperamos que te sea de ayuda.
      Un saludo!

  2. Master Killer

    Si no se visualiza el index de wordpres

    1- Vaya a /etc/httpd/conf/httpd.conf .
    2- Cambie AllowOverride None a AllowOverride All .
    3- Reinicie el servidor apache.
    ACTUALIZACIÓN 2017
    Para las nuevas versiones de apache, el archivo se llama apache2.conf

    Entonces, para acceder al archivo, escriba sudo nano /etc/apache2/apache2.conf y cambie la línea correspondiente dentro del bloque

    Instale el mbstring en caso de no tenerlo

    sudo apt-get install php7.2-mbstring
    sudo apt-get install libapache2-mod-php7.2

  3. robin cuesta navarro

    muy bueno y bien detallado.

    1
    1
  4. G****

    los comandos estan mal escritos

    • Pascual Ibarra

      Hemos revisado el artículo y corregido algunos errores tipográficos, te animamos a que lo vuelvas a intentar con nuestra guía. Gracias por leer el artículo y por el aviso.

      Un saludo!

  5. ugalrreko

    Muy buen blog. Gracias a ti he podido instalar wordpress en mi Debian 9.
    Ahora solo me falta poder subir archivos de mas de 2 MB a la galería.
    Fantástico.

    3
    1
    • Pascual Ibarra

      Hola Ugalrreko, nos alegramos de que te haya sido útil.
      Hay varias maneras de aumentar el tamaño máximo de subida de archivo de WordPress, algunas son:

      – Actualizando el .htaccess. Puedes añadir directamente en tu .htaccess nuevas líneas con las directivas que controlan el límite de subida, por ejemplo:
      php_value upload_max_filesize 128M
      php_value post_max_size 256M
      php_value memory_limit 512M

      – Editando el archivo functions.php o el archivo wp-config.php para añadir:
      @ini_set( 'upload_max_size' , '128M' );
      @ini_set( 'post_max_size', '256M');
      @ini_set( 'memory_limit', '512M' );

      – Otra forma es, si usas un WordPress «multisite», en el panel de control de WordPress -> «Administrador de la red» -> «Ajustes» -> cambiando el valor del campo “Tamaño máximo de subida de archivo”. De esta manera estás limitado a los valores máximos establecidos en tu servidor.

      Un saludo!

      2
      2
  6. antonio jose garcia leon

    Eres un crack, sin conocimientos ninguno estamos dándole color al proyecto web que estamos creando a través de Linux, ¡Gracias!

    • DonWordPress

      ¡Nos alegramos! Si te surgen más dudas respecto a WordPress tenemos muchos post sobre plugin, utilidades, diseño, etc. Te recomendamos consultar nuestros planes Hosting con una gran cantidad de servicios incluidos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


* Campo obligatorio.