WordPress
=========
Instalación
-----------
1. Descarga la aplicación desde la `página oficial `__ y descomprime la carpeta.
.. figure:: img/wordpress/download-wordpress.png
:alt: Screenshot
Descarga de WordPress desde su web.
2. Sube al servidor los archivos de la carpeta "wordpress", dentro de la carpeta del dominio que se ha generado al activar el dominio desde el panel del control. Si has añadido el dominio *example.com*, la carpeta será ``/var/www/html/example.com/``.
Para hacerlo, puedes utilizar un cliente SFTP como Filezilla. Recuerda `aquí `__ como subir contenidos al directorio ``/var/www/html/example.com/``. **Advertencia: No debes subir la carpeta "wordpress" como tal, únicamente los archivos que contiene.**
3. Crea la base de datos.
Para crear una base de datos, puedes utilizar la aplicación phpMyAdmin. Recuerda como usar phpMyAdmin `aquí `__.
Importar una base de datos existente
------------------------------------
En caso de que ya tengas una base de datos MySQL de tu WordPress (por
ejemplo, en casos de migración desde otro servidor), es necesario
importarla. Desde phpMyAdmin, tienes que seleccionar el apartado
"Importar" y subir el archivo que corresponda (.sql o .gzip, .bzip2 o
.zip en el caso esté comprimida).
.. figure:: img/wordpress/importar-bdd.png
:alt: Screenshot
Importando base de datos en phpMyAdmin.
Una vez importada, tenemos que seleccionar el apartado "Privilegios"
para crear una nueva cuenta que pueda acceder a la base de datos, leer y
escribir en ella (se desaconseja usar la misma cuenta root o admin por
razones de seguridad).
Elige un nombre y una contraseña y haz clic en "Otorgar todos los
privilegios para la base de datos "MiBaseDeDatos"". Apunta el nombre de
la cuenta y la contraseña que acabas de crear, puesto que serán
necesarios durante el proceso de instalación de WordPress.
.. figure:: img/wordpress/otorgar-privilegios.png
:alt: Screenshot
Otorgando privilegios para base de datos en phpMyAdmin.
Crear una nueva base de datos
-----------------------------
Si se trata de una nueva instalación y todavía no tenemos creada una
base de datos MySQL, es preciso crear una. Dentro de phpMyAdmin, tenemos
que ir a "Bases de datos" > "Crear base de datos".
.. figure:: img/wordpress/crear-bdd.png
:alt: Screenshot
Creando una base de datos en phpMyAdmin.
Una vez creada, tenemos que seleccionar el apartado "Privilegios" para
crear una nueva cuenta que pueda acceder a la base de datos, leer y
escribir en ella (se desaconseja usar la misma cuenta root o admin por
razones de seguridad).
Elige un nombre y una contraseña y haz clic en "Otorgar todos los
privilegios para la base de datos "MiBaseDeDatos"". Apunta el nombre de
la cuenta y la contraseña que acabas de crear, puesto que serán
necesarios durante el proceso de instalación de WordPress.
.. figure:: img/wordpress/otorgar-privilegios.png
:alt: Screenshot
Otorgando privilegios para base de datos en phpMyAdmin.
Configurar WordPress
--------------------
Cuando tengamos creada la base de datos y los archivos de la carpeta
WordPress ya estén en ``/var/www/html/example.com/``, tenemos que
visitar el dominio con el navegador. Aparecerá un formulario para
finalizar el proceso de instalación de WordPress, en el que se
solicitarán las credenciales de la cuenta de MySQL que hemos creado.
.. figure:: img/wordpress/formulario-wp.png
:alt: Screenshot
Asistente de instalación de WordPress.
Recuerda que cambiar el prefijo wp\_ por otro en el apartado "Table
Prefix" añade una capa de seguridad adicional a tu instalación.
Problemas frecuentes en la instalación de WordPress
---------------------------------------------------
No puedo instalar plugins ni subir imágenes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Asegúrate de que los permisos de los archivos que has subido por SFTP
sean los correctos. Para que WordPress pueda subir imágenes y plugins
desde el panel de administración, la carpeta
``/var/www/html/example.com/wp-content`` tiene que tener los siguientes
permisos:
``drwxrws---`` es decir, 770
Para comprobar que los permisos sean correctos, desde FileZilla debes
hacer clic con el botón derecho encima de la carpeta ``wp-content`` y
seleccionar la opción "Permisos de archivo" o "Atributos de archivo",
según tu versión.
Los permisos tienen que quedar de esta manera, siendo el valor numérico
770. Esto quiere decir que tanto la cuenta Webmaster como Apache podrán
escribir en la carpeta. Si los permisos que tienes son diferentes,
puedes proceder a modificarlos desde el mimso Filezilla, asignando dos
permisos diferentes para carpetas y para archvios. Para las **carpetas**
es necesario el permiso de ejecución. Pondrás entonces el **permiso
770** y marca la opción **"Aplicar solo a directorios"**.
.. figure:: img/wordpress/permisos-carpetas.png
:alt: Screenshot
Edición de permisos de carpetas.
Repite la operación para los **archivos**, que no necesitan permiso de
ejecución. Puedes asignar **permisos 660** y seleccionar la opción
"**Aplicar solo a ficheros"**.
.. figure:: img/wordpress/permisos-archvios.png
:alt: Screenshot
Edición de permisos de archivos.
Si quieres habilitar la opción de actualizar todo el wordpress desde el
panel web de administración (wp-admin) tendrás que seguir los mismos
pasos pero aplicando estos cambios no solo a la carpeta ``wp-content``,
sino a todas las carpetas del wordpress, es decir
``/var/www/html/example.com/``
--
A pesar de que los permisos de las carpetas del WordPress sean los
correctos, podrías tener problemas a la hora de instalar plugins o subir
imágenes. Para solucionarlo, añade la siguiente línea al final del
archivo ``wp-config.php``:
``define( 'FS_METHOD', 'direct' );``
Cuando subes imágenes o plugins desde WordPress, en lugar que desde un
cliente SFTP, quién ejecuta la operación no es tu propia cuenta, sino
Apache (www-data). A pesar de que esta cuenta tenga permisos de
escritura sobre los archivos, no es la propietaria. En servidores
compartidos, esto podría representar un problema de seguridad, ya que la
misma cuenta www-data podría estar siendo utilizada por todas las
personas que tengan acceso. Por ello, WordPress utiliza un método en el
que comprueba (además de los permisos) si la propietaria de los archivos
coincide con la cuenta que está cumpliendo la operación de escritura.
Situación que no se da, por lo que no sigue con la operación y te
solicita las credenciales FTP.
En MaadiX no tienes FTP ni FTPs, únicamente SFTP , que utiliza el puerto
22 en lugar del 21, que es el que utiliza WordPress sin darte la opción
de cambiarlo. La solución de definir el método como 'direct' hace que
WordPress acceda de forma directa al sistema de archivos, en el que la
cuenta www-data tiene los permisos necesarios para escribir.
Si quieres saber más, puedes consultar estos dos enlaces:
- `https://wordpress.stackexchange.com/questions/189554/what-security-concerns-should-i-have-when-setting-fs-method-to-direct-in-wp-co `__
- `https://wordpress.stackexchange.com/a/232291 `__