Sin categoría

Cómo instalar WordPress en un servidor LAMP – Ubuntu/Debian

Un servidor LAMP (Linux Apache MySQL y PHP) se instala fácilmente en uno de los muchos proveedores de VPS disponible y a tarifas muy razonables. Pero muchos VPS no ofrecen un sistema visual como cPanel por defecto. Se puede instalar, pero su servidor web será un poco más lento con cada servicio adicional. Por lo tanto, vale la pena saber cómo instalar WordPress del terminal. Para seguir las instrucciones hace falta tener un servidor LAMP configurado.

Crear el base de dados y usuario

WordPress utiliza un base de datos para almacenar toda la información de sus entradas en la página web. Su instalación de LAMP debe incluir MySQL o MariaDB para este propósito. Por la seguridad de su servidor es mejor usar un usuario distinto por cada programa o página web que va utilizar un base de dados.  Ejecute el siguiente comando para administrar el sistema MySQL (o MariaDB):

sudo mysql -u root -p

Entre su contraseña root para continuar. El sistema le presentará con un indicador mysql> si entro la contraseña correcta. Ejecute los siguientes comandos para crear un usuario y base de dados para su instalación de WordPress:

CREATE DATABASE mi_base_de_datos;
CREATE USER usuario@localhost IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON mi_base_de_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;
exit

El primer comando crea su base de dados, cambie mi_base_de_datos al nombre que va a utilizar. Después que se crea el usuario para su base de datos, cambie usuario y contraseña, asegurándose de asignar una contraseña fuerte. Entonces se asigna todos los privilegios posibles al usuario para la base de datos creada con el segundo comando. Por último, recargamos los privilegios de la base de datos para que los cambios tomen efecto.

Cargar WordPress en el directorio

El próximo paso es descargar WordPress en un directorio donde lo pueda encontrar su servidor web, Apache. Por defecto este directorio es /var/www/, pero se puede colocar en cualquier directorio al que tenga acceso su servidor web. Vamos a ver cómo crearlo en un nuevo directorio. Ejecute el siguiente comando para crear un directorio nuevo y darle acceso a Apache:

sudo mkdir /mis-paginas && chown www-data:www-data /mis-paginas

La primera parte del comando antes del && crea el nuevo directorio. La segunda parte cambia el dueño del directorio al usuario y grupo de Apache. En Debian/Ubuntu este usuario es www-data, en CentOS/Redhat es apache por defecto. Ejecute el siguiente comando para descargar la última versión de WordPress y guardarla en el nuevo directorio:

sudo wget -O /mis-paginas/wordpress-latest.tar.gz https://es.wordpress.org/wordpress-latest-es_ES.tar.gz

El archivo .tar.gz está comprimido, como un archivo ZIP, ejecute el siguiente comando para descomprimirlo:

sudo tar -zxf /mis-paginas/wordpress-latest.tar.gz

Este comando crea un nuevo directorio, /mis-paginas/wordpress. Se puede usar el directorio sin cambiar el nombre, pero por razones de seguridad sería mejor cambiar el directorio:

sudo mv /mis-paginas/wordpress /mis-paginas/nuevo-web && \
sudo touch /mis-paginas/nuevo-web/.htaccess

Cambie nuevo-web al nombre deseado. El segundo comando crea un archivo especial, .htaccess, que va a ser utilizado por WordPress. Todavía nos falta darle permiso a Apache en el directorio:

sudo chown -R www-data:www-data /mis-paginas/nuevo-web

Esta vez utilizamos el modificador -R para que el comando chown entre en el directorio de su página web y cambie los permisos en todos los archivos y directorios. Sólo nos falta configurar Apache para su nueva página.

Añadir WordPress a Apache

Por último tiene que configurar Apache para que sepa donde está la instalación de WordPress y cuál configuración desea. Ejecute el siguiente comando para crear un nuevo archivo de configuración:

sudo nano /etc/apache2/sites-available/nueva-pagina.conf

Se abre el editor de texto nano. Entre la configuración como sigue:

<VirtualHost *:80>
DocumentRoot /mis-paginas/nuevo-web
ServerName mipagina.com
<Directory "/mis-paginas/nuevo-web">
Require all granted
AllowOverride None
Include /mis-paginas/nuevo-web/.htaccess
allow from all
Options -Indexes
<Directory>
HostNameLookups off
UseCanonicalName off
<VirtualHost>

Cambie mipagina.com y /mis-paginas/nuevo-web al URL y directorio de su página web.  Una nota importante, sobre el archivo .htaccess. Se utiliza para darle instrucciones a Apache. Por defecto WordPress sólo tiene uno, pero hay plugins que añaden .htaccess en otras partes de la instalación de WordPress. Para que tomen efecto, se tienen que añadir al archivo de configuración de Apache. Por ejemplo, para añadir un archivo .htaccess al directorio wp-admin, se añade esta línea en la configuración de arriba:

Include /mis-paginas/nuevo-web/wp-admin/.htaccess

Es posible configurar Apache de tal forma que simplemente acepte un .htaccess donde sea que lo encuentre. ¿Por qué no hacerlo entones? Dos razones. Primero, si Apache esta configurado para aceptar .htaccess en cualquier directorio, lo va buscar cada vez que acede a un directorio, con el resultado de una página web un poco más lenta. Con esta configuración de sólo incluir los .htaccess que especificamos, Apache lo lee una vez, cuando inicia. Segundo, por seguridad, si no se acepta .htaccess al menos que lo autorizamos en la configuración, a un hoyo menos de seguridad.

Pulse Ctrl+X en el teclado para salir de nano, pulse Y para guardar los cambios e Intro para confirmar donde guardarlo. Ejecute el siguiente comando para añadir la configuración:

sudo ln -s /etc/apache2/sites-available/nueva-pagina.conf /etc/apache2/sites-enabled/

Esto crea un enlace simbólico en /etc/apache2/sites-enabled a la configuración que creamos. Por último tenemos que re-cargar Apache para que vea la nueva configuración. Pero antes de hacerlo, vale la pena verificar que no tenemos errores en la configuración:

apachectl configtest

Este comando nos advierte si hay un error en la configuración y dónde. Es recomendado hacerlo antes de reiniciar Apache dado que Apache no va reiniciar, y se queda parado, si hay errores en la configuración. Con un servidor que sólo tiene una página web, no es un problema, pero si tiene varias páginas en su servidor, se van a quedar parados si hay un error cuando reiniciamos Apache. Acuérdese que cada vez que cambie el archivo de configuración de su página web o su archivo .htaccess tiene que reiniciar Apache para que los cambios tomen efecto:

sudo systemctl restart apache2.service

De aquí la instalación continúa como cualquier instalación de WordPress. Visite su nueva página web en un navegador para completar el proceso, y no se olvide de tener su información de base de datos a mano.