O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Redmine este un instrument gratuit și deschis de gestionare a proiectelor bazat pe web. Este scris în Ruby on Rails și acceptă mai multe servere de baze de date pentru stocarea bazei de date. Este o aplicație bogată în caracteristici care acceptă mai multe proiecte, ACL bazat pe roluri și un sistem de urmărire a problemelor. Are, de asemenea, suport Gantt și calendar, gestionarea fișierelor, pe proiectul wiki și forum, precum și multe alte funcții. Suporta sisteme de control a versiunilor precum Git, SVN sau CVS. De asemenea, este multilingvă, sprijinind până la 49 de limbi.
Pentru acest tutorial, vom folosi 192.168.1.1
ca adresă IP publică și redmine.example.com
ca nume de domeniu indicat spre instanța Vultr. Vă rugăm să vă asigurați că înlocuiți toate aparițiile numelui de domeniu și adresa IP de exemplu cu una reală.
Actualizați-vă sistemul de bază utilizând ghidul Cum să actualizați Ubuntu 16.04 . După ce sistemul dvs. a fost actualizat, continuați să instalați dependențele.
Redmine este scris în Ruby on Rails, astfel că vom solicita Phusion Passenger să se integreze cu serverul web Apache pentru a servi aplicația.
Instalați Apache.
sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev
Pentru a construi Ruby și Pasagerul, vom avea nevoie și de câteva instrumente de dezvoltare. Instalați instrumentele necesare.
sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev
Redmine acceptă mai multe tipuri de servere de baze de date, cum ar fi MySQL, PostgreSQL și MSSQL. În acest tutorial, vom folosi PostgreSQL pentru a găzdui serverul de baze de date Redmine.
PostgreSQL este un sistem de baze de date relațional cu obiecte. Depozitul Ubuntu implicit conține o versiune veche de PostgreSQL, deci adăugați depozitul PostgreSQL la sistem.
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
Instalați serverul de baze de date PostgreSQL.
sudo apt -y install postgresql
Porniți serverul PostgreSQL și permiteți-l să pornească automat la momentul de pornire.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Modificați parola pentru utilizatorul implicit PostgreSQL.
sudo passwd postgres
Conectați-vă ca utilizator PostgreSQL.
sudo su - postgres
Creați un nou utilizator PostgreSQL pentru Redmine.
createuser redmine
Aveți dreptul să utilizați orice nume de utilizator în loc de redmine
. PostgreSQL oferă psql
shell - ul pentru a rula interogări pe baza de date. Comutați la shell-ul PostgreSQL.
psql
Setați o parolă pentru utilizatorul nou creat pentru baza de date Redmine.
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
Înlocuiți DBPassword
cu o parolă sigură. Creați o nouă bază de date pentru instalarea Redmine.
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Ieșiți din psql
coajă.
\q
Comutați la sudo
utilizator.
exit
Instalați alte câteva dependențe PostgreSQL necesare.
sudo apt -y install libpqxx-dev protobuf-compiler
Vom instala cea mai recentă versiune de Ruby folosind RVM. Este folosit pentru instalarea și gestionarea mai multor versiuni de Ruby.
Adăugați depozitul RVM.
sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update
Instalați RVM.
sudo apt -y install rvm
Deoarece trebuie să instalăm sistemul Ruby pe larg, vom trece temporar la utilizatorul root.
sudo -i
Actualizați variabilele de mediu.
echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh
Instalați cea mai recentă versiune de Ruby.
rvm install 2.5.1
Notă: Dacă utilizați o altă versiune de Ruby, asigurați-vă că actualizați calea Ruby în consecință.
Folosiți versiunea instalată de Ruby.
rvm use 2.5.1 --default
Puteți verifica versiunea sa.
ruby -v
Veți vedea o ieșire similară.
root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
Instalați bundler
, care este managerul de dependență pentru aplicația Ruby.
gem install bundler
Ruby este acum instalat. Înainte de a instala Redmine, va trebui să instalăm Phusion Passenger.
Rulați următoarea comandă pentru a instala Pasagerul.
gem install passenger
Instalați modulul Apache pentru pasager.
passenger-install-apache2-module
Scriptul instalatorului vă va pune câteva întrebări. În primul rând, vă va oferi informații despre procesul de instalare. Apoi, vă va cere să selectați limba pe care o veți utiliza. Deoarece aplicația noastră este scrisă în Ruby on Rails, selectați Ruby din meniu și apăsați ENTERpentru a continua.
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬢ Python
⬡ Node.js
⬡ Meteor
Instalatorul va verifica acum cerințele. Instalatorul nu va întâmpina nicio dependență care lipsește și va continua automat la compilarea și instalarea modulului.
După instalarea modulului, vă va solicita să adăugați modulul în fișierul de configurare 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.
Vom sări acest lucru deocamdată și îl vom completa mai târziu în tutorial. Apăsați ENTERpentru a omite acest pas.
În cele din urmă, script-ul de instalare va valida instalarea și veți vedea un avertisment care spune că modulul Pasager nu este specificat în configurația 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.
Acum că am instalat modulul Pasager pentru Apache, continuați să descărcați și să instalați Redmine. Comutați din sudo
nou la utilizator, deoarece nu este nevoie să mai executăm comenzi cu root
utilizatorul.
exit
Este recomandat să utilizați un utilizator nepriviat pentru a rula aplicația pentru a o ține izolată de restul sistemului. Creați un utilizator nou pentru Redmine și treceți la un utilizator nou creat.
sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine
Descărcați cea mai recentă versiune de Redmine de pe pagina oficială de descărcare Redmine .
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
Extrageți arhiva și redenumiți directorul din motive de comoditate.
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
Copiați fișierele de configurare de exemplu în locația de producție.
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Deschideți fișierul de configurare a bazei de date pe care tocmai l-am copiat pentru a introduce detaliile bazei de date.
nano config/database.yml
În mod implicit, fișierul bazei de date este configurat pentru MySQL. Găsiți configurațiile pentru producție și dezvoltare și testați care utilizează adaptorul MySQL. Comentați toate aceste rânduri.
#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, găsiți liniile care sunt comentate, având production
configurația pentru postgresql
adaptor. Deconectați liniile respective și actualizați numele bazei de date și datele de acreditare ale utilizatorului. Asigurați-vă că folosiți indentarea corectă, care este în două spații.
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
Configurați aplicația pentru a utiliza configurația PostgreSQL.
bundle config build.pg --with-pg-config=/usr/bin/pg_config
Instalați dependențele cerute de aplicație.
bundle install --path vendor/bundle --without development test
La sfârșitul instalării veți vedea următorul mesaj.
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`
Următoarea comandă generează jetoane secrete care sunt utilizate pentru codificarea datelor sesiunii.
bundle exec rake generate_secret_token
Scrieți baza de date PostgreSQL.
RAILS_ENV=production bundle exec rake db:migrate
Rulați următoarea comandă, care scrie datele implicite în baza de date PostgreSQL.
RAILS_ENV=production bundle exec rake redmine:load_default_data
Comanda de mai sus vă va solicita să alegeți limba implicită care va fi utilizată cu aplicația. Alegerea implicită este engleza; alegeți în funcție de preferințe.
[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.
Instalarea aplicației Redmine este acum terminată. Modificați proprietatea și permisiunile directoarelor și fișierelor.
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
Am configurat tot ce avem nevoie de la utilizatorul ne privilegiat. Comutați înapoi la sudo
utilizator rulând su - <username>
.
Adăugați modulul Pasager pentru Apache în fișierul de configurare Apache. Aceasta va încărca automat modulul Pasager.
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
Notă: Calea către modulul Pasager se poate schimba atunci când există o nouă versiune a Pasagerului. Pentru a găsi calea către modul, utilizați sudo find / -name mod_passenger.so
comanda.
Creați un nou fișier gazdă virtual pentru aplicația dvs. Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Populați fișierul cu următorul conținut.
<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>
Asigurați-vă că înlocuiți redmine.example.com
cu numele dvs. de domeniu real. De asemenea, asigurați-vă că calea către PassengerRoot
și PassengerDefaultRuby
sunt corecte. Calea către binare se poate schimba atunci când există o nouă versiune de Ruby sau Pasager. Pentru a găsi aceste căi, executați următoarea comandă.
passenger-config about ruby-command
Veți obține următoarele rezultate.
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'.
Odată creat fișierul gazdă virtuală. Activați configurația.
sudo a2ensite redmine
Reporniți serverul web Apache.
sudo systemctl restart apache2
Acum puteți accesa interfața Redmine pe http://redmine.example.com
. Autentificați-vă cu numele de utilizator admin
și parola admin
. La prima conectare, Redmine vă va solicita să actualizați parola.
Întrucât instalarea noastră Redmine este pe un server cu vedere publică, se recomandă utilizarea SSL pentru a asigura schimbul de date de pe server.
Adăugați depozitul Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Instalați Certbot, care este aplicația client pentru Let's Encrypt CA.
sudo apt -y install certbot
Notă: Pentru a obține certificate de la Let's Encrypt CA, domeniul pentru care se vor genera certificatele trebuie îndreptat către server. Dacă nu, faceți modificările necesare în înregistrările DNS ale domeniului și așteptați propagarea DNS înainte de a face din nou cererea de certificare. Certbot verifică autoritatea domeniului înainte de furnizarea certificatelor.
Generați certificatele SSL.
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
Este posibil ca certificatele generate să fie stocate în /etc/letsencrypt/live/redmine.example.com/
. Certificatul SSL va fi stocate ca cert.pem
și cheia privată vor fi stocate ca privkey.pem
.
Să criptăm certificatele să expire în 90 de zile, de aceea este recomandat să configurați reînnoirea automată a certificatelor folosind joburi Cron.
Deschideți fișierul de lucru Cron pentru root
utilizator.
sudo crontab -e
Adăugați următoarea linie la sfârșitul fișierului.
30 5 * * * /usr/bin/certbot renew --quiet
Locul de muncă Cron de mai sus se va desfășura în fiecare zi la 5:30 AM. Dacă certificatul expiră, acesta va fi reînnoit automat.
Activați modulul SSL pentru Apache.
sudo a2enmod ssl
Editați fișierul gazdă virtual pe care l-am creat anterior pentru Redmine.
sudo nano /etc/apache2/sites-available/redmine.conf
Modificați fișierul gazdă virtuală pentru a fi similar cu următoarele.
<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>
Salvați fișierul și ieșiți din editor.
Reporniți Apache pentru ca modificările să aibă efect.
sudo systemctl restart apache2
Acum puteți accesa Redmine over HTTPS
at https://redmine.example.com
.
Felicitări, ați instalat cu succes Redmine pe instanța Ubuntu 16.04. Începeți să dezvoltați proiectul dvs. fie prin crearea sau importarea proiectului.
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe