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 sudo
nhó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 user1
tư cách thành viên nhóm và kiểm tra xem usermod
l có hoạt động với groups k
:
groups user1
Bây giờ sử dụng su
lệnh để chuyển sang user1
tà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 ssh
bằ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 root
tà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 user1
tà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 DocumentRoot
tù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 Directory
Apache 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_rewrite
, mod_authz_core
và mod_headers
module 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 root
người dùng MariaDB / MySQL , hãy chọn “Y” (đối với có) và sau đó nhập root
mậ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 root
ngườ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_db
và tên người dùng selfoss_user
bằ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 composer
về 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
- 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
- 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
- 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àoGenerate
.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.
- 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.
- 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/
- 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