Cách cài đặt trình rút gọn URL tự lưu trữ YOURLS trên CentOS 8

theanh

Administrator
Nhân viên
YURLS là trình rút gọn URL miễn phí, mã nguồn mở và tự lưu trữ được viết bằng PHP. Nó rất giống với TinyURL hoặc Bitly và cho phép bạn chạy dịch vụ rút gọn URL của riêng mình. Nó cũng cho phép bạn thêm thương hiệu vào các URL ngắn của mình. Nó cung cấp một bộ tính năng phong phú bao gồm, Liên kết riêng tư và công khai, Từ khóa URL tùy chỉnh, Báo cáo nhấp chuột lịch sử, Giao diện Ajax, Hỗ trợ Jsonp và nhiều tính năng khác.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt YOURLS trên CentOS 8 với Let's Encrypt SSL.

Điều kiện tiên quyết​

  • Một máy chủ chạy CentOS 8.
  • Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình cho máy chủ.

Cài đặt LEMP Server​

Trước tiên, bạn sẽ cần cài đặt Nginx, MariaDB, PHP và các tiện ích mở rộng PHP cần thiết trong máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
dnf install nginx mariadb-server php php-fpm php-json php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath git unzip wget -y
Sau khi tất cả các gói được cài đặt, hãy chỉnh sửa tệp cấu hình PHP-FPM /etc/php-fpm.d/www.conf và thay đổi người dùng từ apache thành nginx:
Mã:
nano /etc/php-fpm.d/www.conf
Thay đổi các dòng sau:
Mã:
user = nginxgroup = nginx
Lưu và đóng tệp, sau đó khởi động dịch vụ Nginx, MariaDB, PHP-FPM và cho phép chúng khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo cơ sở dữ liệu cho YOURLS​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho YOURLS. Trước tiên, hãy đăng nhập vào MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE yourlsdb;
MariaDB [(none)]> CẤP TẤT CẢ CÁC QUYỀN TRÊN yourlsdb.* CHO 'yourlsuser'@'localhost' ĐƯỢC XÁC ĐỊNH BẰNG 'password';
Tiếp theo, xóa các quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> XÓA CÁC QUYỀN;
MariaDB [(none)]> \q
Lúc này, MariaDB đã được cài đặt và cấu hình.

Cài đặt YOURLS​

Trước tiên, hãy thay đổi thư mục thành Nginx web root và tải xuống phiên bản YOURLS mới nhất bằng lệnh sau:
Mã:
cd /var/www/html
git clone https://github.com/YOURLS/YOURLS.git
Tiếp theo, đổi tên tệp cấu hình mẫu bằng lệnh sau:
Mã:
cd YOURLS/user/
cp config-sample.php config.php
Tiếp theo, hãy chỉnh sửa tệp config.php và xác định cài đặt cơ sở dữ liệu của bạn:
Mã:
nano config.php
Thay đổi các dòng sau:
Mã:
/** MySQL database username */define( 'YOURLS_DB_USER', 'yourlsuser' );/** Mật khẩu cơ sở dữ liệu MySQL */define( 'YOURLS_DB_PASS', 'password' );/** Tên cơ sở dữ liệu cho YOURLS ** Chỉ sử dụng chữ thường [a-z], chữ số [0-9] và dấu gạch dưới [_] */define( 'YOURLS_DB_NAME', 'yourlsdb' );/** Tên máy chủ MySQL. ** Nếu sử dụng cổng không chuẩn, hãy chỉ định cổng đó như 'hostname:port', ví dụ: 'localhost:9999' hoặc '127.0.0.1:666' */define( 'YOURLS_DB_HOST', 'localhost' );/** Tiền tố bảng MySQL ** YOURLS sẽ tạo bảng bằng tiền tố này (ví dụ: `yourls_url`, `yourls_options`, ...) ** Chỉ sử dụng chữ thường [a-z], chữ số [0-9] và dấu gạch dưới [_] */define( 'YOURLS_DB_PREFIX', 'yourls_' );define( 'YOURLS_SITE', 'http://yourls.example.com' );$yourls_user_passwords = array( 'admin' => 'yourpassword',
Lưu và đóng tệp khi bạn hoàn tất. Tiếp theo, tạo tệp .htaccess bằng lệnh sau:
Mã:
nano /var/www/html/YOURLS/.htaccess
Thêm các dòng sau:
Mã:
RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^.*$ /yourls-loader.php [L]
Lưu và đóng tệp sau đó cấp quyền và quyền sở hữu phù hợp bằng lệnh sau:
Mã:
chown -R nginx:nginx /var/www/html/YURLS
chmod -R 775 /var/www/html/YURLS
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx cho YOURLS​

Tiếp theo, tạo tệp cấu hình máy chủ ảo Nginx mới cho YOURLS:
Mã:
nano /etc/nginx/conf.d/yourls.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name yourls.example.com; root /var/www/html/YURLS; index index.php index.html index.htm; location / { try_files $uri $uri/ /yourls-loader.php$is_args$args; } location ~ \.php$ { include fastcgi.conf; fastcgi_index index.php; fastcgi_pass unix:/run/php-fpm/www.sock; }}
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Nginx và PHP-FPM bằng lệnh sau:
Mã:
systemctl restart nginx
systemctl restart php-fpm
Bạn cũng có thể xác minh trạng thái của Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau:
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Drop-In: /usr/lib/systemd/system/nginx.service.d ??php-fpm.conf Đang hoạt động: đang hoạt động (đang chạy) từ Thứ Ba 2020-10-20 09:37:40 EDT; 5 phút trước Tiến trình: 12864 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Tiến trình: 12862 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Tiến trình: 12860 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID chính: 12871 (nginx) Nhiệm vụ: 3 (giới hạn: 12523) Bộ nhớ: 5,5M CGroup: /system.slice/nginx.service ??12871 nginx: tiến trình chính /usr/sbin/nginx ??12872 nginx: tiến trình công nhân ??12873 nginx: tiến trình công nhân20 tháng 10 09:37:40 centos systemd[1]: Đã dừng máy chủ proxy ngược và HTTP nginx.Oct 20 09:37:40 centos systemd[1]: Bắt đầu máy chủ proxy ngược và HTTP nginx...Oct 20 09:37:40 centos nginx[12862]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là okOct 20 09:37:40 centos nginx[12862]: nginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành côngOct 20 09:37:40 centos systemd[1]: Bắt đầu máy chủ proxy ngược và HTTP nginx.

Cấu hình SELinux và Tường lửa​

Theo mặc định, SELinux được bật trong CentOS 8. Vì vậy, bạn sẽ cần cấu hình nó cho trang web YOURLS của mình.

Bạn có thể cấu hình SELinux bằng lệnh sau:
Mã:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/YOURLS
Tiếp theo, cho phép cổng 80 và 443 đi qua tường lửa bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-service=http
Mã:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập YOURLS​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập YOURLS bằng URL http://yourls.example.com/admin. Bạn sẽ thấy trang sau:



Nhấp vào nút Cài đặt YOURLS. Bạn sẽ thấy trang sau:



nhấp vào “Trang quản trị YOURLS”. Bạn sẽ thấy trang đăng nhập YOURLS:



Cung cấp tên người dùng và mật khẩu quản trị mà bạn đã xác định trong config.php, sau đó nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển YOURLS ở trang sau:


Bảo mật YOURLS bằng Let's Encrypt SSL​

Tiếp theo, bạn sẽ cần cài đặt tiện ích Certbot trong hệ thống của mình để tải xuống và cài đặt Let's Encrypt SSL cho trang web YOURLS của bạn.

Bạn có thể cài đặt ứng dụng khách Certbot bằng lệnh sau:
Mã:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Tiếp theo, lấy và cài đặt chứng chỉ SSL cho trang web YOURLS của bạn bằng lệnh sau:
Mã:
certbot-auto --nginx -d yourls.example.com
Lệnh trên sẽ cài đặt tất cả các phụ thuộc cần thiết trên máy chủ của bạn trước. Sau khi cài đặt, bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho yourls.example.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/yourls.conf
Chọn xem bạn có muốn chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] rồi [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để tiếp tục. Sau khi quá trình cài đặt hoàn tất thành công, bạn sẽ nhận được kết quả sau:
Mã:
Đang chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/conf.d/yourls.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://yourls.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/yourls.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/yourls.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 11-06-2020. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot-auto với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot-auto renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Bây giờ bạn có thể truy cập trang web YOURLS một cách an toàn bằng URL https://yourls.example.com.

Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công YOURLS với Nginx và Let's Encrypt SSL trên CentOS 8. Bây giờ bạn có thể dễ dàng lưu trữ trình rút gọn URL của riêng mình với YOURLS. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên