Lychee là phần mềm quản lý ảnh nguồn mở dựa trên PHP và MySQL. Đây là phần mềm quản lý ảnh tự lưu trữ cho phép bạn tải lên, duyệt và chia sẻ ảnh một cách an toàn trên máy chủ của mình.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Lychee Photo Management trên máy chủ Debian 12. Bạn sẽ sử dụng LAMP Stack để chạy Lychee và bảo mật Lychee bằng HTTPS thông qua Certbot và Letsencrypt.
Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Ubuntu của bạn.
Bây giờ hãy cài đặt các gói LAMP Stack vào hệ thống Debian của bạn bằng lệnh sau. Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22157%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy thực hiện lệnh bên dưới để kiểm tra trạng thái dịch vụ Apache. Bạn sẽ thấy máy chủ web Apache đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra máy chủ MariaDB bằng lệnh sau. Máy chủ MariaDB sẽ chạy và được tự động bật trên hệ thống của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản PHP bằng lệnh sau - Bạn có thể thấy PHP 8.3 là đã cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22353%22%3E%3C/svg%3E
Mở tệp '/etc/php/8.3/apache2/php.ini' với trình soạn thảo 'nano'.
Thay đổi cấu hình mặc định như thế này - Đảm bảo điều chỉnh các tùy chọn 'memory_limit' và 'date.timezone' theo đó.
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ web Apache và áp dụng các thay đổi của bạn.
Thực hiện lệnh 'mariadb-secure-installation' bên dưới để thiết lập máy chủ MariaDB của bạn.
Bây giờ bạn sẽ được yêu cầu cấu hình MariaDB sau:
Đăng nhập vào máy chủ MariaDB bằng lệnh 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB khi được nhắc.
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu mới 'lychee' với người dùng 'lycheeuser@localhost' và mật khẩu 'LycheePassword'. Bạn có thể thay đổi thông tin chi tiết của cơ sở dữ liệu khi cần.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22104%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để đảm bảo rằng người dùng 'lycheeuser@localhost' có thể truy cập cơ sở dữ liệu 'lychee'.
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy kết quả đầu ra sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Cuối cùng, nhập 'quit' để thoát khỏi máy chủ MariaDB.
Nhưng trước tiên, hãy cài đặt gói 'unzip' vào hệ thống Debian của bạn bằng lệnh sau.
Đi đến thư mục '/var/www' và tải xuống bản phát hành mã nguồn Lychee bằng lệnh 'wget' bên dưới. Hãy đảm bảo lấy liên kết cho phiên bản mới nhất từ trang phát hành Lychee.
Sau khi tải xuống, hãy giải nén mã nguồn Lychee bằng lệnh 'unzip' bên dưới. Mã nguồn sẽ được trích xuất vào thư mục '/var/www/Lychee'.
Tiếp theo, thực hiện lệnh sau để thay đổi quyền sở hữu thư mục '/var/www/Lychee' thành người dùng 'www-data' và làm cho một số thư mục có thể ghi được đối với người dùng 'www-data'.
Bây giờ hãy chạy lệnh sau để sao chép tệp '.env' cho Lychee và sửa đổi tệp này bằng trình chỉnh sửa 'nano'.
Thay đổi APP_URL mặc định bằng tên miền của bạn và cấu hình cơ sở dữ liệu với 'mysql' và các chi tiết cơ sở dữ liệu của bạn như sau:
Lưu tệp và thoát khỏi trình chỉnh sửa.
Đầu tiên, hãy chạy lệnh bên dưới để kích hoạt 'viết lại' mô-đun.
Bây giờ hãy chỉnh sửa cấu hình Apache '/etc/apache2/apache.conf' bằng cách sử dụng 'nano'.
Thêm cấu hình sau vào tệp. Điều này cho phép bạn thiết lập '.htaccess' để viết lại các quy tắc.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy tạo cấu hình máy chủ ảo Apache mới '/etc/apache2/sites-available/lychee.conf' bằng lệnh biên tập 'nano' bên dưới.
Dán cấu hình sau và đảm bảo thay đổi tùy chọn 'ServerName' bằng tên miền mục tiêu của bạn. Đảm bảo giống với APP_URL trong tệp '.env'.
Khi hoàn tất, hãy lưu và thoát khỏi tệp.
Bây giờ hãy chạy lệnh bên dưới để kích hoạt tệp máy chủ ảo 'lychee.conf' và xác minh cú pháp Apache của bạn. Nếu bạn có cú pháp Apache đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Cuối cùng, hãy chạy lệnh sau để khởi động lại Apache và áp dụng các thay đổi của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22694%22%20height=%22281%22%3E%3C/svg%3E
Chạy lệnh bên dưới để cài đặt Certbot và plugin Apache.
Sau khi cài đặt hoàn tất, hãy chạy lệnh 'certbot' sau để tạo chứng chỉ SSL/TLS mới cho cài đặt Lychee. Đảm bảo thay đổi tên miền và địa chỉ email trong lệnh này.
Khi quá trình hoàn tất, cài đặt Lychee của bạn sẽ được bảo mật bằng HTTPS và chứng chỉ SSL/TLS của bạn sẽ có tại thư mục '/etc/letsencrypt/live/domain.com'.
Nhấp vào Tiếp theo để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
Đảm bảo mọi tiện ích mở rộng PHP được cài đặt và mô-đun 'viết lại' Apache được bật trên hệ thống của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22348%22%3E%3C/svg%3E
Đảm bảo rằng PHP có thể đọc, ghi và thực thi trong một số thư mục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22748%22%3E%3C/svg%3E
Kiểm tra tệp '.env' trong màn hình của bạn và đảm bảo tên miền và thông tin chi tiết MariaDB của bạn là chính xác.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22711%22%20height=%22750%22%3E%3C/svg%3E
Bây giờ trình cài đặt sẽ tạo khóa ứng dụng cho Vải thiều.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22479%22%3E%3C/svg%3E
Nhập tên người dùng quản trị, địa chỉ email và mật khẩu của bạn. Và quá trình cài đặt Lychee sẽ hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22436%22%3E%3C/svg%3E
Trên trang chủ Lychee, nhấp vào dấu nhắc đăng nhập, sau đó nhập tên người dùng và mật khẩu quản trị của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22590%22%20height=%22315%22%3E%3C/svg%3E
Bạn có thể thấy bên dưới Bảng điều khiển người dùng Lychee sau khi tải một số hình ảnh lên máy chủ Lychee.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Lychee Photo Management trên máy chủ Debian 12. Bạn sẽ sử dụng LAMP Stack để chạy Lychee và bảo mật Lychee bằng HTTPS thông qua Certbot và Letsencrypt.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo rằng bạn có những điều sau:- Máy chủ Debian 12
- Người dùng không phải root có quyền quản trị viên
Cài đặt các phần phụ thuộc
Trong phần này, bạn sẽ cài đặt LAMP Stack (Linux, Apache, MariaDB và PHP) trên máy chủ Debian. Hiện tại, Lychee hỗ trợ PHP 8.2 trở lên, có sẵn theo mặc định trên kho lưu trữ Debian.Trước tiên, hãy chạy lệnh bên dưới để cập nhật chỉ mục gói Ubuntu của bạn.
Mã:
sudo apt update

