Lychee: un excelente sistema de gestión de fotografías para Linux


Lychee es un sistema de gestión de fotos gratuito, de código abierto, elegante y fácil de usar, que viene con todas las funciones necesarias que necesita para administrar y compartir fotos de forma segura en su servidor. Le permite administrar fácilmente (cargar, mover, renombrar, describir, eliminar o buscar) sus fotos en segundos desde una simple aplicación web.

  • Una interfaz hermosa y sorprendente para administrar todas sus fotos en un solo lugar, directamente desde su navegador.
  • Compartir fotos y álbumes con un clic con protección por contraseña.
  • Vea todas sus imágenes en modo de pantalla completa con navegación hacia adelante y hacia atrás usando su teclado o permita que otros naveguen por sus fotos haciéndolas públicas.
  • Admite la importación de fotos de varias fuentes: localhost, Dropbox, servidor remoto o mediante un enlace.

Para instalar Lychee, todo lo que necesita es un servidor web en ejecución como Apache o Nginx con PHP 5.5 o posterior y una base de datos MySQL.

Para el propósito de este artículo, instalaré el sistema de administración de fotografías Lychee con Nginx, PHP-FPM 7.0 y MariaDB en un VPS CentOS 7 con el nombre de dominio lychee.example.com.

Paso 1: Instale Nginx, PHP y MariaDB

1. Primero comience instalando Nginx, PHP con las extensiones necesarias y la base de datos MariaDB para configurar un entorno de alojamiento para ejecutar Lychee.

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# yum install yum-utils
# yum-config-manager --enable remi-php70   [Install PHP 7.0]
# yum install nginx php php-fpm php-mysqli php-exif php-mbstring php-json php-zip php-gd php-imagick mariadb-server mariadb-client
$ sudo apt install nginx php php-fpm php-mysqli php-exif php-mbstring php-json php-zip php-gd php-imagick mariadb-server mariadb-client

2. Una vez que haya instalado los paquetes necesarios, inicie los servicios nginx, php-fpm y mariadb, habilítelos en el momento del arranque y verifique si estos servicios están en funcionamiento.

------------ CentOS/RHEL ------------
# systemctl start nginx php-fpm mariadb
# systemctl status nginx php-fpm mariadb
# systemctl enable nginx php-fpm mariadb
------------ Debian/Ubuntu ------------
$ sudo systemctl start nginx php7.0-fpm mysql
$ sudo systemctl status nginx php7.0-fpm mysql
$ sudo systemctl enable nginx php7.0-fpm mysql

3. A continuación, si tiene un firewall habilitado en su sistema, necesita abrir el puerto 80 y 443 en el firewall para permitir solicitudes de clientes al servidor web Nginx en HTTP y HTTPS respectivamente, como se muestra.

------------ Debian/Ubuntu ------------
$ sudo  ufw  allow 80/tcp
$ sudo  ufw  allow 443/tcp
$ sudo  ufw  reload
------------ CentOS/RHEL ------------
# firewall-cmd --zone=public --permanent --add-port=80/tcp
# firewall-cmd --zone=public --permanent --add-port=443/tcp
# firewall-cmd --reload

4. Para ejecutar Lychee de manera efectiva, se recomienda aumentar los valores de las siguientes propiedades en el archivo php.ini .

# vim /etc/php/php.ini			#CentOS/RHEL
$ sudo vim /etc/php/7.0/fpm/php.ini     #Ubuntu/Debian 

Busque estos parámetros de PHP y cambie sus valores a:

max_execution_time = 200
post_max_size = 100M
upload_max_size = 100M
upload_max_filesize = 20M
memory_limit = 256M

5. Ahora configure PHP-FPM para configurar el usuario y el grupo, escuche el archivo socket www.conf como se explica.

# vim /etc/php-fpm.d/www.conf		        #CentOS/RHEL
$ sudo vim /etc/php/7.0/fpm/pool.d/www.conf	#Ubuntu/Debian

Busque las directivas a continuación para configurar el usuario/grupo de procesos de Unix (cambie www-data a nginx en CentOS).

user = www-data
group = www-data

También cambie la directiva listen en la que aceptar solicitudes FastCGI a un socket Unix.

listen = /run/php/php7.0-fpm.sock

Y configure los permisos de propiedad apropiados para el socket Unix usando la directiva (cambie www-data a nginx en CentOS/RHEL).

