CDN CDN

Menu
Content
Por KyMAN. Creado a fecha 2021/10/27. Última modificación a fecha 2021/10/27.

Instalación

Para instalar el servidor CDN se requiere de tener previamente un servidor Apache2, Nginx, IIS, etc. El cual, a su vez, tenga implementado el módulo de PHP. En este caso se desarrolló para ser instalado en un servidor Apache2, pero eso no imposibilita la adaptación de este pequeño manual de instalación contra otro tipo de servidores, siempre que sean comptabibles con el módulo de PHP.

También se requiere de al menos el lado PHP del proyecto WMarkDown para gestionar la creación o actualización de los HTML a partir de los ficheros WMD.

Como Sistema Operativo donde va montado el proyecto, en este caso será Debian, pero puede ser cualquiera que admita el servidor Web con PHP sobre el que va a ir montado. Al estar desarrollado cara Debian, el manual irá sobre Debian, pero no quita que pueda ser adaptado a otros entornos como puede ser Fedora, Windows, etc.

Para empezar, por si se busca una instalación que parta de 0, una vez instalado el Sistema Operativo (Debian para este ejemplo), hemos de instalar Apache2 y PHP, lo cual lo podemos hacer a partir de los siguientes comandos:

                    
  • Language sh
  • Lines 3
  • Characters 79
apt update # apt upgrade # Sólo si fuese necesario. apt install apache2 php7.4
NOTA: No se pone PHP 8 por el hecho de que requiere de una instalación con repositorio externo.

Una vez instalado estos programas, hemos de clonar el proyecto del CDN en el directorio donde lo queramos instalar, mediante el siguiente comando.

                    
  • Language sh
  • Lines 1
  • Characters 38
git clone https://git.k3y.pw/KyMAN/CDN

Una vez descargado, hay que crear dos ficheros los cuales no pertenecen al proyecto y que serán ignorados por Git mediante el fichero ".gitignore", los cuales son el Secrets PHP para determinar la ubicación local del proyecto WMarkDown y su configuración base para la creación de los ficheros HTML a partir de los ficheros WMD; y el fichero de configuración de Apache.

Empezando por el primero, el fichero se ubicaría con el Path "PATH/CND/PHP/CDN.Secrets.php" y su contenido sería tal que así:

                    
  • Language php
  • Lines 12
  • Characters 211
namespace CDN; class Secrets{ const wmarkdown = [ "root" => "{PATH}/CDN", "html_base" => "/HTML/base.cdn.html", "title" => "CDN" ]; };
IMPORTANTE: El fichero ha de ir encabezado con la apertura de código de PHP ("<?php").
IMPORTANTE: El fragmento de código "{PATH}" ha de ser substituído por el Path absoluto, dentro del sistema, del proyecto.

El fichero de configuración de Apache2 no tiene una ubicación específica pero por defecto se puede poner en el raíz del proyecto con Path "PATH/CDN/CDN.apache2.conf", y su contenido sería tal que así:

                    
  • Language conf
  • Lines 26
  • Characters 1045
<VirtualHost *:80> ServerName cdn.local DocumentRoot {PATH}/CDN/Public RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] ErrorLog ${APACHE_LOG_DIR}/error_cdn_80.log CustomLog ${APACHE_LOG_DIR}/access_cdn_80.log combined </VirtualHost> <VirtualHost *:443> ServerName cdn.local DocumentRoot {PATH}/CDN/Public <Directory {PATH}/CDN> Options +Indexes +FollowSymLinks +MultiViews AllowOverride all Order Allow,Deny Allow from all Require all granted </Directory> SSLEngine on SSLCertificateFile {CRT} SSLCertificateKeyFile {KEY} ErrorLog ${APACHE_LOG_DIR}/error_cdn_443.log CustomLog ${APACHE_LOG_DIR}/access_cdn_443.log combined </VirtualHost>
IMPORTANT: el fragmento de código {PATH} ha de ser substituído por el PATH absoluto del proyecto; y los fragmentos {CRT} y {KEY} por los Paths absolutos del certificado y la llave del mismo para el SSL.
NOTA: La URL se cambiaría para hacer la ruta que se quiere concretamente. Es importante tener en cuenta para la ruta, el tema de si hay un servidor Proxy en la DMZ o no, para determinar una ruta final o no, lo mismo para que hacer uso de SSL localmente o no.

Finalmente quedaría vincular este fichero a los sitios instalados en Apache2. En nuestro caso, al trabajar con Debian, se hará un enlace simbólico al mismo de la siguiente forma:

                    
  • Language sh
  • Lines 4
  • Characters 119
cd /etc/apache2/sites-avaliable ln -s {PATH}/CDN/CDN.apache2.conf a2ensite CDN.apache2.conf /etc/init.d/apache2 restart
Files