Cách cài đặt Selfoss RSS Reader trên Debian 9 LAMP VPS

Selfoss RSS Reader là trình đọc đa năng dựa trên web tự lưu trữ mã nguồn mở, phát trực tiếp, nguồn cấp tin tức (RSS / Atom),…. Selfoss RSS Reader có tính năng nhập OPML, một API JSON hoàn chỉnh và hệ thống plug-in mở của nó cho phép bạn dễ dàng mở rộng chức năng mặc định bằng cách viết các trình kết nối dữ liệu tùy chỉnh của riêng bạn. Bạn có thể sử dụng Selfoss để phát trực tiếp vvà thu thập tất cả các bài đăng, tweet, podcast và nguồn cấp dữ liệu của mình ở một nơi trung tâm mà bạn có thể dễ dàng truy cập từ bất kỳ máy tính để bàn hoặc thiết bị di động nào.

Trong hướng dẫn này, mình sẽ cài đặt Selfoss RSS Reader 2.17 trên VPS Debian 9 LAMP sử dụng máy chủ web Apache, PHP 7.1 và cơ sở dữ liệu MariaDB.

Những thứ cần chuẩn bị:

Một phiên bản máy chủ VPS Debian 9 sạch có quyền truy cập SSH

Bước 1: Thêm người dùng Sudo

Chúng tôi sẽ bắt đầu bằng cách thêm một sudo newuser. Đầu tiên, đăng nhập vào máy chủ của bạn bằng root:

ssh root@YOUR_VULTR_IP_ADDRESS
apt-get -y install sudo

Bây giờ, hãy thêm một người dùng mới được gọi là user1(hoặc tên người dùng ưa thích của bạn):

adduser user1

Khi được nhắc, hãy nhập mật khẩu an toàn và dễ nhớ. Bạn cũng sẽ được nhắc nhập “Tên đầy đủ” và một số chi tiết khác, nhưng bạn chỉ cần để trống bằng cách nhấn Enter.

Bây giờ hãy kiểm tra /etc/sudoers để đảm bảo rằng sudoers nhóm đã được bật:

visudo

Tìm một phần như thế này:

%sudo        ALL=(ALL:ALL)       ALL

Dòng này cho chúng ta biết rằng người dùng là thành viên của sudonhóm có thể sử dụng sudo để đạt được root được bỏ ghi chú theo mặc định, do đó bạn có thể chỉ cần thoát khỏi tệp.

Tiếp theo, chúng ta sẽ thêm user1 vào sudo group:

usermod -aG sudo user1

Chúng ta có thể xác minh user1tư cách thành viên nhóm và kiểm tra xem usermodl có hoạt động với groups k:

groups user1

Bây giờ sử dụng su lệnh để chuyển sang user1tài khoản người dùng sudo mới :

su - user1

Dấu nhắc lệnh sẽ cập nhật để cho biết rằng bạn hiện đã đăng nhập vào user1. Bạn có thể xác minh điều này bằng whoami.

whoami

Bây giờ hãy khởi động lại sshd để bạn có thể đăng nhập sshbằng tài khoản người dùng sudo không phải root mới mà bạn vừa tạo:

sudo systemctl restart sshd

Thoát khỏi user1

exit

Thoát khỏi roottài khoản (sẽ ngắt kết nối ssh của bạn ):

exit

Bây giờ bạn có thể ssh vào phiên bản máy chủ từ máy chủ cục bộ của mình bằng user1tài khoản người dùng sudo không phải root mới :

ssh user1@YOUR_VULTR_IP_ADDRESS

Nếu bạn muốn thực thi sudo mà không phải nhập mật khẩu mỗi lần, hãy mở lại /etc/sudoers bằng cách sử dụng visudo:

sudo visudo

Chỉnh sửa phần cho sudo group để nó trông giống như sau:

%sudo   ALL=(ALL) NOPASSWD: ALL

Bất cứ khi nào bạn muốn đăng nhập vào root người dùng từ bên trong sudo tài khoản người dùng, bạn có thể sử dụng một trong các lệnh sau:

sudo -i
sudo su -

Bạn có thể thoát khỏi root tài khoản và quay lại sudo tài khoản người dùng của mình bất kỳ lúc nào:

exit

Bước 2: Cập nhật hệ thống Debian 9

Đảm bảo bạn đã đăng nhập vào máy chủ bằng người dùng sudo không phải root và chạy các lệnh sau:

