Instalación · 9 min read · Dec 08, 2025

Cómo instalar la documentación de BookStack Wiki en CentOS 7

BookStack es una plataforma de código abierto para crear contenido de documentación/wiki para tu proyecto. Ha sido escrita en el lenguaje de programación PHP y utiliza el marco web Laravel. Básicamente, la documentación/wiki de tu proyecto se almacenará en BookStack como un ‘Libro’, seguido de ‘Capítulo’ y ‘Páginas’. Esto facilita la creación y lectura de la documentación como un Libro, basado en Capítulos y Páginas.

En este tutorial, te mostraré paso a paso cómo instalar y configurar BookStack en CentOS 7 bajo la pila LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Este tutorial cubrirá temas que incluyen la instalación de PHP Composer y la creación de la base de datos MySQL utilizando la línea de comandos.

Requisitos previos

  • CentOS 7
  • Privilegios de root

Lo que haremos

  1. Instalar el repositorio EPEL
  2. Instalar Nginx
  3. Instalar y configurar PHP-FPM
  4. Instalar y configurar MySQL/MariaDB
  5. Instalar PHP Composer
  6. Instalar BookStack
  7. Configurar el host virtual de Nginx para BookStack
  8. Pruebas

Paso 1 - Instalar el repositorio EPEL

Agrega el nuevo repositorio de terceros al sistema. Necesitamos agregar el repositorio EPEL (Paquetes adicionales para Linux empresarial) a nuestro sistema CentOS 7, para que podamos instalar Nginx y otros paquetes.

Instala el repositorio EPEL utilizando el comando yum a continuación.

sudo yum -y install epel-release

Paso 2 - Instalar Nginx en CentOS 7

En este tutorial, ejecutaremos la plataforma ‘BookStack’ bajo la pila LEMP, y instalaremos el servidor web Nginx desde el repositorio EPEL.

Instala el servidor web Nginx utilizando el comando yum a continuación.

sudo yum -y install nginx

Después de que la instalación esté completa, inicia el servicio y habilítalo para que se inicie cada vez que arranque el sistema.

systemctl start nginx  
systemctl enable nginx

Ahora verifícalo utilizando el comando netstat.

netstat -plntu

Asegúrate de que obtienes el puerto 80 en la lista, y que está siendo utilizado por el servicio Nginx.

Instalar Nginx

El servidor web Nginx ahora está instalado en el sistema CentOS 7.

Adicional: Si estás ejecutando firewalld en tu sistema, agrega un nuevo servicio HTTP a la configuración ejecutando los comandos a continuación.

firewall-cmd --add-service=http --permanent  
firewall-cmd --reload

Paso 3 - Instalar PHP y PHP-FPM

En este paso, instalaremos y configuraremos PHP-FPM 7.0. Instalaremos PHP y PHP-FPM desde el repositorio ‘webtatic’ - instala PHP con algunas extensiones que son necesarias para la plataforma ‘BookStack’, incluyendo PDO, Tokenizer, GD, Tidy, MBString y OpenSSL.

Antes de instalar PHP y PHP-FPM, agrega un nuevo repositorio ‘webtatic’ al sistema CentOS 7 utilizando el comando rpm a continuación.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ahora instala PHP y PHP-FPM con todas las extensiones necesarias utilizando el comando yum de la siguiente manera.

sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl

Después de que la instalación esté completa, necesitamos editar el archivo de configuración ‘php.ini’ y editar la configuración del grupo php-fpm ‘www.conf’.

Edita el archivo de configuración ‘php.ini’ utilizando el editor vim.

vim /etc/php.ini

Descomenta la línea ‘cgi.fix_pathinfo’ y cambia el valor a ‘0’.

cgi.fix_pathinfo=0

Guarda y sal.

A continuación, edita el archivo de configuración del grupo ‘www.conf’.

vim /etc/php-fpm.d/www.conf

Cambia el usuario predeterminado para ejecutar el servicio PHP-FPM al usuario y grupo ‘nginx’.

user = nginx  
group = nginx

En la línea ‘listen’, cambia el valor al archivo sock como se indica a continuación. Estaremos ejecutando PHP-fpm bajo el archivo sock.

listen = /var/run/php-fpm/php-fpm.sock

