如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Redmine是一个免费的开源基于Web的项目管理工具。它是用Ruby on Rails编写的,并且支持多个数据库服务器来存储数据库。它是功能丰富的应用程序,支持多个项目,基于角色的ACL和问题跟踪系统。它还具有甘特图和日历支持,文件管理,每个项目Wiki和论坛以及许多其他功能。它支持版本控制系统,例如Git,SVN或CVS。它也是多语言的,支持多达49种语言。
在本教程中,我们将使用192.168.1.1公共IP地址和 redmine.example.com 指向Vultr实例的域名。请确保将所有示例域名和IP地址替换为实际的域名和IP地址。
使用指南如何更新Ubuntu 16.04更新基本系统。系统更新后,继续安装依赖项。
Redmine是用Ruby on Rails编写的,因此我们将要求Phusion Passenger与Apache Web服务器集成以为应用程序提供服务。
安装Apache。
sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev
要构建Ruby和Passenger,我们还将需要一些开发工具。安装所需的工具。
sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev
Redmine支持多种类型的数据库服务器,例如MySQL,PostgreSQL和MSSQL。在本教程中,我们将使用PostgreSQL托管Redmine数据库服务器。
PostgreSQL是一个对象关系数据库系统。默认的Ubuntu存储库包含旧版本的PostgreSQL,因此将PostgreSQL存储库添加到系统中。
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
安装PostgreSQL数据库服务器。
sudo apt -y install postgresql
启动PostgreSQL服务器,并使其在启动时自动启动。
sudo systemctl start postgresql
sudo systemctl enable postgresql
更改默认PostgreSQL用户的密码。
sudo passwd postgres
以PostgreSQL用户身份登录。
sudo su - postgres
为Redmine创建一个新的PostgreSQL用户。
createuser redmine
您可以使用任何用户名代替 redmine。PostgreSQL提供了psql 在数据库上运行查询的 外壳。切换到PostgreSQL shell。
psql
为Redmine数据库的新创建的用户设置密码。
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
替换 DBPassword 为安全密码。为Redmine安装创建一个新数据库。
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
从psql 外壳退出 。
\q
切换到 sudo 用户。
exit
安装更多必需的PostgreSQL依赖项。
sudo apt -y install libpqxx-dev protobuf-compiler
我们将使用RVM安装最新版本的Ruby。它用于安装和管理Ruby的多个版本。
添加RVM存储库。
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update
安装RVM。
sudo apt -y install rvm
因为我们需要在整个Ruby系统上安装,所以我们将暂时切换为root用户。
sudo -i
更新环境变量。
echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh
安装最新版本的Ruby。
rvm install 2.5.1
注意: 如果您使用的是其他版本的Ruby,请确保相应地更新Ruby路径。
使用已安装的Ruby版本。
rvm use 2.5.1 --default
您可以验证其版本。
ruby -v
您将看到类似的输出。
root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Install bundler,它是Ruby应用程序的依赖项管理器。
gem install bundler
现在已安装Ruby。在安装Redmine之前,我们将需要安装Phusion Passenger。
运行以下命令以安装Passenger。
gem install passenger
为旅客安装Apache模块。
passenger-install-apache2-module
安装脚本将询问您一些问题。首先,它将为您提供有关安装过程的信息。然后,它将要求您选择将使用的语言。由于我们的应用程序是用Ruby on Rails编写的,因此从菜单中选择Ruby,然后按ENTER继续操作。
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor
现在,安装程序将检查需求。安装程序将不会遇到任何缺少的依赖项,并将自动继续进行编译和安装模块。
安装模块后,它将提示您将模块添加到Apache配置文件中。
Almost there!
Please edit your Apache configuration file, and add these lines:
   LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
     PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
   </IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
我们现在暂时跳过此步骤,并将在本教程的后面部分完成。按下ENTER可跳过此步骤。
最后,安装程序脚本将验证安装,您将看到一条警告,指出未在Apache配置中指定“乘客”模块。
Validating installation...
 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓
 * Checking whether Apache is installed... ✓
 * Checking whether the Passenger module is correctly configured in Apache... (!)
   You did not specify 'LoadModule passenger_module' in any of your Apache
   configuration files. Please paste the configuration snippet that this
   installer printed earlier, into one of your Apache configuration files, such
   as /etc/apache2/apache2.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
