Restyaboard là ứng dụng bảng Kanban mã nguồn mở và miễn phí. Đây là giải pháp thay thế tự lưu trữ tốt nhất cho Trello. Ứng dụng được viết bằng PHP và sử dụng PostgreSQL để lưu trữ cơ sở dữ liệu.
Trong hướng dẫn này, chúng tôi sẽ cài đặt Restyaboard trên máy chủ CentOS 7.
Điều kiện tiên quyết
Nginx không khả dụng trên kho lưu trữ YUM mặc định của CentOS, do đó chúng ta cũng sẽ cần cài đặt kho lưu trữ EPEL. Bạn có thể cài đặt EPEL bằng cách nhập:
Bây giờ bạn có thể cài đặt nginx bằng cách nhập:
Sau khi cài đặt hoàn tất, bạn có thể chạy các lệnh sau để khởi động nginx và cho phép nó tự động khởi động khi khởi động bằng các lệnh sau.
Bây giờ, Nginx sẽ chạy trên máy chủ của bạn.
Bây giờ hãy cài đặt PHP 7.0 với PHP-FPM cùng với các mô-đun cần thiết khác.
Sau khi cài đặt hoàn tất, chúng ta sẽ cần cấu hình một số thứ. Theo mặc định, PHP-FPM được cấu hình để sử dụng với Apache, bạn sẽ cần thay đổi người dùng để nó cũng có thể hoạt động với nginx. Chỉnh sửa tệp /etc/php-fpm.d/www.conf bằng trình soạn thảo văn bản yêu thích của bạn. Trong hướng dẫn này, chúng ta sẽ sử dụng trình soạn thảo nano. Nếu bạn chưa cài đặt nano, bạn có thể chạy yum -y install nano.
Bây giờ hãy tìm các dòng sau và thay đổi apache thành nginx.
Thay vì sử dụng cổng máy chủ, chúng ta sẽ sử dụng tệp socket cho PHP-FPM. Tìm dòng sau.
và đổi thành dòng sau.
Tiếp theo, tìm các dòng sau.
Thay đổi các giá trị thành:
Ngoài ra, bạn sẽ cần đặt múi giờ trong tệp cấu hình PHP. Chỉnh sửa tệp cấu hình PHP bằng lệnh:
Tìm dòng sau và Bỏ chú thích dòng đó và đặt múi giờ theo khu vực của bạn. Ví dụ:
Bỏ chú thích dòng cgi.fix_pathinfo và thay đổi giá trị thành 0.
Ngoài ra, bạn cũng sẽ cần cài đặt GeoIP. Chạy lệnh sau để cài đặt GeoIP.
Bây giờ hãy bật tiện ích mở rộng GeoIP bằng cách thêm dòng sau vào cuối /etc/php.ini
Khởi động PHP-FPM và cho phép nó khởi động khi khởi động bằng các lệnh sau.
Sau đó khởi động lại nginx bằng lệnh sau.
PostgreSQL không có sẵn trong kho lưu trữ YUM hoặc EPEL, bạn sẽ cần cài đặt kho lưu trữ PostgreSQL.
Để cài đặt PostgreSQL, hãy chạy lệnh sau.
Lệnh trên sẽ cài đặt PostgreSQL cùng với tất cả các thành phần phụ thuộc cần thiết trong hệ thống của bạn, trước khi sử dụng phần mềm, chúng ta sẽ cần chạy lệnh sau để khởi tạo cơ sở dữ liệu.
Sau khi PostgreSQL được cài đặt, đã đến lúc cấu hình nó. Chỉnh sửa /var/lib/pgsql/9.6/data/pg_hba.conf để bật xác thực dựa trên MD5.
Tìm các dòng sau và thay đổi peer thành trust và idnet thành md5.
Sau khi cập nhật, cấu hình sẽ trông như bên dưới.
Bây giờ hãy khởi động máy chủ PostgreSQL và cho phép nó tự động khởi động khi khởi động bằng các lệnh sau:
Bây giờ hãy thay đổi mật khẩu cho người dùng PostgreSQL mặc định đã được tạo trong quá trình cài đặt PostgreSQL.
Bây giờ hãy đăng nhập bằng người dùng PostgreSQL bằng lệnh sau.
Lệnh trên sẽ đăng nhập vào shell của postgres
Bây giờ hãy tạo một người dùng mới bằng cách nhập:
Bây giờ hãy chuyển sang shell PostgreSQL bằng lệnh sau.
Bạn sẽ thấy lời nhắc trên shell đã thay đổi thành postgres - #. Bây giờ hãy chạy truy vấn sau để đặt mật khẩu cho người dùng mới tạo cho cơ sở dữ liệu Restyaboard.
Hãy đảm bảo sử dụng dấu chấm phẩy ở cuối truy vấn. Truy vấn trên sẽ yêu cầu bạn nhập mật khẩu của rb_user hai lần. Bây giờ hãy tạo một cơ sở dữ liệu mới cho cơ sở dữ liệu PostgreSQL bằng cách sử dụng truy vấn sau.
Truy vấn trên sẽ tạo một cơ sở dữ liệu có tên rb_data với mã hóa UTf8 bằng cách sử dụng template0 và quyền sở hữu sẽ được cung cấp cho rb_user.
Thoát khỏi shell psql đến shell người dùng shell thông thường của postgres bằng cách sử dụng lệnh sau.
và chuyển sang người dùng root một lần nữa bằng cách sử dụng lệnh exit.
Bạn luôn có thể tìm thấy liên kết đến phiên bản mới nhất trên trang Github Restyaboard.
Bây giờ hãy giải nén tệp lưu trữ bằng các lệnh sau. Nếu bạn chưa cài đặt unzip, bạn có thể chạy yum -y install unzip.
Sau khi giải nén xong tệp lưu trữ, hãy nhập tệp SQL bằng lệnh sau.
Bây giờ hãy chỉnh sửa tệp cấu hình Restyaboard để cập nhật thông tin xác thực cơ sở dữ liệu.
Tìm các dòng sau.
Thay đổi theo tên cơ sở dữ liệu, tên người dùng và mật khẩu của cơ sở dữ liệu mà chúng ta vừa tạo để lưu trữ dữ liệu Restyaboard. Sau khi hoàn tất, nó sẽ trông như hình dưới đây.
Bây giờ bạn sẽ cần thực hiện một vài thay đổi vào tệp. Mở tệp cấu hình bằng trình soạn thảo văn bản yêu thích của bạn.
Khi bắt đầu cấu hình, hãy tìm dòng sau.
Xóa văn bản default_server và cung cấp tên miền của bạn sau tên máy chủ. Nó sẽ trông giống như hình dưới đây.
Cũng tìm dòng sau:
and
and
Thay đổi dòng trên theo thư mục cài đặt Restyaboard. Nó sẽ trông giống như hiển thị bên dưới.
and
và
Ngoài ra, hãy tìm dòng:
Đổi thành dòng sau:
Bây giờ bạn có thể đóng tệp. Bây giờ hãy cung cấp quyền sở hữu và quyền hạn phù hợp bằng các lệnh sau.
Cuối cùng, thêm các mục cron để cho phép các tác vụ đã lên lịch chạy bằng các lệnh sau.
Bây giờ bạn sẽ cần phải tắt SELinux vì cấu hình Proxy không hoạt động với các chính sách SELinux. Để vô hiệu hóa tạm thời SELinux mà không cần khởi động lại máy chủ, hãy chạy lệnh sau.
Để vô hiệu hóa hoàn toàn SELinux, bạn sẽ cần chỉnh sửa tệp /etc/selinux/config.
Tìm dòng sau:
Đổi thành:
Sau đó khởi động lại Nginx bằng lệnh sau.
Bây giờ bạn có thể truy cập máy chủ bằng cách truy cập URL sau.
Bạn sẽ thấy màn hình đăng nhập sau.
Bây giờ hãy đăng nhập bằng tên người dùng admin và mật khẩu restya. Sau khi đăng nhập, bạn sẽ thấy màn hình sau.
Để tạo một Bảng mới, hãy nhấp vào mũi tên ở góc trái của trang và nhấp vào Thêm Bảng hoặc Tổ chức.
Cung cấp tên và chọn mẫu để tạo một bảng mới.
Sau khi tạo xong Bảng, Bảng sẽ trông như hình bên dưới.
Để truy cập bảng Quản trị, bạn có thể nhấp vào nút Quản trị ở góc dưới bên phải rồi nhấp vào Cài đặt trên thanh trên cùng.
Restyaboard hiện đã được cài đặt trên máy chủ của bạn, giờ đây bạn có thể sử dụng bảng kanban để cải thiện quy trình làm việc của dự án.
Trong hướng dẫn này, chúng tôi sẽ cài đặt Restyaboard trên máy chủ CentOS 7.
Điều kiện tiên quyết
- Máy chủ CentOS 7 tối thiểu
- Quyền root
Bước 1 - Cài đặt Nginx
Trước khi cài đặt bất kỳ gói nào, bạn nên cập nhật các gói và kho lưu trữ bằng lệnh sau.
Mã:
yum -y update
Mã:
yum -y install epel-release
Mã:
yum -y install nginx
Mã:
systemctl start nginx systemctl enable nginx
Bước 2 - Cài đặt và cấu hình PHP-FPM với Mbstring
Restyaboard hỗ trợ PHP 7.0, do đó chúng ta sẽ cài đặt PHP 7.0 để có hiệu suất và bảo mật tối đa. PHP 7.0 không có sẵn trong kho lưu trữ YUM hoặc EPEL, do đó chúng ta sẽ cần cài đặt kho lưu trữ Webtatic cho mục đích này. Chạy lệnh sau để cài đặt kho lưu trữ Webtatic.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick
Mã:
nano /etc/php-fpm.d/www.conf
Mã:
; RPM: apache Đã chọn để có thể truy cập một số thư mục dưới dạng httpduser = nginx; RPM: Giữ một nhóm được phép ghi vào thư mục nhật ký.group = nginx
Mã:
listen = 127.0.0.1:9000
Mã:
listen = /run/php-fpm/php7.0-fpm.sock
Mã:
;listen.owner = nobody;listen.group = nobody;listen.mode = 0660
Mã:
listen.owner = nginxlisten.group = nginxlisten.mode = 0660
Mã:
nano /etc/php.ini
Mã:
[Ngày]; Xác định múi giờ mặc định được sử dụng bởi các hàm ngày; http://php.net/date.timezonedate.timezone = Asia/Kolkata
Mã:
cgi.fix_pathinfo=0
Mã:
yum -y install GeoIP-devel
Mã:
extension=geoip.so
Mã:
systemctl start php-fpm systemctl enable php-fpm
Mã:
systemctl restart nginx
Bước 3 - Cài đặt và cấu hình dữ liệu PostgreSQL
PostgreSQL là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng nguồn mở. Restyaboard sử dụng PostgreSQL để lưu trữ cơ sở dữ liệu của mình.PostgreSQL không có sẵn trong kho lưu trữ YUM hoặc EPEL, bạn sẽ cần cài đặt kho lưu trữ PostgreSQL.
Mã:
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Mã:
yum -y install postgresql96-server postgresql96-contrib
Mã:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Mã:
nano /var/lib/pgsql/9.6/data/pg_hba.conf
Mã:
# TYPE DATABASE USER ADDRESS METHOD# "local" chỉ dành cho kết nối socket miền Unixlocal all all peer# IPv4 local connections:host all all 127.0.0.1/32 ident# IPv6 local connections:host all all ::1/128 ident
Mã:
# TYPE DATABASE PHƯƠNG THỨC ĐỊA CHỈ NGƯỜI DÙNG# "local" chỉ dành cho kết nối socket miền Unixlocal all all trust# IPv4 local connections:host all all 127.0.0.1/32 md5# IPv6 local connections:host all all ::1/128 md5
Mã:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
Mã:
passwd postgres
Mã:
su - postgres
Bây giờ hãy tạo một người dùng mới bằng cách nhập:
Mã:
createuser rb_user
Mã:
psql
Mã:
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
Mã:
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
Thoát khỏi shell psql đến shell người dùng shell thông thường của postgres bằng cách sử dụng lệnh sau.
Mã:
\q
Bước 4 - Tải xuống Restyaboard
Vì chúng ta đã chuẩn bị sẵn tất cả các phụ thuộc, bây giờ chúng ta có thể tải xuống Restyaboard. Chạy lệnh sau để tải xuống phiên bản triển khai đã sẵn sàng.
Mã:
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
Bây giờ hãy giải nén tệp lưu trữ bằng các lệnh sau. Nếu bạn chưa cài đặt unzip, bạn có thể chạy yum -y install unzip.
Mã:
unzip board-v0.4.2.zip -d board
Mã:
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
Mã:
nano /usr/share/nginx/html/board/server/php/config.inc.php
Mã:
define('R_DB_HOST', 'localhost');define('R_DB_USER', 'restya');define('R_DB_PASSWORD', 'hjVl2!rGd');define('R_DB_NAME', 'restyaboard');define('R_DB_PORT', 5432);
Mã:
define('R_DB_HOST', 'localhost');define('R_DB_USER', 'rb_user');define('R_DB_PASSWORD', 'StrongPassword');define('R_DB_NAME', 'rb_data');define('R_DB_PORT', 5432);
Bước 5 - Cấu hình Nginx Server Block
Cấu hình khối máy chủ Restyboard nginx đi kèm với tệp nén zip. Bạn có thể sao chép tệp cấu hình vào vị trí tệp cấu hình nginx bằng lệnh sau.
Mã:
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
Mã:
nano /etc/nginx/conf.d/restyaboard.conf
Mã:
server { listen 80 default_server; server_name _;
Mã:
server { listen 80; server_name board.yourdomain.com;
Mã:
root /usr/share/nginx/html;
Mã:
location / { root /usr/share/nginx/html/client; }
Mã:
root /usr/share/nginx/html/client;
Mã:
root /usr/share/nginx/html/board;
Mã:
location / { root /usr/share/nginx/html/board/client; }
Mã:
root /usr/share/nginx/html/board/client
Mã:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
Mã:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
Mã:
chown -R nginx:nginx /usr/share/nginx/html/board/chmod -R go+w "/usr/share/nginx/html/board/media"chmod -R go+w "/usr/share/nginx/html/board/client/img"chmod -R go+w "/usr/share/nginx/html/board/tmp/cache"chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh
Mã:
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/rootecho "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/rootecho "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/rootecho "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/rootecho "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root
Mã:
setenforce 0
Mã:
nano /etc/selinux/config
Mã:
SELINUX=enforcing
Mã:
SELINUX=disabled
Mã:
systemctl restart nginx
Mã:
http://board.yourdomain.com
Bây giờ hãy đăng nhập bằng tên người dùng admin và mật khẩu restya. Sau khi đăng nhập, bạn sẽ thấy màn hình sau.
Để tạo một Bảng mới, hãy nhấp vào mũi tên ở góc trái của trang và nhấp vào Thêm Bảng hoặc Tổ chức.
Cung cấp tên và chọn mẫu để tạo một bảng mới.
Sau khi tạo xong Bảng, Bảng sẽ trông như hình bên dưới.
Để truy cập bảng Quản trị, bạn có thể nhấp vào nút Quản trị ở góc dưới bên phải rồi nhấp vào Cài đặt trên thanh trên cùng.
Restyaboard hiện đã được cài đặt trên máy chủ của bạn, giờ đây bạn có thể sử dụng bảng kanban để cải thiện quy trình làm việc của dự án.