Bây giờ hãy cài đặt các gói LAMP Stack vào hệ thống Debian của bạn bằng lệnh sau. Nhập 'Y' để xác nhận cài đặt.
Mã:
sudo apt install apache2 mariadb-server php-cli php-intl php-xmlrpc php-soap php-mysql php-zip php-gd php-tidy php-mbstring php-curl php-xml php-pear php-bcmath php-imagick php-tokenizer libapache2-mod-php
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22157%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy thực hiện lệnh bên dưới để kiểm tra trạng thái dịch vụ Apache. Bạn sẽ thấy máy chủ web Apache đang chạy và được bật.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Bây giờ hãy kiểm tra máy chủ MariaDB bằng lệnh sau. Máy chủ MariaDB sẽ chạy và được tự động bật trên hệ thống của bạn.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E
Cuối cùng, hãy kiểm tra phiên bản PHP bằng lệnh sau - Bạn có thể thấy PHP 8.3 là đã cài đặt.
Mã:
php -v
php -m
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22353%22%3E%3C/svg%3E
Cấu hình PHP
Sau khi cài đặt các phụ thuộc, bạn sẽ cấu hình PHP bằng cách chỉnh sửa tệp 'php.ini' và khởi động lại máy chủ web Apache để có hiệu lực.Mở tệp '/etc/php/8.3/apache2/php.ini' với trình soạn thảo 'nano'.
Mã:
sudo nano /etc/php/8.3/apache2/php.ini
Mã:
date.timezone = Europe/Amsterdam
memory_limit = 256M
upload_max_filesize = 64MB
post_max_size = 64MB
Bây giờ hãy chạy lệnh 'systemctl' bên dưới để khởi động lại máy chủ web Apache và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart apache2
Cấu hình máy chủ MariaDB
Với PHP được cấu hình, bạn sẽ bảo mật máy chủ MariaDB bằng lệnh 'mariadb-secure-installation'. Sau đó, tạo cơ sở dữ liệu và người dùng mới sẽ được sử dụng cho Lychee thông qua máy khách 'mariadb'.Thực hiện lệnh 'mariadb-secure-installation' bên dưới để thiết lập máy chủ MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
- Đối với cài đặt máy chủ MariaDB mặc định không có mật khẩu gốc, hãy nhấn ENTER khi được hỏi về mật khẩu.
- Xác thực cục bộ cho người dùng gốc MariaDB được bảo mật theo mặc định, hãy nhập 'n' khi được yêu cầu thay đổi phương thức xác thực thành 'unix_socket'.
- Nhập 'Y' để tạo mật khẩu gốc MariaDB mới. Sau đó, nhập mật khẩu mạnh cho người dùng gốc MariaDB của bạn và lặp lại.
- Khi được yêu cầu tắt xác thực từ xa cho người dùng gốc MariaDB, hãy nhập 'Y' để đồng ý.
- Cài đặt máy chủ MariaDB mặc định đi kèm với cơ sở dữ liệu 'test' và cho phép người dùng ẩn danh truy cập vào đó.
- Nhập 'Y' cho cả hai cài đặt để xóa cơ sở dữ liệu mặc định 'test' và xóa đặc quyền ẩn danh.
- Cuối cùng, nhập 'Y' để xác nhận tải lại đặc quyền bảng.
Đăng nhập vào máy chủ MariaDB bằng lệnh 'mariadb' bên dưới. Nhập mật khẩu gốc MariaDB khi được nhắc.
Mã:
sudo mariadb -u root -p
Mã:
CREATE DATABASE lychee;
GRANT ALL PRIVILEGES ON lychee. * TO lycheeuser@'localhost' IDENTIFIED BY 'LycheePassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22104%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn bên dưới để đảm bảo rằng người dùng 'lycheeuser@localhost' có thể truy cập cơ sở dữ liệu 'lychee'.
Mã:
SHOW GRANTS FOR lycheeuser@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22250%22%3E%3C/svg%3E
Cuối cùng, nhập 'quit' để thoát khỏi máy chủ MariaDB.
Tải xuống Lychee Photo Management
Bây giờ bạn đã cấu hình cả PHP và MariaDB, bạn sẽ tải xuống mã nguồn Lychee và thiết lập thư mục cài đặt và tệp '.env'.Nhưng trước tiên, hãy cài đặt gói 'unzip' vào hệ thống Debian của bạn bằng lệnh sau.
Mã:
sudo apt install unzip -y
Mã:
cd /var/www/
wget https://github.com/LycheeOrg/Lychee/releases/download/v5.5.1/Lychee.zip
Mã:
unzip Lychee.zip
Mã:
sudo chown -R www-data:www-data /var/www/Lychee
sudo chmod u+rw /var/www/Lychee/{storage,bootstrap/cache/,public/dist,public/uploads,public/sym}
Mã:
sudo -u www-data cp /var/www/Lychee/.env-example /var/www/Lychee/.env
sudo -u www-data nano /var/www/Lychee/.env
Mã:
# domain name
APP_URL=https://photo.howtoforge.local
# database to MariaDB/MySQL
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=lychee
DB_USERNAME=lycheeuser
DB_PASSWORD=LycheePassword
Tạo máy chủ ảo Apache
Trong phần này, bạn sẽ tạo một tệp máy chủ ảo Apache mới để chạy Lychee Photo Management.Đầu tiên, hãy chạy lệnh bên dưới để kích hoạt 'viết lại' mô-đun.
Mã:
sudo a2enmod rewrite
Mã:
sudo nano /etc/apache2/apache.conf
Mã:
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Bây giờ hãy tạo cấu hình máy chủ ảo Apache mới '/etc/apache2/sites-available/lychee.conf' bằng lệnh biên tập 'nano' bên dưới.
Mã:
sudo nano /etc/apache2/sites-available/lychee.conf
Mã:
ServerAdmin [emailprotected]
ServerName photo.howtoforge.local
DocumentRoot /var/www/Lychee/
ErrorLog /var/log/apache2/photo-howtoforge-local-error_log
CustomLog /var/log/apache2/photo-howtoforge-local-access_log common
Bây giờ hãy chạy lệnh bên dưới để kích hoạt tệp máy chủ ảo 'lychee.conf' và xác minh cú pháp Apache của bạn. Nếu bạn có cú pháp Apache đúng, bạn sẽ thấy đầu ra 'Cú pháp OK'.
Mã:
sudo a2ensite lychee.conf
sudo apachectl configtest
Mã:
sudo systemctl restart apache2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22694%22%20height=%22281%22%3E%3C/svg%3E
Bảo mật Lychee bằng HTTPS
Nếu bạn đang chạy Lychee trên tên miền công cộng, hãy đảm bảo bảo mật bằng HTTPS. Trong phần này, bạn sẽ cài đặt Certbot và bảo mật Lychee bằng chứng chỉ SSL/TLS từ Letsencrypt.Chạy lệnh bên dưới để cài đặt Certbot và plugin Apache.
Mã:
sudo apt install certbot python3-certbot-apache -y
Mã:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d photo.howtoforge.local
Cài đặt Lychee Photo Management
Truy cập tên miền cài đặt Lychee nhưhttps://photo.howtoforge.local/ bằng trình duyệt web ưa thích của bạn và bạn sẽ thấy trình hướng dẫn cài đặt Lyche.Nhấp vào Tiếp theo để tiếp tục cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E
Đảm bảo mọi tiện ích mở rộng PHP được cài đặt và mô-đun 'viết lại' Apache được bật trên hệ thống của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22348%22%3E%3C/svg%3E
Đảm bảo rằng PHP có thể đọc, ghi và thực thi trong một số thư mục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22748%22%3E%3C/svg%3E
Kiểm tra tệp '.env' trong màn hình của bạn và đảm bảo tên miền và thông tin chi tiết MariaDB của bạn là chính xác.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22711%22%20height=%22750%22%3E%3C/svg%3E
Bây giờ trình cài đặt sẽ tạo khóa ứng dụng cho Vải thiều.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22479%22%3E%3C/svg%3E
Nhập tên người dùng quản trị, địa chỉ email và mật khẩu của bạn. Và quá trình cài đặt Lychee sẽ hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22436%22%3E%3C/svg%3E
Trên trang chủ Lychee, nhấp vào dấu nhắc đăng nhập, sau đó nhập tên người dùng và mật khẩu quản trị của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22590%22%20height=%22315%22%3E%3C/svg%3E
Bạn có thể thấy bên dưới Bảng điều khiển người dùng Lychee sau khi tải một số hình ảnh lên máy chủ Lychee.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22267%22%3E%3C/svg%3E