Skip to main content

Configuración de virtual host

Apache

Cree un fichero de virtualhost con comando nano /etc/apache2/sites-available/docs-bookstack.conf e introduzca el siguiente contenido.

<VirtualHost *:80>
	ServerAdmin correo.admin@dominio.mail@mail.com
	DocumentRoot /var/www/vhosts/bookstack/public
	ServerName documentacion.dominio.com
     ServerAlias documentacion documentacion.dominio.com

	<Directory /var/www/vhosts/bookstack/public/>
		Options FollowSymlinks
		AllowOverride All
		Require all granted
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/docs_error.log
	CustomLog ${APACHE_LOG_DIR}/docs_access.log combined

	RewriteEngine on
	RewriteCond %{SERVER_NAME} =documentacion.dominio.com
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerAdmin mail@mail.com
	DocumentRoot /var/www/vhosts/bookstack/public
	ServerName documentacion.dominio.com

	<Directory /var/www/vhosts/bookstack/public/>
		Options FollowSymlinks
		AllowOverride All
		Require all granted
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/docs_error.log
	CustomLog ${APACHE_LOG_DIR}/docs_access.log combined


	SSLCertificateFile /etc/letsencrypt/live/documentacion.dominio.com/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/documentacion.dominio.com/privkey.pem
	Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Active el site, active el modulo rewrite y reinicie el servicio apache2.

a2ensite docs-bookstack.conf
a2enmod rewrite
systemctl restart apache2

Confirme que el registro esta creado en el DNS y pruebe con un navegador web accediendo a la url que ha configurado en el virtual host y en el fichero .env de la configuración de bookstack.

Nginx

Cree el fichero de configuracion

touch /etc/nginx/sites-available/docs-bookstack.conf

editelo y añada el siguiente contenido, cambiando el dominio, rutas y certificados acorde a su instalación

server {
        listen 443 ssl;
        server_name documentacion.dominio.com;

        ssl_certificate /etc/nginx/certs/certficado.pem;
        ssl_certificate_key /etc/nginx/certs/certificado.key;

        root /var/www/vhosts/bookstack/public;
        index index.php index.html;


        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        }

}

server {
    if ($host = documentacion.dominio.com) {
        return 301 https://$host$request_uri;
    }
        listen 80;
        server_name documentacion.dominio.com;
    return 404;
}

Prepare el site para ser activado

cd /etc/nginx/sites-enabled/
ln -s ../sites-available/docs-bookstack.conf .

Compruebe que la configuración es correcta con

nginx -t

Si no ha salido ningun error, entonces recargue nginx para que tenga en cuenta los cambios

systemctl reload nginx