Restyaboard是一款免费开源的看板应用程序。 这是Trello最好的自主替代品。 它是用PHP编写的,并使用PostgreSQL存储其数据库。
在本教程中,我们将在CentOS 7服务器上安装Restyaboard。
条件
- 最小CentOS 7服务器
- 根权限
第1步 - 安装Nginx
在安装任何软件包之前,建议您使用以下命令更新软件包和存储库。
yum -y update
默认的CentOS YUM存储库中不提供Nginx,因此我们还需要安装EPEL存储库。 您可以通过键入以下方式安装EPEL:
yum -y install epel-release
现在可以通过键入以下方式安装nginx:
yum -y install nginx
安装完成后,您可以运行以下命令启动nginx,并使其能够在启动时使用以下命令自动启动。
systemctl start nginx systemctl enable nginx
Nginx现在应该在您的服务器上运行。
第2步 - 使用Mbstring安装和配置PHP-FPM
Restyaboard支持PHP 7.0,因此我们将安装PHP 7.0以实现最大的安全性和性能。 PHP 7.0在YUM或EPEL存储库中不可用,因此我们需要安装相同的Webtatic存储库。 运行以下命令安装Webtatic存储库。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
现在使用PHP-FPM安装PHP 7.0以及其他必需的模块。
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
一旦安装完成,我们将需要配置几件事情。 默认情况下,PHP-FPM配置为与Apache一起使用,您将需要更改用户,以使其可以与nginx一起使用。 使用您喜欢的文本编辑器编辑/etc/php-fpm.d/www.conf
文件。 在本教程中,我们将使用nano
编辑器。 如果没有安装nano,可以运行yum -y install nano
。
nano /etc/php-fpm.d/www.conf
现在找到以下行,并将apache
更改为nginx
。
; RPM: apache Choosed to be able to access some dir as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx
而不是使用服务器端口,我们将使用一个用于PHP-FPM的套接字文件。 找到以下行。
listen = 127.0.0.1:9000
并将其更改为以下行。
listen = /run/php-fpm/php7.0-fpm.sock
接下来,找到以下几行。
;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660
将值更改为以下内容:
listen.owner = nginx listen.group = nginx listen.mode = 0660
此外,您将需要在PHP配置文件中设置时区。 使用以下命令编辑PHP配置文件:
nano /etc/php.ini
找到以下行并取消注释行,并根据您的区域设置时区。 例如:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Kolkata
取消注释cgi.fix_pathinfo
行并将值更改为0。
cgi.fix_pathinfo=0
此外,您还需要安装GeoIP。 运行以下命令来安装GeoIP。
yum -y install GeoIP-devel
现在通过在/etc/php.ini
的末尾添加以下行来启用GeoIP扩展
extension=geoip.so
启动PHP-FPM,并使用以下命令启动它在引导时启动。
systemctl start php-fpm systemctl enable php-fpm
然后使用以下命令重新启动nginx。
systemctl restart nginx
第3步 - 安装和配置PostgreSQL数据
PostgreSQL是一个开源的对象 - 关系数据库管理系统。 Restyaboard使用PostgreSQL存储其数据库。
PostgreSQL在YUM或EPEL存储库中不可用,您将需要安装PostgreSQL存储库。
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
要安装PostgreSQL,请运行以下命令。
yum -y install postgresql96-server postgresql96-contrib
上述命令将在系统中安装PostgreSQL以及所有必需的依赖项,在使用该软件之前,我们需要运行以下命令来初始化数据库。
/usr/pgsql-9.6/bin/postgresql96-setup initdb
一旦安装了PostgreSQL,就可以配置它了。 编辑/var/lib/pgsql/9.6/data/pg_hba.conf
以启用基于MD5的身份验证。
nano /var/lib/pgsql/9.6/data/pg_hba.conf
查找以下行并将对等体
更改为信任,
并将idnet更改
为md5
。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
一旦更新,配置应如下所示。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5
现在启动PostgreSQL服务器,并使用以下命令使其在启动时自动启动:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
现在更改PostgreSQL安装过程中创建的默认PostgreSQL用户的密码。
passwd postgres
现在使用PostgreSQL用户使用以下命令登录。
su - postgres
上述命令将登录到postgres
的shell
现在通过键入以下命令创建一个新用户:
createuser rb_user
现在使用以下命令切换到PostgreSQL shell。
psql
你会看到shell上的提示已经改为postgres - #
。 现在运行以下查询为Restyaboard数据库的新创建的用户设置密码。
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
确保在查询结尾使用分号。 上述查询将会询问您rb_user
的密码两次。 现在使用以下查询为PostgreSQL数据库创建一个新的数据库。
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
上述查询将使用template0创建一个名为rb_data
的数据库,使用UTF8编码,并将所有权提供给rb_user
。
使用以下命令从psql
shell退出到postgres
用户的正常shell用户shell。
\q
并使用exit
命令再次切换到root用户。
第4步 - 下载Restyaboard
因为我们已经准备好所有的依赖项,我们现在可以下载Restyaboard。 运行以下命令以下载可部署的可部署版本。
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
您可以随时在Restyaboard Github页面上找到最新版本的链接。
现在使用以下命令解压缩归档。 如果您没有安装unzip,可以运行yum -y install unzip
。
unzip board-v0.4.2.zip -d board
提取存档后,使用以下命令导入SQL文件。
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
现在编辑Restyaboard配置文件以更新数据库凭据。
nano /usr/share/nginx/html/board/server/php/config.inc.php
找到以下几行。
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);
根据我们最近创建的用于存储Restyaboard数据的数据库的数据库名称,用户名和密码进行更改。 一旦完成,它应该如下所示。
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);
第5步 - 配置Nginx服务器块
Restyboard nginx服务器块配置与zip存档一起打包。 您可以使用以下命令将配置文件复制到nginx配置文件位置。
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
现在您将需要对文件进行几个更改。 使用您喜欢的文本编辑器打开配置文件。
nano /etc/nginx/conf.d/restyaboard.conf
在配置开始时,找到以下行。
server { listen 80 default_server; server_name _;
删除default_server
文本,并在服务器名称后提供您的域名。 它应如下图所示。
server { listen 80; server_name board.yourdomain.com;
还找到以下行:
root /usr/share/nginx/html;
和
location / { root /usr/share/nginx/html/client; }
和
root /usr/share/nginx/html/client;
根据Restyaboard安装文件夹更改上述行。 应如下图所示。
root /usr/share/nginx/html/board;
和
location / { root /usr/share/nginx/html/board/client; }
和
root /usr/share/nginx/html/board/client
还找到行:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
将其更改为以下内容:
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
您可以立即关闭该文件。 现在使用以下命令提供适当的所有权和权限。
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
最后,添加cron条目以启用计划任务以使用以下命令运行。
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root
现在,您需要禁用SELinux,因为Proxy配置不适用于SELinux策略。 要临时禁用SELinux而不重新启动服务器,请运行以下命令。
setenforce 0
要完全禁用SELinux,您需要编辑/ etc / selinux / config
文件。
nano /etc/selinux/config
找到以下行:
SELINUX=enforcing
将其更改为:
SELINUX=disabled
然后使用以下命令重新启动Nginx。
systemctl restart nginx
您现在可以访问以下URL访问服务器。
http://board.yourdomain.com
您将看到以下登录屏幕。
现在使用用户名admin
和密码restya登录
。 登录后,您将会看到以下屏幕。
要创建新的主板,请单击页面左上角的箭头,然后单击添加板或组织。
提供名称并选择一个模板来创建一个新的板。
创建板后,如下图所示。
要访问管理面板,您可以单击右下角的管理按钮,然后单击顶部栏上的设置。
Restyaboard现在安装在您的服务器上,现在可以使用看板来改善项目的工作流程。