Lychee - Sistemụ njikwa foto dị mma maka Linux


Lychee bụ sistemu njikwa foto n'efu, mepere emepe, mara mma yana dịkwa mfe iji, nke na-abịa yana njirimara niile dị mkpa ịchọrọ maka ijikwa na kesaa foto na nchekwa na sava gị. Ọ na-enye gị ohere ijikwa ngwa ngwa (bulite, bugharịa, nyegharịa aha, kọwaa, ihichapụ ma ọ bụ chọọ) foto gị n'ime sekọnd site na ngwa weebụ dị mfe.

  • Ihe nhụsianya mara mma mara mma iji jikwaa foto gị niile n'otu ebe, site na ihe nchọgharị gị.
  • Foto otu pịa na ịkekọrịta ọba na nchekwa paswọọdụ.
  • Lee ihe onyonyo gị niile na ọnọdụ ihuenyo zuru oke site na iji igodo mbugharị na azụ azụ site na iji ahụigodo gị ma ọ bụ hapụ ndị ọzọ ka ha chọgharịa foto gị site n'ime ka ọhaneze pụta.
  • Na-akwado mbubata foto sitere na ebe dị iche iche: localhost, Dropbox, sava dịpụrụ adịpụ, ma ọ bụ iji njikọ.

Iji wụnye Lychee, ihe niile ịchọrọ bụ sava weebụ na-agba ọsọ dị ka Apache ma ọ bụ Nginx nwere PHP 5.5 ma ọ bụ karịa yana MySQL-Database.

Maka ebumnuche nke isiokwu a, m ga-etinye usoro njikwa foto Lychee na Nginx, PHP-FPM 7.0, na MariaDB na RHEL 8 VPS nwere aha ngalaba lychee.example.com.

Kwụpụ 1: Wụnye Nginx, PHP na MariaDB

1. Mbụ na-amalite site na ịwụnye Nginx, PHP nwere mkpa extensions, na MariaDB nchekwa data melite a Bochum gburugburu na-agba ọsọ Lychee.

# 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
$ 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. Ozugbo ị wụnye ngwugwu ndị dị mkpa, malite nginx, php-fpm, na mariadb ọrụ, mee ka ha nwee ike n'oge buut ma chọpụta ma ọrụ ndị a na-arụ ọrụ.

------------ 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. Ọzọ, ọ bụrụ na ị nwere firewall na-arụ ọrụ na sistemụ gị, ịkwesịrị imepe ọdụ ụgbọ mmiri 80 na 443 na firewall iji kwe ka arịrịọ ndị ahịa na sava weebụ Nginx na HTTP na HTTPS n'otu n'otu, dị ka egosiri.

------------ 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. Iji na-agba ọsọ Lychee nke ọma, a na-atụ aro ka ịbawanye ụkpụrụ nke ihe ndị a na faịlụ php.ini.

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

Chọọ paramita PHP ndị a wee gbanwee ụkpụrụ ha ka ọ bụrụ:

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

5. Ugbu a hazie PHP-FPM ka ịtọ onye ọrụ na otu, gee oghere www.conf faịlụ dị ka akọwara.

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

Chọọ ntuziaka ndị dị n'okpuru ka ịtọọ onye ọrụ Unix/otu usoro (gbanwee www-data ka ọ bụrụ nginx na CentOS).

user = www-data
group = www-data

Ọzọkwa, gbanwee ntuziaka ntị nke ị ga-eji nabata arịrịọ FastCGI na oghere Unix.

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

Ma tọọ ikike nwe kwesịrị ekwesị maka oghere Unix site na iji ntuziaka (gbanwee www-data na nginx na CentOS/RHEL).

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

Chekwaa faịlụ ma malitegharịa ọrụ nginx na php-fpm.

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

Kwụpụ 2: Chekwaa nwụnye MariaDB

6. N'ime usoro a, ị ga-echekwa nchekwa data MariaDB (nke a na-ejighị n'aka na ndabara ma ọ bụrụ na etinyere na usoro ọhụrụ), site na-agba ọsọ ederede nchekwa nke na-abịa na ngwugwu ọnụọgụ abụọ.

Gbaa iwu a dị ka mgbọrọgwụ, ka ịmalite edemede ahụ.

$ sudo mysql_secure_installation

A ga-akpali gị ịtọ paswọọdụ mgbọrọgwụ, wepụ ndị ọrụ na-amaghị aha, gbanyụọ nbanye mgbọrọgwụ na anya ma wepụ nchekwa data ule. Mgbe ịmepụtachara mgbọrọgwụ okwuntughe, wee zaa ee/y n'ajụjụ ndị ọzọ.

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

Nzọụkwụ 3: Wụnye Lychee Photo Management System

7. Iji wụnye Lychee, nke mbụ, ịkwesịrị ịmepụta nchekwa data maka ya na ikikere kwesịrị ekwesị site na iji iwu ndị a.

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

8. Ọzọ, banye na mgbọrọgwụ akwụkwọ weebụ wee jide ụdị Lychee kachasị ọhụrụ site na iji git Command-line tool, dị ka egosiri.

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

9. Mgbe ahụ, tọọ ikike ziri ezi na nwe ya na ndekọ nrụnye dị ka egosiri (dochie admin na aha njirimara na sistemụ gị).

------------ 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. N'ime usoro a, ịkwesịrị ịmepụta onye na-ede egwú na ndekọ ntinye nke lychee, nke a ga-eji wụnye ndabere 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

Kwụpụ 4: Hazie Nginx Server Block maka Lychee

12. Ọzọ, ịkwesịrị ịmepụta na hazie ihe nkesa Nginx maka ngwa Lychee n'okpuru /etc/nginx/conf.d/.

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

Tinye nhazi ndị a na faịlụ dị n'elu, cheta iji aha ngalaba nke gị kama lychee.example.com (nke a bụ naanị ngalaba dummy).

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;
	}
}

Wee chekwaa faịlụ ahụ wee malitegharịa sava weebụ Nginx na PHP-FPM ka itinye mgbanwe ndị na-adịbeghị anya.

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

Kwụpụ 5: Nwụnye Lychee zuru ezu site na ihe nchọgharị weebụ

13. Ugbu a, jiri URL lychee.example.com mepee ihe nrụnye webụ Lychee na ihe nchọgharị gị wee nye ntọala njikọ nchekwa data gị wee tinye aha nchekwa data ị mepụtara maka lychee wee pịa Jikọọ.

14. Ọzọ, tinye aha njirimara na paswọọdụ maka nrụnye gị wee pịa Mepụta Nbanye. Mgbe nbanye, ị ga-ada na admin dashboard nke nwere ndabara Albums dị ka e gosiri na-esonụ nseta ihuenyo.

Iji bulite foto ma ọ bụ bubata site na njikọ ma ọ bụ bubata site na Dropbox ma ọ bụ site na sava ọzọ ma ọ bụ tinye otu ọba, pịa akara +. Ka ilele foto n'ime ọba, pịa ya naanị.

Maka ozi ndị ọzọ, gaa na Homepage Lychee: https://lycheeorg.github.io/

Lychee bụ isi mmalite mepere emepe, dị mfe iji, yana sistemu njikwa foto PHP mara mma iji jikwaa na kesaa foto. Ọ bụrụ na ị nwere ajụjụ ọ bụla ma ọ bụ kwuo, jiri ụdị dị n'okpuru degara anyị akwụkwọ.