Lychee - Ένα υπέροχο σύστημα διαχείρισης φωτογραφιών για Linux


Το Lychee είναι ένα δωρεάν, ανοιχτού κώδικα, κομψό και εύχρηστο σύστημα διαχείρισης φωτογραφιών, το οποίο διαθέτει όλες τις απαραίτητες λειτουργίες που χρειάζεστε για την ασφαλή διαχείριση και κοινή χρήση φωτογραφιών στον διακομιστή σας. Σας επιτρέπει να διαχειρίζεστε εύκολα (ανεβάζετε, μετακινείτε, μετονομάζετε, περιγράφετε, διαγράφετε ή αναζητάτε) τις φωτογραφίες σας μέσα σε δευτερόλεπτα από μια απλή εφαρμογή web.

Χαρακτηριστικά Lychee

  • Μια εκπληκτική, όμορφη διεπαφή για τη διαχείριση όλων των φωτογραφιών σας σε ένα μέρος, απευθείας από το πρόγραμμα περιήγησής σας.
  • Κοινή χρήση φωτογραφιών και άλμπουμ με ένα κλικ με προστασία κωδικού πρόσβασης.
  • Προβολή όλων των εικόνων σας σε λειτουργία πλήρους οθόνης με προώθηση και πλοήγηση προς τα πίσω χρησιμοποιώντας το πληκτρολόγιό σας ή αφήστε άλλους να περιηγηθούν στις φωτογραφίες σας κάνοντας δημόσιες.
  • Υποστηρίζει την εισαγωγή φωτογραφιών από διάφορες πηγές: localhost, Dropbox, απομακρυσμένο διακομιστή ή χρήση συνδέσμου.

Για να εγκαταστήσετε το Lychee, ό,τι χρειάζεστε είναι ένας τρέχων διακομιστής ιστού όπως Apache ή Nginx με PHP 5.5 ή μεταγενέστερη έκδοση και MySQL -Βάση δεδομένων.

Για τους σκοπούς αυτού του άρθρου, θα εγκαταστήσω ένα σύστημα διαχείρισης φωτογραφιών Lychee με Nginx, PHP-FPM 7.0, και MariaDB σε RHEL 8 VPS με όνομα τομέα lychee.example.com.

Βήμα 1: Εγκαταστήστε τα Nginx, PHP και MariaDB

1. Αρχικά ξεκινήστε εγκαθιστώντας τα Nginx, PHP με τις απαραίτητες επεκτάσεις και τη βάση δεδομένων MariaDB για να ρυθμίσετε ένα περιβάλλον φιλοξενίας για να τρέξετε το Lychee.

Σε Cent/RHEL/Rocky Linux και AlmaLinux

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

Σε Ubuntu και Debian

$ 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. Αφού εγκαταστήσετε τα απαραίτητα πακέτα, ξεκινήστε τις υπηρεσίες nginx, php-fpm, και mariadb, ενεργοποιήστε κατά την εκκίνηση και ελέγξτε εάν αυτές οι υπηρεσίες είναι σε λειτουργία και λειτουργούν.

------------ 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.4-fpm mysql
$ sudo systemctl status nginx php7.4-fpm mysql
$ sudo systemctl enable nginx php7.4-fpm mysql

3. Στη συνέχεια, εάν έχετε ενεργοποιημένο τείχος προστασίας στο σύστημά σας, πρέπει να ανοίξετε τις θύρες 80 και 443 στο τείχος προστασίας για να επιτρέψετε στον πελάτη αιτήματα στον διακομιστή web Nginx στο HTTP και HTTPS αντίστοιχα, όπως φαίνεται.

------------ 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. Για την αποτελεσματική εκτέλεση του Lychee, συνιστάται να αυξήσετε τις τιμές των παρακάτω ιδιοτήτων στο αρχείο php.ini.

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

Αναζητήστε αυτές τις παραμέτρους PHP και αλλάξτε τις τιμές τους σε:

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

5. Τώρα διαμορφώστε το PHP-FPM για να ορίσετε το αρχείο χρήστη και ομάδας, υποδοχή υποδοχής ακρόασης www.conf όπως εξηγείται.

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

Αναζητήστε τις παρακάτω οδηγίες για να ορίσετε τον χρήστη/ομάδα διεργασιών Unix (αλλάξτε το www-data σε nginx στο CentOS).

user = www-data
group = www-data

Επίσης, αλλάξτε την οδηγία ακρόαση για την αποδοχή αιτημάτων FastCGI σε μια υποδοχή Unix.

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

Και ορίστε τα κατάλληλα δικαιώματα ιδιοκτησίας για την υποδοχή Unix χρησιμοποιώντας την οδηγία (αλλάξτε το www-data σε nginx στο CentOS/RHEL).

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

Αποθηκεύστε το αρχείο και επανεκκινήστε τις υπηρεσίες nginx και php-fpm.

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

Βήμα 2: Ασφαλίστε την εγκατάσταση του MariaDB

6. Σε αυτό το βήμα, θα πρέπει να ασφαλίσετε την εγκατάσταση της βάσης δεδομένων MariaDB (η οποία δεν είναι ασφαλής από προεπιλογή εάν εγκατασταθεί σε νέο σύστημα), εκτελώντας το σενάριο ασφαλείας που συνοδεύει το δυαδικό πακέτο.

Εκτελέστε την ακόλουθη εντολή ως root, για να ξεκινήσετε το σενάριο.

$ sudo mysql_secure_installation

Θα σας ζητηθεί να ορίσετε έναν κωδικό πρόσβασης root, να αφαιρέσετε ανώνυμους χρήστες, να απενεργοποιήσετε τη σύνδεση root από απόσταση και να καταργήσετε τη δοκιμαστική βάση δεδομένων. Αφού δημιουργήσετε έναν κωδικό πρόσβασης root, και απαντήστε yes/y στις υπόλοιπες ερωτήσεις.

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

Βήμα 3: Εγκαταστήστε το Lychee Photo Management System

7. Για να εγκαταστήσετε το Lychee, πρώτα, πρέπει να δημιουργήσετε μια βάση δεδομένων για αυτό με τα κατάλληλα δικαιώματα χρησιμοποιώντας τις ακόλουθες εντολές.

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

8. Στη συνέχεια, μετακινηθείτε στη ρίζα του εγγράφου Ιστού και πάρτε την πιο πρόσφατη έκδοση του Lychee χρησιμοποιώντας το εργαλείο γραμμής εντολών git, όπως φαίνεται.

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

9. Στη συνέχεια, ορίστε τα σωστά δικαιώματα και την ιδιοκτησία στον κατάλογο εγκατάστασης όπως φαίνεται (αντικαταστήστε τον admin με ένα όνομα χρήστη στο σύστημά σας).

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

10. Σε αυτό το βήμα, πρέπει να ρυθμίσετε το composer στον κατάλογο εγκατάστασης lychee, ο οποίος θα χρησιμοποιηθεί για την εγκατάσταση εξαρτήσεων 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

Βήμα 4: Διαμόρφωση μπλοκ διακομιστή Nginx για Lychee

12. Στη συνέχεια, πρέπει να δημιουργήσετε και να διαμορφώσετε ένα μπλοκ διακομιστή Nginx για την εφαρμογή Lychee στην περιοχή /etc/nginx/conf.d/.

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

Προσθέστε την ακόλουθη διαμόρφωση στο παραπάνω αρχείο, θυμηθείτε να χρησιμοποιήσετε το δικό σας όνομα τομέα αντί για lychee.example.com (αυτός είναι απλώς ένας εικονικός τομέας).

server {
	listen      80;
	server_name	 lychee.example.com;
	root         	/var/www/html/Lychee/public;
	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;
	}
}

Στη συνέχεια, αποθηκεύστε το αρχείο και επανεκκινήστε τον διακομιστή web Nginx και το PHP-FPM για να εφαρμόσετε τις πρόσφατες αλλαγές.

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

Βήμα 5: Ολοκληρώστε την εγκατάσταση του Lychee μέσω προγράμματος περιήγησης στο Web

13. Τώρα χρησιμοποιήστε τη διεύθυνση URL lychee.example.com για να ανοίξετε το πρόγραμμα εγκατάστασης ιστού Lychee στο πρόγραμμα περιήγησής σας και να δώσετε τις ρυθμίσεις σύνδεσης της βάσης δεδομένων σας και να εισαγάγετε το όνομα της βάσης δεδομένων που δημιουργήσατε για lychee και κάντε κλικ στην Σύνδεση.

14. Στη συνέχεια, εισαγάγετε ένα όνομα χρήστη και κωδικό πρόσβασης για την εγκατάστασή σας και κάντε κλικ στην επιλογή Δημιουργία σύνδεσης. Μετά τη σύνδεση, θα προσγειωθείτε στον πίνακα ελέγχου διαχειριστή που περιέχει τα προεπιλεγμένα Άλμπουμ όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Για να ανεβάσετε μια φωτογραφία ή να εισαγάγετε από έναν σύνδεσμο ή να εισαγάγετε από το Dropbox ή από άλλο διακομιστή ή να προσθέσετε ένα άλμπουμ, κάντε κλικ στο σύμβολο +. Και για να προβάλετε φωτογραφίες σε ένα άλμπουμ, απλώς κάντε κλικ σε αυτό.

Για περισσότερες πληροφορίες, επισκεφθείτε την αρχική σελίδα του Lychee: https://lycheeorg.github.io/

Το Lychee είναι ένα ανοιχτού κώδικα, εύχρηστο και κομψό σύστημα διαχείρισης φωτογραφιών PHP για διαχείριση και κοινή χρήση φωτογραφιών. Εάν έχετε ερωτήσεις ή σχόλια, χρησιμοποιήστε την παρακάτω φόρμα για να μας γράψετε.