BookStack es una plataforma de código abierto para crear documentación/contenido wiki para su proyecto. Ha sido escrito en el lenguaje de programación PHP con el framework web Laravel. Básicamente, la documentación/wiki de su proyecto se almacena en BookStack como un 'Libro', seguido de 'Capítulo' y 'Páginas'. Y le facilita la creación y lectura de la documentación como un libro, basado en capítulos y páginas.
En este tutorial, le mostraré paso a paso cómo instalar y configurar BookStack en Ubuntu 16.04 bajo la pila LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Este tutorial cubrirá detalles que incluyen cómo instalar PHP Composer y crear la base de datos MySQL manualmente usando la línea de comando.
Requisitos
- Ubuntu 16.04
- Privilegios de raíz
Lo que haremos
- Actualizar repositorio y actualizar sistema
- Instalar Nginx en Ubuntu 16.04
- Instalar y configurar PHP-FPM
- Instalar y configurar la base de datos MariaDB
- Instalar PHP Composer
- Instalar y configurar BookStack
- Configurar host virtual Nginx para BookStack
- Pruebas
Paso 1:actualice y actualice Ubuntu
Antes de instalar cualquier paquete para la instalación de BookStack, asegúrese de que su repositorio y sistema de Ubuntu estén actualizados.
De lo contrario, puede actualizar el repositorio de Ubuntu y actualizar el sistema usando los comandos a continuación.
sudo apt update
sudo apt upgrade
Paso 2:instale Nginx en Ubuntu 16.04
En este tutorial, ejecutaremos la plataforma 'BookStack' bajo la pila LEMP e instalaremos el servidor web Nginx desde el repositorio de Ubuntu.
Instale el servidor web Nginx en Ubuntu usando el comando apt a continuación.
sudo apt install nginx -y
Una vez completada la instalación, inicie el servicio y habilítelo para que se inicie cada vez que se inicie el sistema.
systemctl start nginx
systemctl enable nginx
Ahora verifique el estado del servicio nginx y el puerto abierto en el sistema, asegúrese de obtener el puerto HTTP 80 en la lista.
Ejecute los comandos a continuación.
systemctl status nginx
netstat -plntu
El siguiente es el resultado.
El servidor web Nginx está instalado en el servidor Ubuntu 16.04.
Paso 3:instalar y configurar PHP-FPM
En este paso, instalaremos y configuraremos PHP-FPM 7.0. Instalaremos PHP y PHP-FPM con algunas extensiones que necesita 'BookStack', incluidos PDO, Tokenizer, GD, Tidy, MBString y OpenSSL.
Instale PHP y PHP-FPM con todas las extensiones necesarias ejecutando el siguiente comando apt.
sudo apt install php7.0-fpm php7.0-mcrypt php7.0-curl php7.0-cli php7.0-mysql php7.0-gd php7.0-xsl php7.0-json php7.0-intl php-pear php7.0-dev php7.0-common php7.0-mbstring php7.0-tidy php7.0-zip php-soap libcurl3 curl -y
Una vez completada la instalación, debemos configurar los archivos de configuración 'php.ini' para 'php fpm' y 'php cli'.
Edite el archivo 'php.ini' para la configuración de 'fpm' usando vim.
vim /etc/php/7.0/fpm/php.ini
Descomente la línea 'cgi.fix_pathinfo' y cambie el valor a '0'.
cgi.fix_pathinfo=0
Guardar y salir.
Edite el archivo 'php.ini' para la configuración de 'cli' usando vim.
vim /etc/php/7.0/cli/php.ini
Descomente la línea 'cgi.fix_pathinfo' y cambie el valor a '0'.
cgi.fix_pathinfo=0
Guardar y salir.
Ahora inicie el servicio PHP-FPM y permita que se inicie cada vez que se inicie el sistema.
systemctl start php7.0-fpm
systemctl enable php7.0-fpm
En el sistema Ubuntu, PHP-FPM se ejecutará bajo el archivo 'sock'; verifíquelo con el comando netstat a continuación.
netstat -pl | grep fpm
Y obtendrá el resultado como se muestra a continuación.
Se han instalado PHP y PHP-FPM con todas las extensiones requeridas.
Paso 4:instalar y configurar la base de datos MariaDB
BookStack solo ofrece compatibilidad con la base de datos MySQL y solo se ejecuta en la versión de MySQL>=5.6. Para este tutorial, usaremos la última versión de MariaDB que se puede instalar desde el repositorio de Ubuntu.
Ejecute el siguiente comando apt para instalar la base de datos MariaDB.
sudo apt install mariadb-server mariadb-client -y
Una vez completada la instalación, inicie el servicio y habilítelo para que se inicie cada vez que se inicie el sistema.
systemctl start mysql
systemctl enable mysql
Ahora necesitamos configurar la contraseña 'root' para la base de datos.
Ejecute el siguiente comando para configurar la contraseña de la base de datos 'raíz'.
mysql_secure_installation
Y se le pedirá la nueva contraseña de root de MySQL:escriba su contraseña para el usuario root y presione Entrar. Para otros, simplemente escriba 'Y' a sí y presione Entrar nuevamente.
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
La contraseña raíz de MySQL ahora se ha configurado.
A continuación, debemos crear una nueva base de datos para la instalación de BookStack.
Crearemos una nueva base de datos llamada 'bookstackdb ' con el usuario 'bookstak ' y la contraseña '[email protected] '.
Inicie sesión en el shell de MySQL como usuario root.
mysql -u root -p
Ahora ejecute todas las consultas de MySQL a continuación.
create database bookstackdb;
create user [email protected] identified by '[email protected]';
grant all privileges on bookstackdb.* to [email protected] identified by '[email protected]';
flush privileges;
exit;
Se ha instalado MySQL/MariaDB en el sistema Ubuntu y se ha creado la base de datos para la instalación de 'BookStack'.
Paso 5 - Instalar PHP Composer
Composer es un administrador de dependencias para PHP. Le permite administrar las dependencias de PHP que necesita para su proyecto. En este paso, instalaremos Composer utilizando el script de instalación. Composer se utilizará para descargar todas las bibliotecas de PHP que necesita 'BookStack'.
Vaya al directorio de inicio y descargue el instalador usando curl.
cd ~/
curl -sS https://getcomposer.org/installer | php
Y obtendrá el archivo 'composer.phar' en su directorio de inicio, mueva el archivo al directorio '/usr/bin' y ejecute el comando 'composer' como se muestra a continuación.
mv composer.phar /usr/bin/composer
composer -v
Obtendrá la versión del compositor que está instalada en su sistema.
PHP Composer ahora está instalado en Ubuntu 16.04.
Paso 6:instalar BookStack
En este paso, instalaremos BookStack en el directorio '/var/www', que será el directorio raíz de la aplicación.
Vaya al directorio '/var/www' y clone el código fuente de 'BookStack' usando el comando git.
cd /var/www/
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch
Vaya al directorio 'BookStack/' e instale todas las dependencias de PHP usando el comando composer como se muestra a continuación.
cd BookStack/
composer install
Asegúrese de que no recibe ningún error y, cuando esté completo, verá el resultado como se muestra a continuación.
Ahora copie el archivo de configuración del entorno '.env.example' y edítelo usando vim.
cp .env.example .env
vim .env
En la línea de detalles de la base de datos, cambie todo con la información de su base de datos, como se muestra a continuación.
# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
[email protected]
Guardar y salir.
Y cambie el propietario del directorio 'BookStack' al usuario y grupo 'www-data'.
chown -R www-data:www-data /var/www/BookStack
A continuación, debemos generar la clave de aplicación única para BookStack y actualizar el esquema de la base de datos mediante los comandos artesanales de PHP.
En el directorio raíz de la aplicación '/var/www/BookStack', ejecute los comandos como se muestra a continuación.
php artisan key:generate
php artisan migrate
Se le pedirá confirmación, escriba 'sí' y presione Entrar.
Espere a que el comando genere la clave secreta e importe el esquema de la base de datos.
BookStack ahora se instaló en Ubuntu 16.04, se generó la aplicación de clave única secreta y se actualizó el esquema de la base de datos para BookStack.
Paso 7:configurar el host virtual de Nginx para BookStack
En este paso, configuraremos el host virtual nginx para BookStack. Usaremos 'book.hakase-labs.co' como nombre de dominio para nuestra URL de BookStack.
Vaya al directorio '/etc/nginx' y cree un nuevo archivo de host virtual 'bookstack' en el directorio 'sitios disponibles' usando el editor vim.
cd /etc/nginx/
vim sites-available/bookstack
Pegue 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:/run/php/php7.0-fpm.sock;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
Guardar y salir.
Ahora active el host virtual y pruebe la configuración.
ln -s /etc/nginx/sites-available/bookstack /etc/nginx/sites-enabled/
nginx -t
Asegúrese de que no recibe ningún error como se muestra a continuación.
Ahora reinicie el servicio Nginx.
systemctl restart nginx
Se agregó y activó el host virtual Nginx para BookStack.
Paso 8 - Prueba
Abra su navegador web y escriba la URL de BookStack en la barra de direcciones, la mía es http://book.hakase-labs.co/
Y será redirigido a la página de 'inicio de sesión/' como se muestra a continuación.
Escriba el usuario administrador predeterminado '[email protected] ' con contraseña 'contraseña ', luego presione 'Iniciar sesión botón '.
Y obtendrá el panel de usuario de BookStack.
Haga clic en el menú 'Configuración' y obtendrá la página de configuración.
Ahora haga clic en el menú 'Usuarios' y luego haga clic en el usuario 'Administrador'. Cambie el correo electrónico predeterminado con su dirección de correo electrónico y la contraseña con su propia contraseña secreta.
Luego haga clic en el botón 'Guardar'.
Con esto, la instalación de BookStack con la pila LEMP (Linux, Nginx, MariaDB y PHP-FPM) en Ubuntu 16.04 se completó con éxito.