如何使用 Nginx 和 Let’s Encrypt SSL 在 CentOS 7 上安装 Kanboard
这是使用 Nginx Web 服务器和可选的 Let’s Encrypt SSL 证书在 CentOS 7 上安装和配置 Kanboard 的完整指南。 Kanboard 是一款项目管理软件,它使用看板方法来帮助您可视化工作流程并更快、更高效地完成任务。
Kanboard 的特点
- 它是一个免费且开源的
- 它使您能够根据您的业务活动定制您的董事会
- 具有对报告和分析的本机支持
- 您可以拥有多个具有拖放任务能力的项目
- 提供易于使用的网络仪表板,可以通过现代浏览器从任何地方访问
- 能够通过插件扩展功能并集成到其他外部服务
CentOS 7 上的 Kanboard 设置
- 数据库 – 默认情况下 Kanboard 使用 SQLite,但我们将使用推荐用于大型团队的 MariaDB。
- Web 服务器:我们将安装和配置 Nginx。
- PHP 7.2
- 以下是可以安装的 PHP 扩展:
可选的 PHP 扩展
在 CentOS 7 上安装 Kanboard
请按照以下步骤在 CentOS 7 上安装 Kanboard。
第1步:安装MariaDB数据库服务器
使用以下指南在 CentOS 7 服务器上安装 MariaDB 数据库服务器:
在 Ubuntu 18.04 和 CentOS 7 上安装 MariaDB 10.x
安装完成后,使用用户创建一个数据库。首先,以root用户登录数据库CLI。
$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.3.9-MariaDB-1:10.3.9+maria~bionic-log mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
然后运行命令来创建数据库和具有所需权限的用户
CREATE DATABASE kanboard CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;;
GRANT ALL PRIVILEGES ON kanboard.* TO 'kanboard'@'localhost' IDENTIFIED BY 'StrongPassword';
FLUSH PRIVILEGES;
\q
第2步:安装Nginx和PHP
接下来,我们可以安装 Nginx Web 服务器和所需的 php 扩展
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install epel-release yum-utils
sudo yum-config-manager --disable remi-php54
sudo yum-config-manager --enable remi-php72
sudo yum -y install php php-{fpm,mbstring,cli,json,opcache,zip,xml,gd,ldap,mysql,json,sqlite3}
安装nginx
sudo yum -y install nginx
第 3 步:下载并安装 Kanboard
您有两种下载 Kanboard 的选择:
- 从稳定版本开始
- 来自 Github 开发分支
要下载 Kanboard 的特定稳定版本,请查看 Kanboard 版本页面。截至撰写本文时,最新版本为1.2.5
export VER=1.2.5
wget https://github.com/kanboard/kanboard/archive/v${VER}.tar.gz
tar xvf v${VER}.tar.gz
rm -f v${VER}.tar.gz
sudo mv kanboard-${VER}/ /var/www/kanboard
要下载开发版本,请使用
sudo git clone https://github.com/kanboard/kanboard.git /var/www/kanboard
创建配置文件
复制 Kanboard 配置模板。
sudo cp /var/www/kanboard/config.default.php /var/www/kanboard/config.php
sudo vim /var/www/kanboard/config.php
文件 config.php
应包含数据库访问值。
// Database driver: sqlite, mysql or postgres (sqlite by default)
define('DB_DRIVER', 'mysql');
// Mysql/Postgres username
define('DB_USERNAME', 'kanboard');
// Mysql/Postgres password
define('DB_PASSWORD', 'StrongPassword');
// Mysql/Postgres hostname
define('DB_HOSTNAME', 'localhost');
// Mysql/Postgres database name
define('DB_NAME', 'kanboard');
此 Kanboard 的广泛配置参考有助于正确配置其他功能,例如 LDAP 身份验证、SMTP 设置、暴力保护、日志记录、安全 HTTP 标头设置等。
设置适当的权限
sudo chown -R nginx:nginx /var/www/kanboard
配置 php-fpm
编辑文件 /etc/php-fpm.d/www.conf
设置如下
user = nginx
group = nginx
listen = /run/php-fpm/php7.2-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
第四步:配置Nginx
使用以下内容创建 Nginx 配置文件 /etc/nginx/conf.d/kanboard.conf
server {
listen 80;
#listen 443 ssl;
#ssl_certificate /etc/nginx/ssl/kanboard.crt;
#ssl_certificate_key /etc/nginx/ssl/kanboard.key;
server_name kanboard.example.com;
index index.php;
root /var/www/kanboard;
client_max_body_size 32M;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
location ~* ^.+\.(log|sqlite)$ {
return 404;
}
location ~ /\.ht {
return 404;
}
location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
log_not_found off;
expires 7d;
etag on;
}
gzip on;
gzip_comp_level 3;
gzip_disable "msie6";
gzip_vary on;
gzip_types
text/javascript
application/javascript
application/json
text/xml
application/xml
application/rss+xml
text/css
text/plain;
}
使用 Let’s Encrypt SSL
此示例适用于 http 到 https 重定向和 Let’s Encrypt SSL 证书
# HTTP
server {
listen 80;
server_name kanboard.example.com;
root /var/www/kanboard;
location / {
rewrite ^ https://kanboard.example.com$request_uri? permanent;
}
}
# HTTPS
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/kanboard.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kanboard.example.com/privkey.pem;
server_name kanboard.example.com;
index index.php;
root /var/www/kanboard;
client_max_body_size 32M;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
location ~* ^.+\.(log|sqlite)$ {
return 404;
}
location ~ /\.ht {
return 404;
}
location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
log_not_found off;
expires 7d;
etag on;
}
gzip on;
gzip_comp_level 3;
gzip_disable "msie6";
gzip_vary on;
gzip_types
text/javascript
application/javascript
application/json
text/xml
application/xml
application/rss+xml
text/css
text/plain;
}
检查配置语法
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果返回OK
,那么您可以启动 nginx 服务
sudo systemctl restart php-fpm nginx
sudo systemctl enable php-fpm nginx
第 5 步:访问 Kanboard Web UI
使用您喜爱的网络浏览器打开链接 http://kanboard.example.com 来访问 Kanboard Web UI。将 kanboard.example.com
替换为您的正确域名。
要登录,请使用:
用户名:admin
密码:admin
您应该进入如下所示的仪表板
重置管理员密码
为了安全起见,请导航至管理 > 用户管理 > admin 重置管理员密码
就这样。您现在在 CentOS 7 服务器上有了一个可以运行的 Kanboard。要进一步调整您的 Kanboard,请参阅管理指南。