\documentclass[12pt,a4paper,titlepage]{article} \usepackage[spanish]{babel} \usepackage{hyperref} \usepackage{graphicx} \usepackage{subcaption} \usepackage{minted} \title{Tema VII Ejercicio I: Instalación de WordPress en Local} \author{Nicolás A. Ortega Froysa} \begin{document} \maketitle \tableofcontents \pagebreak \section{Nginx} Para instalar Nginx sólo hemos de instalarlo junto a PHP. Instalamos los paquetes necesarios con el comando siguiente: \begin{minted}{console} # apt install nginx php php-fpm php-mysql \end{minted} Deberíamos de habilitar el uso de PHP con la extensión de MySQL. Para esto tenemos que editar el archivo INI que se encuentra en {\tt /etc/php/7.4/fpm/php.ini} y descomentar la línea que pone {\tt extension=mysqli}. Ahora en el directorio {\tt /etc/nginx/sites-available} creamos un archivo con el nombre {\tt my-wordpress.local.conf} con el contenido siguiente: \begin{minted}{nginx} server { listen 80 default_server; listen [::]:80 default_server; root /var/www/wordpress; index index.html index.htm index.nginx-debian.html index.php; server_name my-wordpress.local; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; } } \end{minted} Luego se crea un enlace simbólico del mismo en la carpeta de {\tt sites-enabled}. A partir de ahí podemos inicializar el servicio: \begin{minted}{console} # systemctl enable nginx # systemctl start nginx \end{minted} \section{MariaDB} Como en nuestro caso vamos a instalar MariaDB, hemos de correr el comando siguiente para instalarlo: \begin{minted}{console} # apt install mariadb-server \end{minted} Ahora lo tenemos que configurar utilizando el comando siguiente, siguiendo los pasos. Sólo hemos de fijar la contraseña de root (el administrador) y luego seguir seleccionando las opciones por defecto. \begin{minted}{console} # mysql_secure_installation \end{minted} Cuando ya lo tenemos configurado empezamos el servicio: \begin{minted}{console} # systemctl start mariadb # systemctl enable mariadb \end{minted} Ahora tenemos que crear la base de datos: \begin{minted}{mysql} CREATE DATABASE wpdb; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppass'; GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; QUIT; \end{minted} \section{WordPress} Una vez que tenemos todo el fundamento instalado, ya podemos proseguir a instalar el WordPress como tal. Para esto primero hemos de bajar el ZIP que contiene la instalación de \url{https://wordpress.org/latest.zip}. Una vez hecho esto, debemos de extraerlo en {\tt /var/www} para poder usarlo. Notaremos que ya crea solo el directorio {\tt /var/www/wordpress}. Este directorio deberíamos de cambiarle los permisos (de forma recursiva) para que Nginx pueda editar su contenido. Esto lo hacemos con el comando {\tt chown}. \begin{minted}{console} # wget https://wordpress.org/latest.zip # unzip latest.zip -d /var/www # chown -R www-data:www-data /var/www/wordpress \end{minted} Ahora, si accedemos a nuestro sitio web (en \url{http://localhost/}) podremos encontrarnos con un primer diálogo preguntándonos cuál lengua queremos para nuestro WordPress. Vamos a elegir inglés, por los mismos motivos de siempre. \begin{figure} \centering \includegraphics[width=0.75\textwidth]{imgs/00-db-config.png} \caption{Configuración de la base de datos.} \label{fig:db-config} \end{figure} El primer formulario que nos va a aparecer después de esto nos preguntará para configurar la base de datos (figura \ref{fig:db-config}). Hay varios campos que tenemos que rellenar. Lo primero es el nombre de la base de datos, que anteriormente lo habíamos definido como {\tt wpdb}. También nos pregunta por el usuario que usará WordPress para conectarse a esta base de datos, que lo habíamos definido como {\tt wpuser}. Es bueno {\bf no usar el usuario root}, ya que este tiene más acceso a otras bases de datos y, en caso de un infiltrado, tendría acceso a más datos. La contraseña es como lo habíamos definido antes: {\tt wppass}. La base de datos está localizada en el mismo servidor, así que el {\it host} es {\tt localhost}. Y como prefijo para las tablas, aunque no es estríctamente necesario -- nuestra base de datos sólo contendrá tablas de WordPress -- viene por defecto {\tt wp\_}, así que vamos a dejarlo así. \begin{figure}[ht!] \centering \includegraphics[width=0.5\textwidth]{imgs/01-site-config.png} \caption{Configuración del sitio WordPress.} \label{fig:site-config} \end{figure} Después de esta configuración, nos encontraremos con la configuración del sitio como tal (figura \ref{fig:site-config}). Aquí vamos a definir algunos elementos importantes, particularmente el título de nuestro sitio web, el nombre del usuario administrador, su contraseña, y su correo electrónico. También hay otra opción al final que ayuda a fomentar o no que los buscadores web pongan tu página en sus índices. \begin{figure} \centering \begin{subfigure}{0.45\textwidth} \includegraphics[width=0.95\textwidth]{imgs/02-first-login.png} \caption{Panel de control.} \label{fig:first-login} \end{subfigure} \hfill \begin{subfigure}{0.45\textwidth} \includegraphics[width=0.95\textwidth]{imgs/03-front-page.png} \caption{Página principal.} \label{fig:front-page} \end{subfigure} \caption{} \end{figure} Al finalizar la configuración nos aparecerá el panel de control (figura \ref{fig:first-login}). Desde aquí se podrá configurar más WordPress, y crear contenidos. Para ver nuestro sitio web en sí, podemos darle arriba donde pone el título de nuestra página, en este caso <>, y nos llevará a la página principal (figura \ref{fig:front-page}), que parece tener por defecto un tema bastante sencillo y bonito. \section{Conclusión} La instalación de WordPress es bastante sencillo para cualquiera que tenga un mínimo conocimiento de informática. Al menos en sistemas UNIX (como es Debian GNU/Linux). Hay formas de usar WordPress sin necesidad de conocimiento técnico, pero eso cae fuera de este ejercicio. \pagebreak \section{Derechos de Autor y Licencia} \noindent Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa \\ \\ Este documento se distribuye bajo los términos y condiciones de la licencia Creative Commons Attribution No Derivatives 4.0 International. \end{document}