现在我们已经为Apache安装了Passenger模块,继续下载并安装Redmine。sudo再次切换到用户,因为我们不需要使用rootuser 运行其他命令。
exit
建议使用非特权用户运行该应用程序,以使其与系统其余部分隔离。为Redmine创建一个新用户,然后切换到新创建的用户。
sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine
从官方的Redmine下载页面下载最新版本的Redmine 。
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
为了方便起见,请提取档案并重命名目录。
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
将示例配置文件复制到其生产位置。
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
打开我们刚刚复制的数据库配置文件,以输入数据库详细信息。
nano config/database.yml
默认情况下,数据库文件是为MySQL配置的。查找用于生产和开发的配置,并测试使用MySQL适配器的配置。注释掉所有这些行。
#production:
#  adapter: mysql2
#  database: redmine
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8
#development:
#  adapter: mysql2
#  database: redmine_development
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8
#test:
#  adapter: mysql2
#  database: redmine_test
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8
进一步,找到带有 适配器production 配置的 注释行 postgresql。取消注释这些行,并更新数据库名称和用户凭据。确保使用正确的缩进,即两个空格。
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "DBPassword"
配置应用程序以使用PostgreSQL配置。
bundle config build.pg --with-pg-config=/usr/bin/pg_config
安装应用程序所需的依赖项。
bundle install --path vendor/bundle --without development test
您将在安装结束时看到以下消息。
Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
以下命令生成用于对会话数据进行编码的秘密令牌。
bundle exec rake generate_secret_token
编写PostgreSQL数据库。
RAILS_ENV=production bundle exec rake db:migrate
运行以下命令,它将默认数据写入PostgreSQL数据库。
RAILS_ENV=production bundle exec rake redmine:load_default_data
上面的命令将要求您选择应用程序要使用的默认语言。默认选择是英语。根据您的喜好选择。
[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.
Redmine应用程序的安装现已完成。更改目录和文件的所有权和权限。
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
我们已经配置了非特权用户所需的一切。sudo 通过运行切换回 用户 su - <username>。
将用于Apache的Passenger模块添加到Apache配置文件中。这将自动加载乘客模块。
echo "LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf
注意: 当有新版的乘客时,到乘客模块的路径可能会更改。要找到模块的路径,请使用sudo find / -name mod_passenger.so命令。
为您的Redmine应用程序创建一个新的虚拟主机文件。
sudo nano /etc/apache2/sites-available/redmine.conf
用以下内容填充文件。
<VirtualHost *:80>
    ServerName redmine.example.com
    DocumentRoot /home/redmine/redmine/public
    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine
    <Directory /home/redmine/redmine/public>
      Allow from all
      Options -MultiViews
      Require all granted
    </Directory>
</VirtualHost>
确保redmine.example.com 用您的实际域名替换 。此外,请确保该路径 PassengerRoot 和 PassengerDefaultRuby 正确。当有新版本的Ruby或Passenger时,二进制文件的路径可能会更改。要找到这些路径,请运行以下命令。
passenger-config about ruby-command
您将获得以下输出。
user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
  Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
  To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start
## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.
一旦创建了虚拟主机文件。激活配置。
sudo a2ensite redmine
重新启动Apache Web服务器。
sudo systemctl restart apache2
现在,您可以在上访问Redmine界面 http://redmine.example.com。使用用户名 admin和密码登录 admin。首次登录时,Redmine将提示您更新密码。
由于我们的Redmine安装在面向公众的服务器上,因此建议使用SSL来保护来自服务器的数据交换。
添加Certbot存储库。
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
安装Certbot,这是Let's Encrypt CA的客户端应用程序。
sudo apt -y install certbot
注意: 要从Let's Encrypt CA获得证书,必须为其生成证书的域指向服务器。如果不是,请对域的DNS记录进行必要的更改,并在再次发出证书请求之前,等待DNS传播。Certbot在提供证书之前会检查域权限。
生成SSL证书。
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
生成的证书可能存储在中 /etc/letsencrypt/live/redmine.example.com/。SSL证书将存储为 cert.pem ,私钥将存储为 privkey.pem。
让我们加密证书的有效期限为90天,因此建议您使用Cron作业设置证书的自动续订。
打开用户的Cron作业文件 root 。
sudo crontab -e
在文件末尾添加以下行。
30 5 * * * /usr/bin/certbot renew --quiet
上述Cron作业将每天凌晨5:30运行。如果证书到期,它将自动更新。
为Apache启用SSL模块。
sudo a2enmod ssl
编辑我们先前为Redmine创建的虚拟主机文件。
sudo nano /etc/apache2/sites-available/redmine.conf
修改虚拟主机文件,使其类似于以下内容。
<VirtualHost *:80>
    ServerName redmine.example.com
    Redirect permanent / https://redmine.example.com/
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName redmine.example.com
    DocumentRoot "/home/redmine/redmine/public"
    <Directory "/home/redmine/redmine/public">
        Options None
        Require all granted
    </Directory>
    PassengerAppEnv production
    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine
    PassengerHighPerformance on
    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/redmine.example.com/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/redmine.example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem
    SSLProtocol             all -SSLv2 -SSLv3
    SSLHonorCipherOrder     on
    SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
    <IfModule headers_module>
        Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
    </IfModule>
</VirtualHost>
保存文件并退出编辑器。
重新启动Apache,以使更改生效。
sudo systemctl restart apache2
您现在访问管理平台上可以 HTTPS 在 https://redmine.example.com。
恭喜,您已经在Ubuntu 16.04实例上成功安装了Redmine。通过创建或导入项目来开始开发项目。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战
使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)
Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性
Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。
使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示
简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin
在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区
使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量
本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio
Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据
使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何
使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有
使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息