sudo apt-get update
sudo apt-get -y upgrade

Bước 3: Cài đặt Máy chủ Web Apache

Cài đặt máy chủ web Apache:

sudo apt-get -y install apache2 

Sau đó, sử dụng systemctl để khởi động và cho phép Apache tự động thực thi tại thời điểm khởi động:

sudo systemctl enable apache2
sudo systemctl start apache2

Kiểm tra tệp cấu hình trang web mặc định Apache của bạn để đảm bảo rằng DocumentRoot chỉ thị trỏ đến đúng thư mục:

sudo vi /etc/apache2/sites-enabled/000-default.conf 

Các DocumentRoottùy chọn cấu hình sẽ trông như thế này:

DocumentRoot "/var/www/html"

Bây giờ chúng ta cần bật mod_rewrite mô-đun Apache, vì vậy hãy đảm bảo rằng tệp cấu hình trang web mặc định Apache của bạn vẫn đang mở và thêm các lệnh DirectoryApache sau ngay trước </VirtualHost> để phần cuối của tệp cấu hình của bạn trông giống như sau:

    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Chỉ thị quan trọng nhất được hiển thị ở trên là AllowOverride All. Bây giờ lưu và thoát khỏi các tập tin, và cho phép mod_rewritemod_authz_corevà mod_headersmodule Apache:

sudo a2enmod rewrite authz_core headers

sau đó khởi động lại Apache

sudo systemctl restart apache2

Bước 4: Cài đặt PHP 7.0

Bây giờ chúng ta có thể cài đặt PHP 7.0 cùng với tất cả các mô-đun PHP cần thiết mà Selfoss RSS Reader yêu cầu:

sudo apt-get -y install php php-gd php-mbstring php-common php-mysql php-imagick php-xml libapache2-mod-php php-curl php-tidy php-zip

Bước 5: Cài đặt máy chủ MariaDB (MySQL)

Cài đặt máy chủ cơ sở dữ liệu MariaDB:

sudo apt-get -y install mariadb-server

Khởi động và kích hoạt máy chủ MariaDB tự động thực thi tại thời điểm khởi động:

sudo systemctl enable mariadb
sudo systemctl start mariadb    

Bảo mật cài đặt máy chủ MariaDB của bạn:

sudo mysql_secure_installation

Các root mật khẩu sẽ được để trống, vì vậy chỉ đơn giản là nhấn enter khi được nhắc cho root mật khẩu.

Khi được nhắc tạo rootngười dùng MariaDB / MySQL , hãy chọn “Y” (đối với có) và sau đó nhập rootmật khẩu an toàn . Chỉ cần trả lời “Y” cho tất cả các câu hỏi có / không khác vì các đề xuất mặc định là các tùy chọn an toàn nhất.

Bước 6: Tạo cơ sở dữ liệu cho Selfoss RSS Reader

Đăng nhập vào MariaDB shell với tư cách rootngười dùng MariaDB bằng cách chạy lệnh sau:

sudo mariadb -u root -p

Để truy cập dấu nhắc lệnh MariaDB, chỉ cần nhập root mật khẩu MariaDB khi được nhắc. Chạy các truy vấn sau để tạo cơ sở dữ liệu MariaDB và người dùng cơ sở dữ liệu cho Selfoss RSS Reader:

CREATE DATABASE selfoss_db CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'selfoss_user'@'localhost' IDENTIFIED BY 'UltraSecurePassword';
GRANT ALL PRIVILEGES ON selfoss_db.* TO 'selfoss_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Bạn có thể thay thế tên cơ sở dữ liệu selfoss_dbvà tên người dùng selfoss_userbằng một cái gì đó khác theo ý thích của bạn, nếu bạn muốn. Ngoài ra, hãy đảm bảo rằng bạn thay thế “UltraSecurePassword” bằng một mật khẩu thực sự an toàn.

Bước 7: Cài đặt tệp RSS Reader của Selfoss

Thay đổi thư mục làm việc hiện tại của bạn thành thư mục web mặc định:

cd /var/www/html/

Nếu bạn nhận được thông báo lỗi có nội dung như 'No such file or directory'sau, hãy thử lệnh sau:

cd /var/www/ ; sudo mkdir html ; cd html

Thư mục làm việc hiện tại của bạn bây giờ sẽ là: /var/www/html/. Bạn có thể kiểm tra điều này bằng lệnh pwd(print working directory):

pwd

Bây giờ sử dụng wget để tải xuống gói cài đặt Selfoss RSS Reader:

sudo wget --content-disposition https://github.com/SSilence/selfoss/archive/2.17.zip

Liệt kê thư mục hiện tại để kiểm tra xem bạn đã tải xuống tệp thành công chưa:

ls -la

Loại bỏ index.html:

sudo rm index.html

Hãy nhanh chóng cài đặt unzip để có thể giải nén tệp:

sudo apt-get -y install unzip

Bây giờ giải nén tệp nén zip:

sudo unzip selfoss-2.17.zip

Di chuyển tất cả các tệp cài đặt vào thư mục gốc của web:

sudo mv -v selfoss-2.17/* selfoss-2.17/.* /var/www/html 2>/dev/null

Thay đổi quyền sở hữu các tệp web để tránh mọi vấn đề về quyền:

sudo chown -R www-data:www-data * ./

Khởi động lại Apache một lần nữa:

sudo systemctl restart apache2

Bước 8: Cài đặt và chạy Composer

Cài đặt composer:

sudo apt-get -y install composer

Bây giờ hãy đảm bảo rằng bạn đang ở trong thư mục webroot:

cd /var/www/html

Chạy trình soạn nhạc bằng www-data người dùng:

sudo -u www-data composer install 

Bạn sẽ thấy một số thông báo cảnh báo composervề việc không thể ghi vào bộ nhớ đệm, nhưng đừng quá lo lắng về điều đó vì mọi thứ vẫn sẽ cài đặt tốt.

Bây giờ chúng tôi đã sẵn sàng để chuyển sang bước cuối cùng.

Bước 9: Hoàn tất cài đặt Selfoss RSS Reader

  1. Trước tiên, chúng tôi cần cập nhật tệp cấu hình Selfoss RSS Reader config.ini
    sudo cp -iv defaults.ini config.ini
    
  2. Tiếp theo, mở config.ini cấu hình và thêm các giá trị cơ sở dữ liệu sau:
    [globals]
    db_type=mysql
    db_host=localhost
    db_database=selfoss_db
    db_username=selfoss_user
    db_password=UltraSecurePassword
    db_port=3306
    
  3. Bây giờ chúng tôi cần thêm băm mật khẩu vào config.ini, nhưng trước tiên chúng tôi cần tạo nó, vì vậy hãy truy cập URL sau trong trình duyệt của bạn:
    http://YOUR_VULTR_IP_ADDRESS/password
    

    Sau đó, nhập mật khẩu mong muốn của bạn vào Password trường và nhấp vào Generate.

    Chỉ cần sao chép giá trị kết quả vào tùy chọn mật khẩu trong config.ini để phần mật khẩu bây giờ trông giống như sau:

    username=admin
    password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
    salt=<long string of random chracters>
    

    Lưu ý: Hàm băm mật khẩu của bạn rõ ràng sẽ khác với hàm băm được hiển thị ở trên và bạn có thể tự do chọn tên người dùng khác.

  4. Xóa tất cả các tùy chọn chưa được chỉnh sửa khác khỏi config.ini để tệp cấu hình hoàn chỉnh của bạn trông giống như sau:
    [globals]
    db_type=mysql
    db_host=localhost
    db_database=db1
    db_username=u1
    db_password=usecpass1
    db_port=3306
    username=admin
    password=b729a37c34ff9648c33d67de3b289b58b7486dd71236343a6c2c275c2cc0477bd1d254eb92248bfa753169547d4bd2e81c2c9e460ba5bba822af1e87722dd12a
    salt=<long string of random chracters>
    

    Khi bạn đã hoàn tất việc chỉnh sửa tệp cấu hình, bạn có thể lưu và thoát khỏi tệp.

  5. Bây giờ bạn có thể đăng nhập vào Selfoss RSS Reader bằng cách truy cập trang chủ và nhập tên người dùng và mật khẩu của bạn:
     http://YOUR_VULTR_IP_ADDRESS/
    
  6. Nếu bạn muốn người đọc tự động cập nhật nguồn cấp dữ liệu của mình, bạn sẽ cần chỉnh sửa crontab của mình:
    sudo crontab -e
    

    Thêm dòng sau để làm mới nguồn cấp dữ liệu của bạn hàng giờ:

    0 * * * * www-data cd /var/www/html && php cliupdate.php
    

Bạn cũng nên định cấu hình trang web của mình để sử dụng SSL và các chức năng khác như mail server

Leave a Reply