如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Redmine是一个免费的开源基于Web的项目管理工具。它是用Ruby on Rails编写的,并且支持多个数据库服务器来存储数据库。它是功能丰富的应用程序,支持多个项目,基于角色的ACL和问题跟踪系统。它还具有甘特图和日历支持,文件管理,每个项目Wiki和论坛以及许多其他功能。它支持版本控制系统,例如Git,SVN或CVS。它也是多语言的,支持多达49种语言。
本指南是为Redmine 3.4.4编写的,但也可能适用于较新的版本。
在本教程中,我们将使用192.168.1.1
公共IP地址和redmine.example.com
指向Vultr实例的域名。请确保将所有示例域名和IP地址替换为实际的域名和IP地址。
使用指南如何更新CentOS 7更新基本系统。系统更新后,继续安装依赖项。
Redmine是用Ruby on Rails编写的,因此我们将要求Phusion Passenger与Apache Web服务器集成以为应用程序提供服务。安装Apache。
sudo yum -y install httpd httpd-devel libcurl-devel
要构建Redmine应用程序,我们还将需要一些开发工具。安装所需的工具。
sudo yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Redmine支持多种类型的数据库服务器,例如MySQL,PostgreSQL和MSSQL。在本教程中,我们将使用PostgreSQL托管Redmine数据库服务器。
PostgreSQL是一个对象关系数据库系统。默认yum
存储库包含旧版本的PostgreSQL,因此将PostgreSQL存储库添加到系统中。
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
安装PostgreSQL数据库服务器。
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
初始化数据库。
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
启动PostgreSQL服务器,并使其在启动时自动启动。
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
更改默认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
编辑pg_hba.conf
文件以启用基于MD5的身份验证。
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
找到以下行并改变值peer
和ident
在METHOD
列trust
和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,以使更改生效。
sudo systemctl restart postgresql-10
安装更多必需的PostgreSQL依赖项。
sudo yum -y install libpqxx-devel protobuf-devel
建议使用非特权用户运行该应用程序,以使其与系统其余部分隔离。为Redmine创建一个新用户,然后切换到新创建的用户。
sudo adduser redmine
sudo su - redmine
我们将使用Ruby Version Manager或RVM安装最新版本的Ruby。它用于安装和管理Ruby的多个版本。
将RVM的GPG密钥添加到您的服务器。
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
安装RVM。
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
获取可用的Ruby版本列表。
rvm list known
您将看到一长串Ruby版本。
[redmine@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
从列表中安装最新版本的Ruby。
rvm install 2.4
使用已安装的Ruby版本。
rvm use 2.4
您可以验证其版本。
ruby -v
您将看到类似的输出。
[redmine@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
安装捆绑程序,它是Ruby应用程序的依赖项管理器。
gem install bundler
现在已安装Ruby。在安装Redmine之前,我们将需要安装Phusion Passenger。
运行以下命令以安装Passenger。
gem install passenger
向redmine
用户的主目录提供执行权限。乘客需要执行二进制文件才能为应用程序提供服务。
chmod o+x "/home/redmine"
为旅客安装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 /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.4.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.
我们现在将略过此操作,并将在本教程的后面部分完成,因为我们现在登录的用户没有sudo
权限。按“ 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/httpd/conf/httpd.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
现在我们已经为Apache安装了Passenger模块,继续下载并安装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/pgsql-10/bin/pg_config
安装应用程序所需的应用程序依赖项。
bundle install --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.
Use `bundle info [gemname]` to see where a bundled gem is installed.
以下命令生成用于对会话数据进行编码的秘密令牌。
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 /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf
为您的Redmine应用程序创建一个新的虚拟主机文件。
sudo nano /etc/httpd/conf.d/redmine.conf
用以下内容填充文件。
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
确保redmine.example.com
用您的实际域名替换。此外,请确保该路径PassengerRoot
和PassengerRuby
正确。当有新版本的Ruby或Passenger时,二进制文件的路径可能会更改。要找到这些路径,请运行以下命令。
sudo su redmine -c "passenger-config about ruby-command"
您将获得以下输出。
[user@vultr ~]$ sudo su redmine -c "passenger-config about ruby-command"
passenger-config was invoked through the following Ruby interpreter:
Command: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
Version: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
To use in Apache: PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use in Nginx : passenger_ruby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use with Standalone: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/bin/passenger start
创建虚拟主机文件后,请重新启动Apache Web服务器。
sudo systemctl restart httpd
修改防火墙配置,以允许端口80
通过防火墙。
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
现在,您可以在上访问Redmine界面http://redmine.example.com
。使用用户名admin
和密码登录admin
。首次登录时,Redmine将提示您更新密码。
由于我们的Redmine安装在面向公众的服务器上,因此建议使用SSL来保护来自服务器的数据交换。
安装Certbot,这是Let's Encrypt CA的客户端应用程序。
sudo yum -y install epel-release
sudo yum -y install certbot mod_ssl
在请求证书之前,您将需要允许端口80
和/ 443
或标准HTTP
和HTTPS
服务通过防火墙。由于我们之前已经允许port 80
,所以我们允许port 443
。
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
注意: 要从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运行。如果证书到期,它将自动更新。
编辑我们先前为Redmine创建的虚拟主机文件。
sudo nano /etc/httpd/conf.d/redmine.conf
修改虚拟主机文件,使其外观如下所示。
<VirtualHost *:80>
Redirect permanent / https://www.example.com/
ServerName 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 /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.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 httpd
您现在可以访问管理平台上HTTPS
的https://redmine.example.com
。
恭喜,您已在CentOS 7实例上成功安装了Redmine。通过创建或导入项目来开始开发项目。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ
使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比
欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件
简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置
使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示
使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供
使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用
MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商
H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器
在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫
使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能
MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:
使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装
使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的
使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是
使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智
使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件
使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。