Creación de una librería fotográfica usando KOKEN

En este tutorial les mostrare como crear una librería para nuestras fotos. Entre muchas galerías webs que encontré la que más me llamo la atención fue KOKEN.

Koken es un CMS fácil de usar que presentará su trabajo fotográfico en unos pocos clics. Koken tiene muchas características como la gestión de colecciones, un sistema avanzado de etiquetas y categorías, una gestión privada de recursos (para compartir solo con su familia o sus clientes, por ejemplo), una sincronización con Lightroom y, por supuesto, muchas opciones para personalizar el tema y la navegación. Koken también tiene una tienda para agregar extensiones y así tener características adicionales.
Tambien ofrece varios temas que resaltan fácilmente sus fotos en alta calidad. Diseñado para cumplir con las restricciones actuales de la web, su sitio responderá y se adaptará a la resolución del usuario.

Este tutorial constituye una recopilación de muchos tutoriales que existen en internet, con un extra aportado por mí para aquellos que estamos detrás de un proxy. Bueno, manos a la obra.

NOTA: Para un mejor entendimiento del mismo y no tener que estar regresando a los pasos anteriores de la instalación, recomiendo que se lo lean todo primero.

1- Requisitos

Como siempre el entorno que usare será un contenedor de Proxmox usando como OS Debian 9.6 (también podemos usar Ubuntu). Al ser un web nuestro CT (contenedor) no necesitara de muchos recursos:

CPU: 2 cores

RAM: 2 GB RAM

HDD: 8 GB

1.1- Inicio

Comenzaremos preparando las condiciones para la instalación de nuestra web.

2- Nginx

2.1- Configuracion de Nginx

Uno de los parámetros para ajustar es el worker_processes. Para aprovechar al máximo la potencia de su servidor, se recomienda poner tantos procesos de trabajo como núcleos disponibles en su servidor. Para encontrar el número de núcleos en su servidor, simplemente ejecute el comando:

Por razones de seguridad, se recomienda deshabilitar el envío de información, como el número de versión de su Nginx. Para hacer esto, descomente esta directiva en el bloque http o agréguela.

server_tokens off;

Modifique las siguientes directivas en el archivo de configuración Nginx /etc/nginx/nginx.conf:

3- Descarga e instalacion de Koken

4- Usuarios y permisos

Durante la implementación básica de un servidor HTTP, el usuario bajo el que se ejecuta este servidor (Apache, Nginx …) es principalmente www-data, nobody o apache. Esto significa que, si existen varios sitios en la misma instancia de Nginx, todos usan el mismo usuario. Pero si uno de los sitios está dañado por un usuario malintencionado, el atacante puede aprovechar al máximo todos los derechos del usuario bajo el que se ejecuta el servidor web. Todos los sitios son por lo tanto vulnerables.

Por razones obvias de seguridad, se recomienda particionar a estos usuarios y tener un usuario dedicado para administrar la carpeta koken. Este usuario tendrá los derechos más limitados posible a este directorio.

5- PHP-FPM

Usaremos PHP 7.3 y PHP-FPM 7.3 también así como otras dependencias de PHP.

Agregamos la llave de repositorio y su enlace

Instalamos PHP 7.3

Comprobamos.

5.1- Creacion del Pool Koken

Creamos el pool Koken dedicado, creando el siguiente archivo de configuración: /etc/php/7.3/fpm/pool.d/koken.conf

[koken]: nombre del pool. Es posible crear múltiples agrupaciones por archivo. Cada grupo debe comenzar con esta directiva.
listen: interfaz para escuchar peticiones. Las sintaxis aceptadas son ADDRESS_IP: PORT (ejemplo: listen = 127.0.0.1.19000) y / path / to / unix / socket (ejemplo: listen = /var/run/koken.sock).
listen.owner & listen.group: Asigne el usuario y el grupo al socket Unix si se usa. Estos dos parámetros se pueden asociar con el parámetro listen.mode que establece los permisos de socket (660 de forma predeterminada). Es importante que Nginx tenga derechos de lectura en el socket Unix.
user y group: El usuario y el grupo bajo los cuales se ejecutará el grupo de procesos. Por supuesto, este usuario y este grupo deben existir en su sistema y, especialmente, acceder a los archivos PHP de su Koken. También significa que cada archivo y directorio creado en Koken pertenecerá a ese usuario y grupo. Cada archivo debe pertenecer al usuario koken y al grupo www-data.
pm: Directiva que acepta los siguientes 3 valores: static, dynamic y ondemand.
* estático: Los procesos, como pm.max_children, están continuamente activos (independientemente de la carga y la afluencia de su Koken) y es probable que consuman memoria innecesariamente. Se recomienda esta directiva si Koken es la única aplicación de su servidor.
* dinámico: El número de procesos secundarios puede variar según la carga. Sin embargo, mantenemos el control sobre la cantidad de procesos secundarios que se crearán en el inicio del servidor, la cantidad máxima de procesos, las solicitudes pendientes, etc. Las siguientes directivas pasan a ser obligatorias: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers. Se recomienda esta directiva si tiene varios grupos con alto tráfico (más de 10,000 solicitudes / día).
*ondemand: No se inicia ningún proceso secundario al iniciar el servidor, los procesos se activan a pedido y tendrán una vida útil definida por la directiva pm.process_idle_timeout. El interés de esta directiva es liberar memoria en caso de poca carga, pero puede aumentar ligeramente el tiempo de respuesta de su Koken. Sabiendo que el uso de Koken es personal y, a menudo, limitado a unos pocos usuarios, elegiremos y detallaremos aquí la directiva ondemand.
pm.max_children: Número máximo de procesos secundarios. El valor del parámetro pm.max_children varía de un sistema a otro. Aquí está el procedimiento a realizar para determinar el valor de este parámetro:

En este ejemplo, el sistema tiene 1873 MB de RAM disponible. La cantidad de RAM que desea asignar a Koken tanto como sea posible depende de usted y de los otros servicios activos que tenga en el mismo sistema. En nuestro ejemplo, asumiremos que queremos asignar hasta 1024 MB de RAM a Koken.

Ver la memoria utilizada por un proceso hijo php-fpm:

Determine el número de pm.max_children aplicando el siguiente método de cálculo:

pm.max_children = memoria asignada (en MB) / memoria utilizada por un proceso hijo
En nuestro ejemplo: 1024/17 = 60

NOTA: Ustedes pondrán el valor que es haya dado su cálculo o pueden utilizar el mío.

pm.process_idle_timeout: La cantidad de tiempo en segundos antes de que se destruya un proceso hijo inactivo.
pm.max_requests: La cantidad de consultas que cada proceso hijo deberá ejecutar antes de ser destruido. Este valor no debe ser demasiado alto para evitar cualquier pérdida de memoria, ni demasiado bajo para no solicitar regularmente la CPU para cada creación de proceso hijo. 500 sigue siendo un valor recomendado.
env [*]: Variables de entorno necesarias para PHP-FPM.

5.2- Configuración del servicio PHP-FPM

Finalmente, es necesario especificar a PHP-FPM los permisos de cada archivo o directorio creado recientemente en su Koken.

Reactivamos el servicio

6- Instalando MariaDB y creando la base de datos de Koken

6.1- Configuracion de MariaDB

6.2- Creacion de la base de datos Koken

7- Nombre de dominio y host virtual

Cree el siguiente archivo /etc/nginx/sites-available/koken y modifique las líneas que resalto de acuerdo con su configuración:

Si desean una configuracion que incluya SSL ya sea con Lets Encrypt o autogenerada se las dejo tambien:

Creamos el enlace simbolico y reiniciamos el servicio

8- Mejora el rendimiento de tu Koken con OPcache

OPcache (que significa Optimizer Plus Cache) se utiliza para ocultar el código de operación de PHP, que son las instrucciones de bajo nivel generadas por la máquina virtual de PHP cuando se ejecuta un script. En otras palabras, el código precompilado se almacena en la memoria. Esto evita el paso de compilación para cada solicitud de PHP. Además, OPcache optimizará la ejecución del código para mejorar el rendimiento.

9- KOKEN

Inicie su navegador y vaya a la siguiente dirección: http://koken.mydomain.cu/. Donde koken es el nombre que le dimos al servidor y que definimos anteriormente.

Luego de instalado, para administrarlo usando el usuario que definimos anteriormente usaremos este link http://koken.mydomain.cu/admin . Donde koken es el nombre que le dimos al servidor y que definimos anteriormente.

10- Instalacion detras de un proxy.

Como pueden observar el archivo Koken previamente descargado y sin comprimir en la carpeta /var/www/koken contiene un solo archivo index.php. Este archivo es un script de instalación de PHP que, cuando se ejecuta en su navegador, descargará automáticamente la última versión de los archivos necesarios para ejecutar Koken y creará los archivos de configuración necesarios para conectarse a su base de datos koken. Los que estén directo a internet no tendrán ningún problema en su instalación pero los que estén detrás de un proxy padre no alcanzaran instalar. Por lo que me di a la tarea de investigar el script en sí y aportar mi solución a este problema y se los regalo a todos. Editamos el index.php que descompactamos de Koken_Installer .zip

Agregamos las lineas sugeridas en el bloque ubicado desde la linea 133 a la 159.

Finalmente, después de instalada solo nos queda crear nuestros albúmenes y disfrutar de esta librería profesional de fotos.

alex out

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Alexander Rivas Alpizar 61 artículos
Administrador de Redes EMPRESTUR Cienfuegos

1 comentario

  1. Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36

    $proxy = ‘proxy.domain.cu:port’— debe de haber un ; al final para los usuarios que están bajo proxy

    $proxy = ‘proxy.domain.cu:port’; Así

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.