如何使用Nginx在CentOS 7上安装Kanboard并加密SSL

时间:2020-02-23 14:30:44  来源:igfitidea点击:

这是使用Nginx网络服务器和可选的Let's Encrypt SSL证书在CentOS 7上安装和配置Kanboard的完整指南。
Kanboard是一个项目管理软件,它使用看板方法来可视化工作流程并更快,更高效地完成任务。

看板功能

它是免费的开放源代码,它使我们可以根据业务活动自定义董事会具有对报表和分析的本地支持我们可以拥有多个项目,并具有拖放任务的能力提供易于使用的Web仪表板,可以从任何地方访问该仪表板。
现代化的浏览器,具有通过插件扩展功能以及与其他外部服务集成的功能

CentOS 7上的Kanboard设置

数据库–默认情况下,Kanboard使用SQLite,但我们将使用推荐用于大型团队的MariaDB。
Web服务器:我们将安装和配置Nginx.PHP 7.2下面是可以安装的PHP扩展:

pdo_sqlite只有在你使用SQLITE时安装
pdo_mysql只有在你使用Mysql/MariaDB时安装
pdo_pgsql只有在你使用Postgres时安装
gd
mbstring
openssl
json
hash
ctype
session
filter
xml
SimpleXML
dom

可选的PHP扩展

zip用于从网站安装插件
ldap仅用于ldap身份验证

在CentOS 7上安装看板

请按照以下步骤在CentOS 7上安装Kanboard。

步骤1:安装MariaDB数据库服务器

使用以下指南在CentOS 7服务器上安装MariaDB数据库服务器:

在Ubuntu 18.04和CentOS 7上安装MariaDB10.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, 2016, 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:下载并安装看板

我们可以通过以下两种方式下载看板:从稳定版本中下载。
撰写本文时,最新版本为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

创建一个配置文件

复制看板配置模板。

sudo cp /var/www/kanboard/config.default.php /var/www/kanboard/config.php
sudo vim /var/www/kanboard/config.php

文件 config.php有关Kanboard的大量配置参考,有助于正确配置其他功能,例如LDAP身份验证,SMTP设置,暴力破解保护,日志记录,安全HTTP标头设置等。


配置php-fpm

编辑档案 /etc/php-fpm.d/www.conf设置如下

sudo chown -R nginx:nginx /var/www/kanboard

步骤4:配置Nginx

创建Nginx配置文件 /etc/nginx/conf.d/kanboard.conf具有以下内容

user = nginx
group = nginx
listen = /run/php-fpm/php7.2-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

如果要使用,请取消注释SSL配置行 https

使用"让我们加密SSL"

此示例用于http到https重定向以及"加密SSL证书"

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;
    }

检查配置语法

# 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;
    }

如果返回 OK那你就可以启动nginx服务了

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

步骤5:访问Kanboard Web UI

通过使用我们喜欢的Web浏览器打开链接http://kanboard.example.com来访问Kanboard Web UI。
代替 kanboard.example.com使用正确的域名。

登录使用:用户名:admin密码:admin我们应该进入如下所示的仪表板

重设管理员密码

为了安全起见,请导航至管理>用户管理>管理员,以重置管理员密码。

现在,我们在CentOS 7服务器上可以使用Kanboard了。