listen.owner = www-data
listen.group = www-data

Guarde el archivo y reinicie los servicios nginx y php-fpm.

# systemctl restart nginx php-fpm              #CentOS/RHEL
$ sudo systemctl restart nginx php7.0-fpm      #Ubuntu/Debian

Paso 2: Instalación segura de MariaDB

6. En este paso, debe proteger la instalación de la base de datos MariaDB (que no está protegida por defecto si se instala en un sistema nuevo), ejecutando el script de seguridad que viene con el paquete binario.

Ejecute el siguiente comando como root para iniciar el script.

$ sudo mysql_secure_installation

Se le pedirá que establezca una contraseña de root, elimine usuarios anónimos, desactive el inicio de sesión de root de forma remota y elimine la base de datos de prueba. Después de crear una contraseña de root, responda yes/y al resto de preguntas.

Enter current password for root (enter for none):
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

Paso 3: Instale Lychee Photo Management System

7. Para instalar Lychee, primero debe crear una base de datos con los permisos adecuados utilizando los siguientes comandos.

$ sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE lychee; 
MariaDB [(none)]> CREATE USER 'lycheeadmin'@'localhost' IDENTIFIED BY '[email protected]!#@%$Lost';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON  lychee.* TO 'lycheeadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

8. A continuación, vaya a la raíz del documento web y obtenga la última versión de Lychee usando la herramienta de línea de comandos git, como se muestra.

$ cd /var/www/html/
$ sudo git clone --recurse-submodules https://github.com/LycheeOrg/Lychee.git

9. Luego, configure los permisos y la propiedad correctos en el directorio de instalación como se muestra (reemplace admin con un nombre de usuario en su sistema).

------------ CentOS/RHEL ------------
# chown admin:nginx -R /var/www/html/Lychee
# chmod 775 -R /var/www/html/Lychee
------------ Debian/Ubuntu ------------
$ sudo chown admin:www-data -R /var/www/html/Lychee
$ sudo chmod 775  -R /var/www/html/Lychee

10. En este paso, debe configurar el compositor en el directorio de instalación de lychee, que se utilizará para instalar las dependencias de PHP.

# cd Lychee/
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
# php composer.phar update

Paso 4: configurar el bloque del servidor Nginx para Lychee

12. A continuación, debe crear y configurar un bloque de servidor Nginx para la aplicación Lychee en /etc/nginx/conf.d/.

# vim /etc/nginx/conf.d/lychee.conf

Agregue la siguiente configuración en el archivo anterior, recuerde usar su propio nombre de dominio en lugar de lychee.example.com (esto es solo un dominio ficticio).

server {
	listen      80;
	server_name	 lychee.example.com;
	root         	/var/www/html/Lychee/;
	index       	index.html;

	charset utf-8;
	gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript 	image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
	location / {
		try_files $uri $uri/ /index.php?$query_string;
	}
	location ~ \.php {
		include fastcgi.conf;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/run/php/php7.0-fpm.sock;
	}
	location ~ /\.ht {
		deny all;
	}
}

Luego guarde el archivo y reinicie el servidor web Nginx y PHP-FPM para aplicar los cambios recientes.

# systemctl restart nginx php-fpm              #CentOS/RHEL
$ sudo systemctl restart nginx php7.0-fpm      #Ubuntu/Debian

Paso 5: Instalación completa de Lychee a través del navegador web

13. Ahora use la URL lychee.example.com para abrir el instalador web de Lychee en su navegador y proporcione la configuración de conexión de su base de datos e ingrese el nombre de la base de datos que creó para lychee y haga clic en Conectar.

14. A continuación, ingrese un nombre de usuario y contraseña para su instalación y haga clic en Crear inicio de sesión. Después de iniciar sesión, aterrizará en el panel de administración que contiene los álbumes predeterminados como se muestra en la siguiente captura de pantalla.

Para cargar una foto o importar desde un enlace o importar desde Dropbox o desde otro servidor o agregar un álbum, haga clic en el signo + . Y para ver fotos en un álbum, simplemente haga clic en él.

Para obtener más información, visite la página de inicio de Lychee: https://lycheeorg.github.io/

Lychee es un sistema de administración de fotos PHP elegante, de código abierto y fácil de usar para administrar y compartir fotos. Si tiene alguna pregunta o comentario, utilice el formulario a continuación para escribirnos.