Инсталирайте Plesk на CentOS 7
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Redmine е безплатен уеб-базиран инструмент за управление на проекти с отворен код. Той е написан на Ruby on Rails и поддържа множество сървъри на база данни за съхранение на базата данни. Това е богато на функции приложение, поддържащо множество проекти, базиран на роли ACL и система за проследяване на проблеми. Освен това има поддръжка на диаграма на Гант и календар, управление на файлове, уики и форум за проекти, както и много други функции. Той поддържа системи за контрол на версиите като Git, SVN или CVS. Освен това е многоезичен и поддържа до 49 езика.
Това ръководство е написано за Redmine 3.4.4, но може да важи и за по-нови версии.
За този урок ще използваме 192.168.1.1
като публичен IP адрес и redmine.example.com
като име на домейн, насочено към екземпляра Vultr. Моля, не забравяйте да замените всички срещания на примерното име на домейн и IP адрес с действителния.
Актуализирайте базовата си система с помощта на ръководството Как да актуализирате CentOS 7 . След като вашата система бъде актуализирана, продължете с инсталирането на зависимостите.
Redmine е написан на Ruby on Rails, така че ще изискваме Phusion Passenger да се интегрира с уеб сървъра на Apache, за да обслужва приложението. Инсталирайте 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
Създайте нов потребител на PostgreSQL за Redmine.
createuser redmine
Разрешено е да използвате всяко потребителско име вместо redmine
. PostgreSQL предоставя psql
обвивката за изпълнение на заявки към базата данни. Превключете към обвивката на PostgreSQL.
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 с помощта на Ruby Version Manager или RVM. Използва се за инсталиране и управление на множество версии на Ruby.
Добавете GPG ключа на RVM към вашия сървър.
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
потребителя. Passenger трябва да изпълни двоичните файлове, за да обслужва приложението.
chmod o+x "/home/redmine"
Инсталирайте модула Apache за Passenger.
passenger-install-apache2-module
The installer script will ask you some questions. First, it will provide you information about the installation process. Then it will ask you to select the language which you will be using. Since our application is written in Ruby on Rails, select Ruby from the menu and press "Enter
" to proceed further.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬡ Python
⬡ Node.js
⬡ Meteor
The installer will now check for requirements. The installer will not encounter any missing dependencies and will automatically proceed to compile and install the module.
Once the module is installed, it will prompt you to add the module into the Apache configuration file.
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.
We will skip this for now and will complete it later in the tutorial as the user with which we are logged in now does not have sudo
permissions. Press "Enter
" to skip this step.
Finally, the installer script will validate the installation and you will see a warning saying the Passenger module is not specified in Apache configuration.
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.
Now that we have installed the Passenger module for Apache, proceed to download and install Redmine.
Download the latest version of Redmine from the official Redmine download page.
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Extract the archive and rename the directory for sake of convenience.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Copy the example configuration files to its production location.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Open the database configuration file we just copied to enter the database details.
nano config/database.yml
By default, the database file is configured for MySQL. Find the configurations for production and development, and test which uses the MySQL adapter. Comment out all of these lines.
#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
Furthur, find the lines which are commented, having production
configuration for the postgresql
adapter. Uncomment those lines and update the database name and user credentials. Make sure to use the correct indentation, which is two spaces.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Configure the application to use the PostgreSQL configuration.
bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config
Install the application dependencies required by the application.
bundle install --without development test
You will see the following message at the end of the installation.
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.
The following command generates secret tokens that are used to encode the session data.
bundle exec rake generate_secret_token
Write the PostgreSQL database.
RAILS_ENV=production bundle exec rake db:migrate
Run the following command, which writes the default data into PostgreSQL database.
RAILS_ENV=production bundle exec rake redmine:load_default_data
The above command will ask you to choose the default language to be used with the application. The default choice is English; choose according to your preference.
[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.
Installation of the Redmine application is now finished. Change ownership and permissions of the directories and files.
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
We have configured everything we need from the non-privileged user. Switch back to the sudo
user by running su - <username>
.
Add the Passenger module for Apache into the Apache configuration file. This will automatically load the Passenger module.
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
Create a new virtual host file for your Redmine application.
sudo nano /etc/httpd/conf.d/redmine.conf
Populate the file with the following content.
<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>
Make sure to replace redmine.example.com
with your actual domain name. Also, make sure that the path to the PassengerRoot
and PassengerRuby
are correct. The path to the binaries may change when there is a new release of Ruby or Passenger. To find these paths, run the following command.
sudo su redmine -c "passenger-config about ruby-command"
You will get following output.
[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.
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
услуги през защитната стена. Тъй като вече сме разрешили порт 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
.
Срокът на валидност на сертификатите Let's Encrypt изтича след 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
Вече имате достъп до Redmine над HTTPS
по https://redmine.example.com
.
Поздравления, успешно инсталирахте Redmine на вашия екземпляр на CentOS 7. Започнете да разработвате своя проект чрез създаване или импортиране на вашия проект.
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca
Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място
Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати
Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие и вашият клиент
Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и
Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер
В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва
YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране
Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е
Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация
Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок
Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou
Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече