Установка и настройка домена для сайта Django на VPS

👁 24 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

После того, как проект готов, нужно, чтобы им можно пользоваться через доменное имя второго или третьего уровня project.mydomen.ru или mydomen.ru.

На самом деле, нет разницы какого уровня будет домен. В данном примере условимся, что нам нужен субдомен нашего домена выделить под проект на Django. Если он будет третьего уровня, то надо будет дописать в DNS — редакторе регистратора запись CNAME именем project и www.project со значениями mydomen.ru. 

Пример создания субдомена в DNS в панели регистратора домена
Пример создания субдомена в DNS в панели регистратора домена. Обратите внимание на точку в конце значения.

 

Замечание. Не забываем, что если даже NS — сервера вы добавили к вашему домену регистратора, то это не полностью означает, что этот домен уже будет прикреплен к вашему VPS. Вторым шагом после этого является создание со стороны VPS доменной зоны под этот домен и субдомен. Если домен куплен там же, где VPS, то , в большинстве этот процесс должен быть автоматизирован, но не факт.

Далее у нас может быть несколько случаев развития событий:

  • у нас в системе установлена какая-то готовая панель, на подобие VestaCP, в который уже входит нужный инструментарий;
  • нам нужно ставить все сервисы и пакеты с нуля.

Разберем оба варианта. В случае панели управления покажу как это делать с VestaCP.

Замечание. С установкой Nginx и с работой вспомогательных утилит для стабильной работы проекта Django на продакшн мы уже сталкивались в Деплой проекта Django в продакшн с Nginx + Gunicorn + Supervisor. В данном статье повторим путь с уклоном на понимание процесса прикрепления домена к проекту, если нам не нужен VestaCP.

Установка домена под проект Django, используя VestaCP

VestaCP уже содержит сервер Nginx, который нам будет нужен, чтобы перенаправить все запросы к нашему проекту на Django.

1. Создаем новый WEB- сайт в панели VestaCP

Создание нового WEB-проекта
Создание нового WEB-проекта

2. Редактируем конфигурационный файл Nginx по пути /home/<user>/web/conf/web/project.mydomen.ru.nginx.conf

Меняем содержимое, на подобие ниже и не забываем прописывать данные своего проекта. Порт текущего проекта 8001, если у вас другой — меняем на свой

server {
    #Все обращения на 80-м порту Nginx будет проверять
    #на соответствие нашему субдомену проекта
    listen      IP_ADRESS_OF_MY_VPS:80;
    server_name project.mydomen.ru www.project.mydomen.ru;
    error_log  /var/log/apache2/domains/project.mydomen.ru.error.log error;
	
    #Указываем путь к папке, где будут храниться статические данные сайта
    location /static/ {
        root /home/myprojectenv/project/;#Путь к папке проекта
        expires 30d;
    }
	
    #Указываем IP адрес проекта и порт, на котором он запущен.
    location / {
        proxy_pass      http://IP_ADRESS_OF_MY_VPS:8001;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #Обработка ошибок
    location /error/ {
        alias   /home/admin/web/project.mydomen.ru/document_errors/;
    }

    location @fallback {
        proxy_pass      http://IP_ADRESS_OF_MY_VPS:8001;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/admin/conf/web/nginx.project.mydomen.ru.conf*;
}

 

3. Перезапускаем сервер Nginx в панели VestaCP

Перзапуск сервера Nginx
Перезапуск сервера Nginx

Далее заходим по адресу project.mydomen.ru и убеждаемся, что по нему открывается наш проект на Django.

 

Установка домена под проект Django, используя только Nginx.

Ставим Nginx

sudo apt-get install nginx

Теперь идем и настраиваем Nginx по пути в файле

cd /etc/nginx/sites-available/

открываем файлик default

nano default

и перепишем некоторые моменты, как ниже

server {
    listen 80;
    server_name project.mydomen.ru;
    access_log  /var/log/nginx/example.log;

    location /static/ {
        root /home/myprojectenv/project/;
        expires 30d;
    }

    location / {
        proxy_pass http://IP_ADRESS_OF_MY_VPS:8001; 
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

сохраняем и выходим.

Выполняем перезапуск Nginx, чтобы изменения вступили в силу

sudo service nginx restart

Заходим по адресу project.mydomen.ru и проверяем. Если не сработало, то читаем статью, которая тесно с этим пунктом связана.

Основные команды и операции в терминале Linux

👁 12 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Команды

Объединение нескольких команд в одну последовательную операцию

$ cmd1 && cmd2 && cmd3

Установка нескольких пакетов за раз

$ apt-get install package1 package2 package3

Навигации

pwd — («Path Working Directory») абсолютный путь до текущей рабочей папки

ls [-a][-l] — («LiSt»)список всех файлов в текущей папке.

  • [-a] — показать все файлы, даже скрытые;
  • [-l] — показать длинную(полную) информацию о файлах;
  • [-la] — комбинация обеих ключей;

cd — («Change Directory»)смена директории.

  • [TAB] — позволяет автодополнять название папки, если такая имеется, при введени неполного имени

Shift + ~ — переход в домашнюю папку;

../.. — то же самое. Переход в домашнюю папку;

cat [filename] — («CATenate») читает данные из файла или стандартного ввода и выводит их на экран.

clear или Ctrl + L — очищает экран.

Работа с файлами и директориями

touch [fname.txt] — создание нового файла.

  • [{fname1,fname2,fname3}.txt] — создание нескольких файлов за раз. Список пишется без пробелов;

mkdir [dname] — («MaKe DIRectory»)создание директории.

rm [fname] — («ReMove»)удаление файла.

rm [-r][dname] — удаление директории с содержимым.

cp [fname1] [fname2] — («CoPy»)копирование файла.

mv [fname1] [fname2] — («MoVe»)перемещение или переименование файла.

Регулярные выражения POSIX / PERL

grep [-inwo][-rlс][-P][-f] [-A 2] [-B 2] [-C 2] [«pattern»] [«filename»]— («Gloval Regular ExPressions») регулярные выражения для использования в обработке данных и файлов

  • [-i] — («Ignore»)фильтр игнорирует регистр;
  • [-n] — («Number»)фильтр выводит номера строк совпадений
  • [-w] — («Word»)фильтр поиска слова целиком. Т.е., ищет при точном совпадении, а не при вхождении
  • [-o] — («Only»)фильтр вывода только строки вхождения
  • [-r] — («Recursive»)фильтр рекурсивного поиска, если файлов много
  • [-l] — («List»)фильтр вывода списка файлов с совпадениями
  • [-c] — («Count»)фильтр вывода количества совпадений в файле
  • [-P] — («Perl»)перевод регулярного выражения в совместимый с языком Perl/Python
  • [-f] — («File»)фильтр, указывающий, что шаблоны или список шаблонов РВ берутся из файла
  • [-A N] — («After»)контекст посде совпадения на N строк
  • [-B N] — («Before»)контекст перед совпадением на N строк
  • [-C N] — («Context»)контекст перед и до совпадения на N строк
  • [«pattern»] — Строка совпадения или шаблон поиска регулярного выражения
  • [«filename»] — файл(«file.txt») или список файлов в директории(folder/*)

Пример 1: grep -Pno «\d{3}-\d{2}-\d{2}» file.txt > log.text — поиск совпадений шаблона номера в файле и запись результата в текстовый файл
Пример 2: rep -Pnof patterns.txt file.txt > log.text — в данном случае операция соответствует первому примеру, но шаблон(ы) берется(утся) из файла «patterns.txt», в котором шаблон записан в виде «\d{3}-\d{2}-\d{2}»

Алиасы

Примечание. Все алиасы хранятся в файле ~/.bashrc и добавляются конец файла по мере необходимости. После каждого добавления нужно обновить этот файла командой . ~/.bashrc или командой source ~/.bashrc

Пример 1: alias activate=’source bin/activate’ — теперь достаточно зайти в папку виртуальной среды и выполнить команду activate, чтобы теперь активировать виртуальную среду.

Установка и работа с базами данных MySQL и PostgreSQL

База данных бывает полезна для поделок и работы в терминале Linux. В роли реляционной БД можно использовать самые известные: MySQL и PostgreSQL.

Установка MySQL

Установка

$ sudo apt-get install mysql-server mysql-client

в процессе установки система затребует пароль для пользователя по умолчанию БД MySQL root и надо будет ее ввести.

Входим в интерпретатор команд SQL

$ mysql -u root -p<password>

где <password> — пароль, который мы вводили для root. После удачного ввода заходим в консоль MySQL, который начинается с mysql>.

Показ списка существующих баз данных

mysql>show databases;

Создание новой базы данных:

mysql>create database my_db character set utf8 collate utf8_unicode_ci;
  • character set — параметр установки кодировки
  • collate — параметр для указания кодировки, при котором будут сравниваться символы. В данном случае кодировка указана как utf8, а сравнивание будет производиться по той же кодировке utf8. *_ci в конце кодировки сравнивания указывает, что сравнивание будет регистронезависимой.

Удаление базы данных

mysql>drop database my_db;

Выход из консоли

mysql>exit;

 

Установка PostgreSQL

Установка

$ sudo apt-get install postgresql

После того, как сервер баз данных установился, нам нужно будет теперь поменять пароль пользователя

$ sudo -u postgres psql

Данная команда говорит системе, чтобы мы зашли в консоль под пользователя БД Postgres по умолчанию, который именуется, как postgres и могли выполнять операции. Далее мы войдем в консоль, который будет начинаться через postgres=#.

Теперь можно менять пароль. Для этого нужно вводить команды через обратный слэш

postgres=# \password

Далее система затребует новый пароль, который нужно будет подтвердить.

Создаем новую базу данных

postgres=# create database my_db;

 

Вывод списка всех БД

postgres=# \l

Удаление БД

postgres=# drop database db_name

 

Работа с CRON

Cron (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время. Управлять cron нужно с помощью команды ‘crontab’.

Список задач cron для текущего пользователя можно посмотреть через команду

$ crontab -l

флаг -l указывает на то, что нужно вывести список(List) всех задач.

Для создания задач необходимо редактировать файл задач и для этого нужно выполнить команду

$ crontab -e

флаг -e указывает на то, что мы будем редактировать(Edit) список задач. После выполнения данной команды система потребует, чтобы вы из списка выбрали номер редатора, которым будете редактировать задания

Selection    Path                Priority   Status
------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Чтобы потом изменить редактор для cron нужно задать другое значение для параметра EDITOR

$ export EDITOR=/usr/bin/vim.basic

выбираем и идем дальше.

После вышеизложенной операции система откроет файл задач, там будет некоторый закоментированный текст и свободная часть для добавления новых задач

Пример скриншота, как выглядит файл задач cron
Пример скриншота, как выглядит файл задач cron

Чтобы разобраться, как задать время или интервалы исполнения нужно познакомиться с принципом задания значений cron. Ниже представлено описание параметров в их определенной позиции с лева направо

# ┌───────────── минуты (0 - 59)
# │ ┌───────────── часы (0 - 23)
# │ │ ┌───────────── дни в месяцах (1 - 31)
# │ │ │ ┌───────────── месяц (1 - 12)
# │ │ │ │ ┌───────────── день недели (0 - 6) (с понедельника по субботу;
# │ │ │ │ │                                   7 также воскресенье на некоторых системах)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * команда выполнения

 

Замечение. Есть хорошие валидаторы, которые дадут ясное понимание, как работает cron в UNIX — подобном окружении и одним из таких является сервис https://crontab.guru.

Параметры ввремени cron можно задавать по разному и тут важно отличать периодичность выполнения, единоразовое выполнение и выполнение при каждом цикле:

  • */n — выполнить с периодом 1/n;
  • n — выполнить каждый раз в это время;
  • n0, n1 — выполнить каждый раз в n0 и n1;
  • n0-n1 — выполнить всякий раз в интервале с n0 по n1;
  • * — выполнить всегда, при каждом цикле.

Пример 1.

1 0 * * * printf "" > /var/log/apache/error_log

Данная команда будет очищать журнал ошибок Apache в одну минуту полуночи (00:01) каждый день.

Пример 2.

45 23 * * 6 /home/oracle/scripts/export_dump.sh

Этот пример запускает скрипт shell под названием export_dump.sh в 23:45 в каждую субботу.

Пример 3. 

*/15 20 * * 1-5 /home/oracle/scripts/script.sh

Этот пример запускает скрипт shell под названием script.sh в каждые 15 минут 20 часа вечера в каждый будний день с понедельника по пятницу.

Увеличиваем время соединения по протоколу SSH

👁 27 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Иногда необходимо долго ждать установку или выполнение какого-то пакета или скрипта и время таймаута соединения по умолчанию не хватает и соединение может прерваться в середине процессе. Это делается очень просто прописыванием 3-х параметров в файле /etc/ssh/sshd_config

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60

 

Данные параметры уже есть в данном файле, их, просто, нужно раскоментировать и прописать против них новые значения на увеличение времени таймаута соединения SSH.

TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в моем примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения данных параметров перезапускаем сервис ssh

sudo service ssh restart

Установка Python 3.6 и настройка виртуальных сред на Ubuntu 18

👁 75 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Установка и работа с virtualenv

Обновляем систему

sudo apt-get update

Ставим Python 3.6 из коробки

apt install python3.6

Теперь, если удачно установилось, то можем проверить версию и место утсновки

python3.6 -v
whereis python3.6
which python3.6

Делаем алиас-ссылку, чтобы Python 3.6 запускался через команду python

alias python=python3.6

Замечание. Команда добавления алиаса выше в идеале должна создать равносильную ссылку команды python с python3. Но, вероятно, что он может не сработать и тогда придется вручную править файл .bashrc

nano ~/.bashrc

и добавляем туда линк

alias python=python3

Файл .bashrc предназначен для задания псевдонимов команд и функций, используемых пользователями оболочки bash.

Ставим пакетный менеджер для Python 3

sudo apt-get install python3-pip

Ставим инструмент виртуальных сред

sudo pip3 install virtualenv

 

Замечание. Если вы используете Python 3.3 или выше, то venv модуль уже включен в стандартную библиотеку Python. Он также, как и virtualenv может создавать и управлять виртулаьными средами, но он поддерживается только в версиях Python 3.x

Создаем среду, активируем и работаем

virtualenv myenv
cd myenv
source bin/acivate

Для деактивации и выхода из текущей виртуальной среды выполняем привычную команду

deactivate

 

Можно обойтись одним лишь базовым инструментом virtualenv для работы с виртуальными средами в Python, но помимо его базовых функций есть возможность использовать расширяющий возможности инструмент под названием virtualenvwrapper, с которым познакомимся ниже.

Установка и работа с virtualenvwrapper

virtualenvwrapper — это набор расширений для virtualenv с дополнительным инструментарием. Расширение включают в себя оболочку для создания и удаления виртуальных сред и, в противном случае, управление рабочим процессом разработки, что упрощает работу над несколькими проектами одновременно без введения конфликтов в их зависимости.

Установка virtualenvwrapper

pip install virtualenvwrapper

Смотрим, где находится virtualenvwrapper.sh

which virtualenvwrapper.sh

Данная команда выведет информацию о пути нахождения типа /usr/local/bin/virtualenvwrapper.sh. Теперь нужно добавить некоторую информацию в конце нашего файла ~ / .bashrc

sudo nano ~/.bashrc

Добавляем в конец

# where to store our virtual envs
export WORKON_HOME=$HOME/virtenvs
# where projects will reside
export PROJECT_HOME=$HOME/Projects-Active
# where is the virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper.sh

Сохраним изменения

source ~/.bashrc

Проверяем, что все установилось

workon

Это выведет пустую строку, что будет означать успешность работы

Базовые операции virtualenvwrapper

Создаем виртуальную среду

mkvirtualenv myenv

Если нужно создать сразу с рабочей папкой

mkproject myenv

Можем узнать сколько виртуальных окружений

workon

Для переключения просто набираем

workon myenv

Для выхода

deactiavate

Для удаления виртуального окружения

rmvirtualenv

 

Запуск любого процесса в демон/бакграунд при помощи pm2 и bash — скрипта

👁 108 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Допустим, есть такая задача, чтобы процесс не завершался после закрытия консоли и для этого есть утилита Node.js под названием pm2. Ссылка на проект в GitHub.

 

 Использование

Установка

Делается это очень просто:

npm install pm2 -g

Запуск в демон

Запустим какое-нибудь приложение или процесс в демон:

pm2 start app.js

Вывод списка запущенных процессов, остановка, перезапуск и удаление процесса

Весь список процессов в делегировании:

pm2 list|ls

Остановка:

pm2 stop [options] <id|name|all|json|stdin...>

Перезапуск:

pm2 restart [options] <id|name|all|json|stdin...>

Удаление из списка делегирования:

pm2 delete <name|id|script|all|json|stdin...>

Это не полный перечень команд, но этого достаточно, чтобы быстро начать работу.

 

Реальный пример

Давайте теперь поставим задачу отправить в демон/бакграунд процесс запуска приложения Angular CLI на удаленном или локальном сервере. Для запуска приложения Angular в обычном режиме используется команда:

ng serve --host 0.0.0.0 --port 4200

Нам же нужно, сделать так, чтобы дать этому процессу название и запустить его в процесс делегирования pm2. Для этого создаем файл скрипта оболочки bash с расширением sh. Например, назовем его start.sh и запишем команду запуска процесса:

#!/bin/bash
ng serve --host 0.0.0.0 --port 4200

И теперь, чтобы запустить в делегирование pm2 и дать этому процессу названием выполним команду:

pm2 start start.sh --name serverapp

где serverapp — то название, которое мы дали процессу в списке задач делегирования pm2. Все, процесс запущен в демон/бакграунд режиме и чтобы посмотреть данный процесс в списке задач делегирования pm2 выполним команду:

pm2 list

После чего pm2 выведет в консоль список всех процессов, среди которых и наш serverapp:

Установка новой версии Node.js на CentOS

👁 193 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Данная статья является дополнением статьи по ссылке и отличается тем, что необходимо установить новую версию GCC 4.8.5 для компиляции исходников новой версии Node.js посредством чего решим ошибку установки:

WARNING: failed to autodetect C++ compiler version (CXX=g++)

В статье установим версию Node.js v8.0.0.

Примечание. Понятие «новая версия» относительна, поэтому, со временем версия версия Node.js 8.0.0 тоже устареет. Новая, относительно времени написания данной статьи.

 

Установка новой версии компилятора GCC на CentOS

Шаг 1. Устанавливаем GCC:

sudo yum install gcc-c++

Если после данной операции выводится то же предупреждение, что не установлена актуальная версия GCC, то идем к следующему шагу скачивания исходников и компиляции.

Шаг 2. Скачиваем исходники GCC для создания бинарников установки на CentOS:

Сначала переходим в папку /usr/src/:

cd /usr/src

и скачиваем исходники:

wget http://mirrors-usa.go-parts.com/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz

Зеркала на скачивание могут меняться и можете выбрать любое зеркало поближе к своей стране или области, где вы находитесь. В данном случае, используются зеркала в США.

Шаг 3. Распаковываем исходники:

tar zxvf gcc-4.8.5.tar.gz

Шаг 4. Входим в распакованную папку и устанавливаем зависимости исходников:

cd gcc-4.8.5
./contrib/download_prerequisites

Шаг 5. Выходим из папки в корень /usr/src/ и создаем папку вывода компиляции:

cd ../
mkdir gcc-build-4.8.0

Было бы логично, что папка должна быть не с номерами версии 4.8.0, а с номерами 4.8.5, которую мы устанавливаем. Почему 4.8.0 я не знаю, это может быть клерикальная ошибка разработчиков, но последуем примеру.

Шаг 6. В созданном каталоге gcc-build-4.8.0 сгенерируем makefile:

cd gcc-build-4.8.0
../gcc-4.8.5/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

Вот каталог gcc-4.8.5, оригинал ошибочно принят за 4.8.0. Это ошибка разработчиков, которую я упомянул в шаге 5.

Шаг 7. Компиляция. В данном случае, ждал этот процесс около 3 часов, поэтому имейте в виду, что может идти долго:

make -j4

Выполняем эту команду в папке gcc-build-4.8.0.

Шаг 8. Устанавливаем скомпилированные бинарники:

sudo make install

Шаг 9. Удостоверимся, что GCC новой версии у нас установился:

gcc -v

Теперь, когда новый компилятор GCC для CentOS установлен продолжим установку новой версии Node.js

 

Установка Node.js v8.0.0 на CentOS

Сначала обновляем систему репозиторий:

yum update

Устанавливаем группу инструментов разработки Development Tools:

yum -y groupinstall "Development Tools"

Опция -y позволит избежать подтверждения действий на протяжении установки. После введите команду для установки ПО, необходимого для подключения к VPS и получения доступа к нескольким параллельным сессиям:

yum -y install screen

Переходим в папку /usr/src:

cd /usr/src

Загружаем архив с Node.js при помощи команды wget:

wget http://nodejs.org/dist/v8.0.0/node-v8.0.0.tar.gz

Все доступные архивы кода NodeJS можно посмотреть по ссылке http://nodejs.org/dist/.

Извлекаем содержимое скачанного архива:

tar zxf node-v8.0.0.tar.gz

Переместимся в каталог, используя команду cd:

cd node-v8.0.0

Выполняем скрипт configure:

./configure

Команда для компиляции исходного кода:

make

По окончанию данного процесса нужно выполнить общесистемную установку:

make install

Команда make install призвана разместить скомпилированные двоичные файлы в системный путь, чтобы каждый пользователь мог работать с ним, не отвлекаясь на дополнительные настройки. По умолчанию двоичный код Node.js “лежит” в /usr/local/bin/node.

 

Использованные источники:

记录:在bandwagon的VPS上装nodejs

Установка Node.js на CentOS 6

Установка Node.js v0.x на CentOS

👁 77 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Примечание. Это легкий способ установки Node.js ?>v0.10.4, но таит в себе вопрос целесообразности, потому что таким способом можно установить только старую версию Node.js, на котором особо современyого ничего не сделать и даже AngularJS требует версию, начиная с Node.js v6. Версии Node.js требуют разные компиляторы, которыми собираются бинарники. В старых версиях требовался старый GCC, а в новых версиях требуется GCC версии GCC v4.8.5 или clang++ v3.4 и выше, таким образом, если попытаетесь установить новую версию Node.js на CentOS может выскочить ошибка в консоли:

WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)

Поэтому, если если хотите установить новую версию, то советую почитать эту статью.

Сначала обновляем систему репозиторий:

yum update

Устанавливаем группу инструментов разработки Development Tools:

yum -y groupinstall "Development Tools"

Опция -y позволит избежать подтверждения действий на протяжении установки. После введите команду для установки ПО, необходимого для подключения к VPS и получения доступа к нескольким параллельным сессиям:

yum -y install screen

Переходим в папку /usr/src:

cd /usr/src

Загружаем архив с Node.js при помощи команды wget:

wget http://nodejs.org/dist/v0.10.4/node-v0.10.4.tar.gz

Все доступные архивы кода NodeJS можно посмотреть по ссылке http://nodejs.org/dist/.

Извлекаем содержимое скачанного архива:

tar zxf node-v0.10.4.tar.gz

Переместимся в каталог, используя команду cd:

cd node-v0.10.4

Выполняем скрипт configure:

./configure

Команда для компиляции исходного кода:

make

По окончанию данного процесса нужно выполнить общесистемную установку:

make install

Команда make install призвана разместить скомпилированные двоичные файлы в системный путь, чтобы каждый пользователь мог работать с ним, не отвлекаясь на дополнительные настройки. По умолчанию двоичный код Node.js “лежит” в /usr/local/bin/node.

Базовый набор команд для работы в консоли Linux/Ubuntu

👁 150 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

 

В данном посте приведен минимальный базовый список команд для уверенной работы в командной строке Linux/Ubuntu.

Порядок выполнения команд в Ubuntu

В консоли Ubuntu несколько команд можно комбинировать и создавать условия выполнения, в заивисмости от итога выполнения предыдущей команды.

Безусловное последовательное выполнение — это когда одна за другой выполняются команды в той последовательности, в которой они записаны. Например, мы хотим выполнить сначала одну команду. Затем, когда она отработает (вернет управление в командную строку), нам нужно запустить вторую команду. Для этого служит символ точка с запятой ;. Таким образом, если вы выполните в терминале:

mycommand1; mycommand2; mycommand3

то сначала запустится первая команда mycommand1, а когда управление вернется в терминал, то запустится вторая и так далее.

Зависимое выполнение команд через оператор && — это означает, что команда mycommand2 будет выполнена только в том случае, если команда mycommand1 была выполнена успешно. Каждая следующая команда выполняется только при успешном выполнении предыдущей. К примеру:

mycommand1 && mycommand2 && mycommand3

Зависимое выполнение команд через оператор || — это означает, что команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку. К примеру:

mycommand1 || mycommand2 || mycommand3

то команда mycommand2 будет выполнена только, если mycommand1 вернула ошибку. Каждая следующая команда запускается только если предыдущая вернула ошибку.

reboot — перезагрузка операционной системы через консоль

Перезагружает систему через консоль. Форма записи обычная:

reboot

apt-get — управление приложениями через менеджер пакетов Ubuntu

apt-get позволяет устанавливать, обновлять, удалять приложения и пакетами ОС Ubuntu. Форма записи:

sudo apt-get install[uninstall, update] <package_name>

Очень полезно обновлять информации о доступных пакетов через команду:

sudo apt-get update

Зачастую, apt-get может и не установить какой-то пакет из репозитория, если мы не выполним обновление информации.

whoami — выводит логин текущего пользователя

Выводит имя пользователя, который на данный момент работает в консоли. Форма записи:

whoami

aptitude — более совершенная версия команды apt-get

Это более совершенный менеджер пакетов. В частности, позволяет очень эффективно обновлять пакеты, сохраняя все зависимости:

sudo aptitude safe-upgrade

bash — команды оболочки командной строки Ubuntu

Это команды, который позволяют работать со средой окружения. К прими, на основе их можно написать целые скрипты с расширением *.sh и выполнять их:

bash myscript.sh

Есть переменные среды окружения Ubuntu, в которых система хранит те или иные данные. К примеру, командой echo можно вывести данные, хранящиеся в переменных $USER, $HOME, $PATH:

echo $USER[$HOME, $PATH]

Очень важно упомянуть в данном контексте 3 важных скрытых файла оболочки bash в корневой директории root:

  • .bashrc
  • .bash_profile
  • .profile

Данные файлы загружаются при каждом начале сессии загрузки командной строки или системы Ubuntu. Это файлы настроек начальной загрузки сессии пользователя и внутри них прописаны сценарии начальной загрузки системы.

ls — вывод списка всех файлов и директорий в указанном пути

Выводит весь список файлов и папок в определенной директории, которую мы укажем. Форма записи:

ls /dir/name

В обычной записи эта команда не выведет скрытые файлы и папки, которые начинаются с точки, а для их вывода используются ключи дополнительного управления командами через дефис.

Чтобы показать и скрытые файлы нужно вывести через набор команды и ключа -a:

ls -a

К примеру, для вывода полной информации с правами доступа, владельцами и со скрытыми папками и файлами можно набрать комбинацию этой команды с ключами в виде:

ls -la /dir/name

mkdir — создание папки или директории по указанному пути

Позволяет создавать папку через командную строку в Ubuntu. Если требуется создавать вложенные папки, то они разделяются через прямой слэш (/):

mkdir my/new/dir

pwd — показывает текущую директорию, где находится пользователь

Форма записи:

pwd

Тоже самое можно увидеть, если вывести это через системную переменную $PWD, в котором Ubuntu этот путь и хранит:

echo $PWD

cd — команда перехода по папкам и директориям

Позволяет пользователю перемещаться по разделам и директориям системы. К примеру, для перехода на один уровень выше нужно выполнить:

cd ../

Для перехода в какую-то директорию в пределах текущей директории нужно выполнить:

cd ./folder/name

или

cd folder/name

а если хотим из текущей директории перейти сразу в какой-нибудь параллельный раздел, то надо указать абсолютный путь с указанием / в начале пути:

cd /usr/bin

cp — команда копирования файлов и папок в Ubuntu

Позволяет копировать указанный файл, принимаемый первым параметром в виде файла, указанный вторым параметром:

cp filename.txt filename_copy.txt

Если мы хотим копировать папки с содержимым, то надо еще указать ключ реверсного копирования -r:

cp -r foldername foldername_copy

mv — перемещение или переименование папки из одного в другое место(имя)

Суть переименования и перемещения в среде программирования  — идентичные операции, поэтому эта команда служит для двоякого использования:

mv dirname new_dirname

или мы можем переместить:

mv dirname folder/dirname

если хотим переместить файл, то надо первым параметром указать имя файла, а вторым — путь, по которому он будет перемещен:

mv filename.txt folder/path/

rm — удаление файлов и папок в Ubuntu

Данная команда позволяет удалять файлы и папки, передаваемые первым параметром:

rm filename.txt

а если хотим удалить папку и его содержимое, то надо указать ключ рекурсивности -rf:

rm -rf foldername

если хотим удалить только все содержимое папки, без самой папки, то надо после слэша написать выражение *:

rm foldername/*

nano/vi/…  — редактирование файлов в Ubuntu

На самом деле по умолчанию в Ubuntu нет встроенной команды редактирования и для этого надо будет установить любой из доступных редакторов через пакетный менеджер. Есть такие популярные редакторы, как nano/ vi/vim/ joe и т.д.

netstat — команда вывода на консоль информации о состоянии TCP соединения процессов

Одна из полезных комбинаций данной команды — это вывод информации о запущенных процессах, занимаемых ими портов и адресов сети:

netstat --tcp --listening --program

Еще одна полезна комбинация — это вывод всех занятых процессами портов:

netstat -ntlp | grep LISTEN

kill — убивает тот или иной процесс по ID или по PID

Чтобы убить процесс по PID:

kill PID

чтобы убить процесс принудительно по PID добавляем ключ -9:

kill -9 PID

lsof — команда для вывода информации о том, какие файлы или порты используются теми или иными процессами

Одна из полезных комбинаций данной команды — вывод процессов, которые занимают тот или иной порт:

lsof -Pni :3306

К примеру, какой-то процесс занял нужный нам порт и нам нужно узнать его PID и принудительно освободить этот порт и для этого можно набрать:

lsof -i tcp:3000
kill -9 PID

 

Работа через менеджер версий Node.js (NVM)

👁 155 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Что такое NVM?

NVM(Node Version Manager) — это простой bash — скрипт, который позволяет упралять(устанавливать, обновлять, активировать, удалять) разные версии Node.js на одной машине так, что они выполняются в изолированных друг от друга средах. Таким образом, можно работать с разными версиями одного программного обеспечения не задевая или разрушая их модульные зависимости.

Почему NVM?

В любой момент вы захотите работать с различными проектами, используя различные версии Node.js и NVM позволяет устанавливать разные версии для различных проектов. NVM позволяет работать  с разными версиями посредством сессий, при котором каждая сессия соответствует версии Node.js.

Установка NVM

Установка на Linux/Ubuntu очень легко делается, сначала надо будет скачать через ссылку, указав версию(на момент написания версия была v0.33.8 и это можно проверить по ссылке на официальном репозитории).

Скачка через curl:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

или через wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Возможно, что после установки вам придется закрыть и еще раз открыть консоль, но в большинстве этого не требуется.

Скрипт клонирует репозиторий nvm в директорию  ~/.nvm и добавляет исходные строки в наш профиль в виде:   ~/.bash_profile~/.zshrc~/.profile или ~/.bashrc

Установка Node.js используя NVM

Давайте рассмотрим процесс установки Node.js через NVM и это легко. Перед тем, как установить Node.js, нам необходимо узнать какие версии на данный момент доступны для загрузки и установки и для этой проверки есть команда:

nvm ls-remote

Если в списке есть желаемая версия, то ее можно установить через команду с указанием этой версии:

nvm install 5.0

И потом можно менять оболочки(сессии) использования версии через команду:

nvm use 5.0

Использование NVM

Чтобы посмотреть список установленных версий Node.js можно набрать команду:

nvm ls

И если мы в большинстве используем определенную версию Node.js, то можем установить ее по умолчанию:

nvm alias default 5.0

И все это дело можно гибко настраивать, создавая файл .nvmrc в корневой директории проекта с указанием необходимых данных версии Node.js для запуска проекта.

 

Заключение

Управление версиями на одной машине — это ключевая задача, но утомительная. Задачи должны быть автоматизированы и для этого и создавался NVM, который помогает нам управлять различными версиями Node.js без труда. Дополнительно про возможности NVM можно почитать на официальной странице репозитория.

 

Установка, апгрейд и переустановка Node.js на Ubuntu

👁 342 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Введение

Node.js — это JavaScript платформа для общего назначения, которая позволяет пользователям быстро построить сетевые программы. На этой платформе при помощи JavaScript достигается цель построения как фронтенд, так и бэкэнд.

В данном гайде показывается несколько способов установки Node.js на Ubuntu 16.04 сервер.

Требования

В этом руководстве предполагается, что вы используете Ubuntu 16.04. Прежде чем начать, вы должны иметь учетную запись пользователя без полномочий root с привилегиями sudo, установленными в вашей системе.

Установка стабильной версии(Distro-Stable) Node.js на Ubuntu

Ubuntu 16.04 содержит версию Node.js в своих репозиториях по умолчанию, которые могут быть использованы для обеспечения последовательного взаимодействия с несколькими системами. На момент написания статьи версия в репозиториях — v4.2.6. Это будет не последняя версия, но она должна быть довольно стабильной и должна быть достаточной для быстрого экспериментирования с языком, но, возможно, что эта версия нам не подойдет, если требуется использоваться современные фишки или функции Node.js.

Чтобы получить эту версию, нам просто нужно использовать диспетчер пакетов apt. Сначала мы должны обновить наш локальный индекс пакета, а затем установить из репозиториев:

sudo apt-get update
sudo apt-get install nodejs

Если данная версия пакета Node.js в репозиториях Ubuntu соответствует вашим потребностям, то это все, что вам нужно сделать для установки. В большинстве случаев вы также захотите установить npm, который является менеджером пакетов Node.js. Вы можете сделать это, набрав:

sudo apt-get install npm

Этот менеджер позволит нам легко устанавливать модули и пакеты для использования с Node.js.

Из-за конфликта с другим пакетом исполняемый файл из репозиториев Ubuntu называется nodejs вместо node. Помните об этом при запуске операций сервера.

Но, если мы хотим, чтобы  команда nodejs была запущена и через команду node, надо будет сделать символическую ссылку. И есть несколько методов это сделать:

  • Вам нужно вручную создать символическую ссылку /usr/bin/node. Ярлык для совместимых с bash оболочек:
sudo ln -s `which nodejs` /usr/bin/node
  • Или, если вы используете нестандартные оболочки, просто скопируйте путь, который вы найдете по команде which nodejs:
sudo ln -s /usr/bin/nodejs /usr/bin/node
  • Возможно, что вышеизложенные оба метода могут вызвать конфликты имен, когда ссылаем команду node на nodejs. И для решения этого есть третий способ:
sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

Это первый и, думаю, самый легкий способ установки Node.js на Ubuntu 16.04, но не самый гибкий, если, к примеру, мы хотим установить другую версию, а не Distro-Stable, которая валяется в репозиториях Ubuntu давненько.

 

 

Установка Node.js на Ubuntu 16.04, используя PPA

Данный метод позволяет установить Node.js, используя более гибкий порядок. Это позволяет выбрать ту версию, которая подходит для нашего проекта. Это очень важно, если в проекте будут использоваться последние функции Node.js или пакеты, которые не поддерживают работу в Node.js старой версии.

Но есть вероятность, что самая последняя версия Node.js может не работать в Ubuntu нашей версии, поэтому надо это учитывать и не пытаться устанавливать нестабильную или самую последнюю версию.

Данный метод, который может помочь нам получить более новую версию Node.js, является добавление из PPA (Personal Package Archive, Персональный Пакетный Архив), поддерживаемый NodeSource. Отсюда можно подгрузить более современную версию Node.js, чем официальные репозитории Ubuntu, и позволяет нам выбирать между Node.js v4.x (более старая долгосрочная версия поддержки, поддерживаемая до апреля 2017 года), v6. x (более поздняя версия LTS, которая будет поддерживаться до апреля 2018 года) и Node.js v7.x (текущая, активно развиваемая версия).

Во-первых, вам нужно установить PPA, чтобы получить доступ к его содержимому. Для этого необходимо убедиться, что мы находимся в своем домашней директории и используем curl, чтобы подгрузить скрипт установки для нашей предпочтительной версии. Ниже мы сейчас устанавливаем версию 7.x:

cd ~
curl -sL https://deb.nodesource.com/setup_7.x -o nodesource_setup.sh

Мы можем проверить содержимое этого скрипта с помощью команды редактирования текстового документа nano (или вашего предпочтительного текстового редактора):

nano nodesource_setup.sh

Скрипт установки Node.js надо запустить под sudo:

sudo bash nodesource_setup.sh

PPA будет добавлен в нашу конфигурацию, и наш локальный кеш пакетов Ubuntu будет обновлен автоматически. После запуска скрипта установки из nodeource мы можем установить пакет Node.js таким же образом, как мы это делали в первом случае:

sudo apt-get install nodejs

Пакет nodejs содержит бинарный файл nodejs, а также менеджер пакетов npm, так что нам не нужно устанавливать npm отдельно. Однако для того, чтобы некоторые npm пакеты работали (например, те, которые требуют компиляции кода из исходного кода), нам необходимо установить пакет build-essential:

curl — это инструмент для загрузки или передачи файлов или данных с сервера или на сервер с использованием FTP, HTTP, HTTPS, SCP, SFTP, SMB и других поддерживаемых протоколов в Linux или Unix-подобной системе. Можно легко установить и использовать команду curl на Ubuntu Linux, используя команду apt или команду apt-get, чтобы использовать curl. Для установки данного инструмента необходимо выполнить команду

sudo apt install curl

 

 

Установка Node.js на Ubuntu, используя NVM

Альтернативой установке Node.js через apt и PPA является использование специально разработанного инструмента, называемого nvm «Node.js version manager»(Менеджер Версий Node.js).

Используя nvm, мы можем установить несколько автономных версий Node.js, которые позволят нам легче управлять своей средой. Он предоставит вам доступ по требованию к новейшим версиям Node.js, но также позволит вам настроить таргетинг на предыдущие версии, от которых зависит ваше приложение.

Для начала нам нужно будет получить пакеты программного обеспечения из наших репозиториев Ubuntu, которые позволят нам создавать исходные пакеты. Скрипт nvm будет использовать эти инструменты для создания необходимых компонентов:

sudo apt-get update
sudo apt-get install build-essential libssl-dev

После установки пакетов необходимых условий мы можем загрузить сценарий установки nvm со страницы проекта GitHub . Номер версии может отличаться, но в целом мы можем скачать этот скрипт установки при помощью curl:

curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh

После скачки мы можем проверить скрипт установки при помощи команды редактирования nano:

nano install_nvm.sh

После проверки, если все нормально, запускаем этот скрипт при помощи команды bash:

bash install_nvm.sh

Команда выше установит необходимые инструменты для работы в подкаталог нашего домашнего каталога ~/.nvm. Он также добавит необходимые строки в файл ~/.profile для работы.

Чтобы получить доступ к функциям nvm, нам нужно будет снова выйти и снова войти в систему или можно выполнить команду ниже, чтобы текущая сессия узнала об изменениях:

source ~/.profile

Теперь, когда мы установили nvm, мы можем установить изолированные версии Node.js.

Чтобы узнать версии Node.js, доступные для установки, мы можем ввести:

nvm ls-remote

Это выведет весь список возможных к установке версий Node.js

Output
...
v5.8.0
v5.9.0
v5.9.1
v5.10.0
v5.10.1
v5.11.0
v6.0.0
v7.0.0

Как вы можете видеть, самая новая версия на момент написания этой статьи — v7.0.0. Мы можем установить его, набрав:

nvm install 7.0.0

Обычно, nvm переключается на использование последней установленной версии. Мы можем явно сообщить nvm, чтобы использовать ту версию, которую мы только что загрузили, набрав:

nvm use 7.0.0

Когда мы устанавливаем Node.js с помощью nvm, вызывается исполняемый файл node. Мы можем увидеть версию, которая в настоящее время используется оболочкой, набрав:

node -v

Это выведет что-то на подобие:

Output
v7.0.0

Если у нас несколько версий Node.js, мы можем увидеть, что установлено, набрав:

nvm ls

Если мы хотим по умолчанию использовать одну из версий, мы можете ввести команду:

nvm alias default 7.0.0

Эта версия будет автоматически выбрана при появлении нового сеанса. Мы также можем ссылаться на псевдоним следующим образом:

nvm use default

Каждая версия Node.js будет отслеживать свои собственные пакеты и иметь npm возможность управлять ими.

Мы можем с помощью npm установить пакеты в ./node_modules каталог проекта Node.js, используя обычный формат. Например, для express — модуля:

npm install express

Если мы хотим установить его глобально (чтобы сделать его доступным для других проектов с использованием той же версии Node.js), мы можете добавить флаг -g:

npm install -g express

Это установит пакет в ~/.nvm/node_version/lib/node_modules/package_name.

Установка в глобальном масштабе позволит нам запускать команды из командной строки, но нам нужно будет связать пакет с нашей локальной сессией, чтобы вызвать его из программы:

npm link express

Мы можем узнать больше о доступных нам параметрах с help из nvm, набрав:

nvm help

 

Апгрейд Node.js через удаление и переустановку новой версии

Для того, чтобы установить новую версии, можно воспользоваться одним из вышеизложенных способов, но, сначала необходимо удалить ткущую версию. Это актуально, если установка происходила первым и вторым способами, описанные в данной статье. Поэтому, для полного удаления выполняем следующий список операций:

sudo apt-get purge nodejs
sudo apt-get autoremove

Есть и более легкий способ, который заменяет эти команды:

sudo apt-get purge --auto-remove nodejs

 

Заключение

Как вы можете видеть, есть несколько способов начать работу с Node.js на вашем сервере Ubuntu 16.04. Ваши обстоятельства будут определять, какой из вышеуказанных методов является наилучшей идеей для ваших обстоятельств. Хотя упакованная версия в репозитории Ubuntu является самым простым методом, но метод nvm определенно намного более гибкий.