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 y utiliza el framework web Laravel. Básicamente, la documentación/wiki de su proyecto se almacenará en BookStack como un 'Libro', seguido de 'Capítulo' y 'Páginas'. 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 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 usando la línea de comandos.
Requisitos
- Cent OS 7
- Privilegios de raíz
Lo que haremos
- Instalar repositorio EPEL
- Instalar Nginx
- Instalar y configurar PHP-FPM
- Instalar y configurar MySQL/MariaDB
- Instalar PHP Composer
- Instalar BookStack
- Configurar BookStack de host virtual de Nginx
- Pruebas
Paso 1:instalar el repositorio de EPEL
Agregue el nuevo repositorio de terceros al sistema. Necesitamos agregar el repositorio EPEL (Extra Packages for Enterprise Linux) a nuestro sistema CentOS 7, para que podamos instalar Nginx y otros paquetes.
Instale el repositorio EPEL usando 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 e instalaremos el servidor web Nginx desde el repositorio EPEL.
Instale el servidor web Nginx con el siguiente comando yum.
sudo yum -y install nginx
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 verifíquelo usando el comando netstat.
netstat -plntu
Asegúrese de tener el puerto 80 en la lista y que lo use el servicio Nginx.
El servidor web Nginx ahora está instalado en el sistema CentOS 7.
Adicional: Si está ejecutando firewalld en su sistema, agregue 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':instale PHP con algunas extensiones que necesita la plataforma 'BookStack', incluidos PDO, Tokenizer, GD, Tidy, MBString y OpenSSL.
Antes de instalar PHP y PHP-FPM, agregue un nuevo repositorio 'webtatic' al sistema CentOS 7 usando el comando rpm a continuación.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ahora instale PHP y PHP-FPM con todas las extensiones necesarias usando 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
Una vez completada la instalación, necesitamos editar el archivo de configuración 'php.ini' y editar la configuración del grupo php-fpm 'www.conf'.
Edite el archivo de configuración 'php.ini' usando el editor vim.
vim /etc/php.ini
Descomente la línea 'cgi.fix_pathinfo' y cambie el valor a '0'.
cgi.fix_pathinfo=0
Guardar y salir.
A continuación, edite el archivo de configuración del grupo 'www.conf'.
vim /etc/php-fpm.d/www.conf
Cambie el usuario predeterminado para ejecutar el servicio PHP-FPM al usuario y grupo 'nginx'.
user = nginx
group = nginx
En la línea 'escuchar', cambie el valor al archivo sock como se muestra a continuación. Ejecutaremos PHP-fpm bajo el archivo sock.
listen = /var/run/php-fpm/php-fpm.sock
Ahora para el permiso de socket y la configuración del propietario. Descomente estas líneas y cambie el valor como se muestra a continuación.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Finalmente, descomente el entorno PHP-FPM.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Guardar y salir.
Si la configuración está completa, inicie el servicio PHP-FPM y habilítelo para que se inicie siempre en el momento del arranque.
systemctl start php-fpm
systemctl enable php-fpm
Ahora verifíquelo usando el comando netstat.
netstat -pl | grep php
Y asegúrese de obtener el archivo sock de PHP-FPM.
PHP y PHP-FPM 7.0 con todas las extensiones necesarias para la plataforma 'BookStack' se han instalado en el sistema CentOS 7.
Paso 4:instalar y configurar MySQL/MariaDB
BookStack solo es compatible con la base de datos MySQL y solo se ejecutará con la versión de MySQL>=5.6. Para este tutorial, usaremos MariaDB (última versión) que se puede instalar desde el repositorio de Ubuntu.
Ejecute el comando yum a continuación para instalar la base de datos MariaDB.
yum install -y mariadb mariadb-server
Una vez completada la instalación, inicie el servicio y habilítelo para que se inicie siempre en el momento del arranque.
systemctl start mariadb
systemctl enable mariadb
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 los demás, simplemente escriba 'Y' para 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 MySQL 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 con el usuario root.
mysql -u root -p
Ejecute todas las consultas de MySQL a continuación en el shell.
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;
MySQL/MariaDB se instaló en el sistema CentOS 7 y se creó la base de datos para la instalación de 'BookStack'.
Paso 5:instale PHP Composer en CentOS 7
El compositor 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 pruebe el comando 'compositor' como se muestra a continuación.
mv composer.phar /usr/bin/composer
composer -v
Y obtendrá la versión del compositor que está instalada en su sistema.
PHP Composer ahora está instalado en el sistema CentOS 7.
Paso 6:instalar BookStack en CentOS 7
En este paso, instalaremos BookStack en 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
Vaya a ese directorio 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 PHP necesarias 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 los permisos de propiedad del directorio 'BookStack' al usuario y grupo 'nginx'.
chown -R nginx:nginx /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 siguientes comandos.
php artisan key:generate
php artisan migrate
Se le pedirá confirmación, escriba 'sí' y presione Entrar.
Espere hasta que la migración de la tabla sea exitosa.
Se instaló la aplicación BookStack, 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.conf' en el directorio 'conf.d/' usando el editor vim.
cd /etc/nginx
vim conf.d/bookstack.conf
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:/var/run/php-fpm/php-fpm.sock;
}
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
access_log off;
}
}
Guardar y salir.
Ahora pruebe la configuración de nginx y asegúrese de que no haya ningún error, luego reinicie el servicio de nginx.
nginx -t
systemctl restart nginx
Se ha creado y activado el host virtual Nginx para la aplicación 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 la contraseña 'password' y luego presione el botón 'Iniciar sesión'.
Debería obtener 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 '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'.
La instalación de BookStack con la pila LEMP (Linux, Nginx, MariaDB y PHP-FPM) en CentOS 7 se completó con éxito.