Ahora para la configuración de permisos y propietario del socket. Descomenta estas líneas y cambia el valor como se indica a continuación.

listen.owner = nginx  
 listen.group = nginx  
 listen.mode = 0660

Finalmente, descomenta el entorno de PHP-FPM.

env[HOSTNAME] = $HOSTNAME  
env[PATH] = /usr/local/bin:/usr/bin:/bin  
env[TMP] = /tmp  
env[TMPDIR] = /tmp  
env[TEMP] = /tmp

Guarda y sal.

Si la configuración está completa, inicia el servicio PHP-FPM y habilítalo para que se inicie cada vez que arranque el sistema.

systemctl start php-fpm  
systemctl enable php-fpm

Ahora verifícalo utilizando el comando netstat.

netstat -pl | grep php

Y asegúrate de que obtienes el archivo sock de PHP-FPM.

PHP y PHP-FPM 7.0 con todas las extensiones necesarias para la plataforma ‘BookStack’ han sido instalados en el sistema CentOS 7.

Paso 4 - Instalar y configurar MySQL/MariaDB

BookStack solo admite la base de datos MySQL, y solo funcionará bajo la versión MySQL >= 5.6. Para este tutorial, utilizaremos MariaDB (última versión) que se puede instalar desde el repositorio de Ubuntu.

Ejecuta el comando yum a continuación para instalar la base de datos MariaDB.

yum install -y mariadb mariadb-server

Después de que la instalación esté completa, inicia el servicio y habilítalo para que se inicie cada vez que arranque el sistema.

systemctl start mariadb  
systemctl enable mariadb

Ahora necesitamos configurar la contraseña ‘root’ para la base de datos.

Ejecuta el comando a continuación para configurar la contraseña de la base de datos ‘root’.

mysql_secure_installation

Configurar MariaDB

Y se te pedirá la nueva contraseña de root de MySQL - escribe tu contraseña para el usuario root y presiona Enter. Para los demás, simplemente escribe ‘Y’ para sí y presiona Enter nuevamente.

¿Establecer contraseña de root? [Y/n] Y  
 ¿Eliminar usuarios anónimos? [Y/n] Y  
 ¿Deshabilitar el inicio de sesión remoto de root? [Y/n] Y  
 ¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] Y  
 ¿Recargar tablas de privilegios ahora? [Y/n] Y

La contraseña de root de MySQL ahora ha sido configurada.

A continuación, necesitamos crear una nueva base de datos MySQL para la instalación de BookStack. Crearemos una nueva base de datos llamada ‘bookstackdb’ con el usuario ‘bookstack’ y la contraseña ‘bookstack@’.

Inicia sesión en el shell de MySQL con el usuario root.

mysql -u root -p

Ejecuta todas las consultas MySQL a continuación en el shell.

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

Crear base de datos en MariaDB para BookStack

MySQL/MariaDB ha sido instalado en el sistema CentOS 7, y la base de datos para la instalación de ‘BookStack’ ha sido creada.

Paso 5 - Instalar PHP Composer en CentOS 7

El composer es un gestor de dependencias para PHP. Te permite gestionar las dependencias de PHP que necesitas para tu proyecto. En este paso, instalaremos el Composer utilizando el script de instalación. El Composer se utilizará para descargar todas las bibliotecas PHP que son necesarias para ‘BookStack’.

Ve al directorio home y descarga el instalador utilizando curl.

cd ~/  
curl -sS https://getcomposer.org/installer | php

Y obtendrás el archivo ‘composer.phar’ en tu directorio home. Mueve el archivo al directorio ‘/usr/bin’ y prueba el comando ‘composer’ como se muestra a continuación.

mv composer.phar /usr/bin/composer  
composer -v

Y obtendrás la versión de composer que está instalada en tu sistema.

Instalar PHP Composer

El PHP Composer ahora está instalado en el sistema CentOS 7.

Paso 6 - Instalar BookStack en CentOS 7

En este paso, instalaremos BookStack bajo el directorio ‘/var/www’ - ese directorio será el directorio raíz de la aplicación.

Antes de instalar ‘BookStack’, instala git en tu sistema.

yum -y install git

Ahora crea un nuevo directorio ‘/var/www’.

mkdir -p /var/www

Ve a ese directorio y clona el código fuente de BookStack utilizando el comando git.

cd /var/www  
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

Ve al directorio ‘BookStack/‘ e instala todas las dependencias PHP necesarias utilizando el comando composer como se muestra a continuación.

cd BookStack/  
composer install

Asegúrate de que no obtienes errores y cuando esté completo. Verás el resultado como se indica a continuación.

Instalar BookStack con Composer

Ahora copia el archivo de configuración del entorno ‘.env.example’ y edítalo utilizando vim.

cp .env.example .env  
vim .env

En la línea de detalles de la base de datos, cambia todo con la información de tu base de datos como se indica a continuación.

# Detalles de la base de datos  
 DB_HOST=localhost  
 DB_DATABASE=bookstackdb  
 DB_USERNAME=bookstack  
 DB_PASSWORD=bookstack@

Guarda y sal.

Y cambia los permisos de propiedad del directorio ‘BookStack’ al usuario y grupo ‘nginx’.

chown -R nginx:nginx /var/www/BookStack

A continuación, necesitamos generar la clave única de la aplicación para BookStack y actualizar el esquema de la base de datos utilizando los comandos PHP artisan.

En el directorio raíz de la aplicación ‘/var/www/BookStack’, ejecuta los siguientes comandos.

php artisan key:generate  
php artisan migrate

Se te pedirá confirmación, escribe ‘yes’ y presiona Enter.

PHP artisan

Espera hasta que la migración de la tabla sea exitosa.

La aplicación BookStack ha sido instalada, con la clave única secreta de la aplicación generada y el esquema de la base de datos para BookStack actualizado.

Paso 7 - Configurar el host virtual de Nginx para BookStack

En este paso, configuraremos el host virtual de nginx para BookStack. Usaremos ‘book.hakase-labs.co’ como nombre de dominio para nuestra URL de BookStack.

Ve al directorio ‘/etc/nginx’ y crea un nuevo archivo de host virtual ‘bookstack.conf’ en el directorio ‘conf.d/‘ utilizando el editor vim.

cd /etc/nginx  
vim conf.d/bookstack.conf

Pega la configuración a continuación.

server {  
   listen 80;  
   server_name book.hakase-labs.co;  
   root /var/www/BookStack/public;  
   
   access_log  /var/log/nginx/bookstack_access.log;  
   error_log  /var/log/nginx/bookstack_error.log;  
   
   client_max_body_size 1G;  
   fastcgi_buffers 64 4K;  
   
   index  index.php;  
   
   location / {  
     try_files $uri $uri/ /index.php?$query_string;  
   }  
   
   location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {  
     deny all;  
   }  
   
   location ~ \.php(?:$|/) {  
     fastcgi_split_path_info ^(.+\.php)(/.+)$;  
     include fastcgi_params;  
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
     fastcgi_param PATH_INFO $fastcgi_path_info;  
     fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;  
   }  
   
   location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {  
     expires 30d;  
     access_log off;  
   }  
 }

Guarda y sal.

Ahora prueba la configuración de nginx y asegúrate de que no hay errores, luego reinicia el servicio nginx.

nginx -t  
systemctl restart nginx

El host virtual de Nginx para la aplicación BookStack ha sido creado y activado.

Configurar el host virtual de Nginx

Paso 8 - Pruebas

Abre tu navegador web y escribe la URL de BookStack en la barra de direcciones, la mía es: http://book.hakase-labs.co/

Y serás redirigido a la página de ‘login/‘ como se indica a continuación.

Inicio de sesión de BookStack

Escribe el usuario administrador predeterminado ‘ [email protected] ‘ con la contraseña ‘password’, y luego presiona el botón ‘Iniciar sesión’.

Deberías obtener el Panel de usuario de BookStack.

Panel de control

Haz clic en el menú ‘Configuraciones’ y obtendrás la página de configuraciones.

Configuraciones

Ahora haz clic en ‘Usuarios’ y luego haz clic en el usuario ‘Admin’. Cambia el correo electrónico predeterminado por tu dirección de correo electrónico y la contraseña por tu propia contraseña secreta.

Usuarios de BookStack

Luego haz clic en el botón ‘Guardar’.

La instalación de BookStack con la pila LEMP (Linux, Nginx, MariaDB y PHP-FPM) en CentOS 7 se ha completado con éxito.

Referencia

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.