Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
Redmine - бесплатный веб-инструмент управления проектами с открытым исходным кодом. Он написан на Ruby on Rails и поддерживает несколько серверов баз данных для хранения базы данных. Это многофункциональное приложение, поддерживающее несколько проектов, ACL на основе ролей и с��стему отслеживания проблем. Он также имеет диаграмму Ганта и поддержку календаря, управление файлами, вики проекта и форум, а также многие другие функции. Он поддерживает системы контроля версий, такие как Git, SVN или CVS. Это также многоязычный, поддерживающий до 49 языков.
В этом руководстве мы будем использовать 192.168.1.1
в качестве общедоступного IP-адреса и в redmine.example.com
качестве имени домена, указывающего на экземпляр Vultr. Обязательно замените все вхождения примера доменного имени и IP-адреса фактическим.
Обновите свою базовую систему, используя руководство Как обновить Ubuntu 16.04 . После обновления системы перейдите к установке зависимостей.
Redmine написан на Ruby on Rails, поэтому нам потребуется Phusion Passenger для интеграции с веб-сервером Apache для обслуживания приложения.
Установите 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
Создайте нового пользователя 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
Установите еще несколько необходимых зависимостей PostgreSQL.
sudo apt -y install libpqxx-dev protobuf-compiler
Мы установим последнюю версию Ruby с использованием RVM. Он используется для установки и управления несколькими версиями 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чтобы пропустить этот шаг.
Наконец, скрипт установщика проверит установку, и вы увидите предупреждение о том, что модуль Passenger не указан в конфигурации 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.
Теперь, когда мы установили модуль Passenger для Apache, перейдите к загрузке и установке Redmine. sudo
Снова переключитесь на пользователя, так как нам больше не нужно запускать команды с использованием root
пользователя.
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
Furthur, найдите закомментированные строки, имеющие 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>
.
Добавьте модуль Passenger для Apache в файл конфигурации Apache. Это автоматически загрузит модуль Passenger.
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.
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
.
Срок действия сертификатов Let's Encrypt истекает через 90 дней, поэтому рекомендуется настроить автоматическое обновление сертификатов с помощью заданий Cron.
Откройте файл задания Cron для root
пользователя.
sudo crontab -e
Добавьте следующую строку в конец файла.
30 5 * * * /usr/bin/certbot renew --quiet
Вышеуказанная работа Cron будет выполняться каждый день в 5:30. Если срок действия сертификата истекает, он будет автоматически продлен.
Включите модуль SSL для Apache.
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
Вы можете теперь доступ Redmine более HTTPS
в https://redmine.example.com
.
Поздравляем, вы успешно установили Redmine на свой экземпляр Ubuntu 16.04. Начните разработку вашего проекта, создав или импортировав ваш проект.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше