One place for hosting & domains

      установить

      Как установить Node.js в Ubuntu 18.04


      Введение

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

      В этом руководстве мы покажем вам, как начать использовать Node.js на сервере с Ubuntu 18.04.

      Перед установкой

      Инструкции в этом руководстве предполагают, что вы используете Ubuntu 18.04. Перед началом убедитесь, что у вас есть не-рутовый пользователь с привилегиями sudo. Настроить такого пользователя вы можете с помощью инструкций в статье Начальная настройка сервера на Ubuntu 18.04.

      Установка стабильной версии дистрибутива из стандартных репозиториев

      В стандартных репозиториях Ubuntu 18.04 есть версия Node.js, которую удобно использовать для обеспечения однородной среды выполнения сетевых приложений сразу на нескольких серверах. На момент написания этой статьи текущая версия в репозиториях – 8.10.0. Это не самая последняя версия, но она довольно стабильна и её будет достаточно для экспериментов с языком.

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

      Теперь установим Node.js из репозиториев:

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

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

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

      Для проверки того, какую именно версию Node.js вы установили в процессе, описанном выше, выполните команду:

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

      Установка при помощи PPA

      Альтернативный способ, при помощи которого можно установить более свежую версию Node.js, - это использование PPA (персональный архив пакетов), который поддерживается компанией NodeSource. В архиве содержатся более новые версии Node.js, чем в официальных репозиториях Ubuntu. Используя архив вы также сможете выбирать между Node.js v6.x (поддерживается до апреля 2019), Node.js v8.x (текущая версия с долгосрочной поддержкой до декабря 2019) и Node.js v10.x (последняя версия, поддерживается до апреля 2021).

      Прежде всего, вам необходимо установить сам PPA для получения доступа к его содержимому. Убедитесь, что вы находитесь в своей домашней директории, а затем используйте curl для получения установочного скрипта для необходимой вам версии, заменив 8.x на необходимую вам версию:

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

      Вы можете просмотреть содержимое скрипта с помощью nano (или любого другого текстового редактора):

      Запустите скрипт с правами sudo:

      • sudo bash nodesource_setup.sh

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

      Для проверки того, какую именно версию Node.js вы установили в процессе, описанном выше, выполните команду:

      Вывод

      v8.11.1

      Пакет nodejs содержит и nodejs и npm, поэтому нет никакой необходимости в дополнительной установке npm.

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

      Вывод

      5.6.0

      Для работы некоторых пакетов из npm (например таких, которые требуют компиляцию из исходников), вам потребуется установить пакет build-essentials:

      • sudo apt install build-essential

      Теперь у вас есть все необходимые инструменты для работы с пакетами npm, которые требуют компиляции из исходников.

      Установка при помощи NVM

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

      Контроль вашей среды разработки посредством nvm позволяет вам получить доступ к последним версиям Node.js, сохраняя при этом предыдущие версии. Эта утилита, тем не менее, отличается от apt, и версии Node.js, которыми вы управляете с её помощью, отличаются от стабильных версий из стандартных репозиториев Ubuntu.

      Для загрузки установочного скрипта nvm со страницы проекта на GitHub можно использовать curl. Обратите внимание на то, что номер версии может отличаться от указанного в этом примере:

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

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

      Запустите скрипт в bash:

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

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

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

      Вывод

      ... v8.11.1 (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0 v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0 v9.11.1 v10.0.0

      Как вы можете видеть, новейшей версией на момент написания руководства является v8.11.1. Установить ее можно при помощи следующей команды:

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

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

      Вывод

      v8.11.1

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

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

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

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

      npm может устанавливать пакеты в директорию ./node_modules проектов Node.js. Например, для модуля express это можно сделать вот так:

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

      Эта команда установит пакет в директорию:

      • ~/.nvm/versions/node/node_version/lib/node_modules/express

      Глобальная установка позволит вам запускать команды из командной строки, но при этом вам придется использовать ссылку на пакет внутри вашего проекта следующим образом:

      Узнать больше о доступных опциях можно при помощи следующей команды:

      Удаление Node.js

      Вы можете удалить Node.js используя apt или nvm в зависимости от того, что вы использовали для установки. Для удаление стабильной версии дистрибутива из репозиториев Ubuntu используйте apt:

      Эта команда удалит пакет, но оставит конфигурационные файлы. Это может быть удобно, если вы захотите установить пакет ещё раз позднее. Если вы не хотите сохранять конфигурационные файлы для последующего использования, выполните команду:

      Эта команда удалит пакет и конфигурационные файлы, связанные с ним.

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

      Для удаления версии Node.js, установленной с помощью nvm, сперва определите, является ли эта версия текущей активной версией:

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

      • nvm uninstall node_version

      Эта команда удалит выбранную версию Node.js.

      Если удаляемая версия является текущей активной версией, вам необходимо сначала деактивировать nvm для применения ваших изменений:

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

      Заключение

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



      Source link

      Как установить веб-сервер Apache в Ubuntu 18.04


      Введение

      HTTP сервер Apache является самым широко используемым веб-сервером в мире. Он предоставляет множество удобных функций включая динамически загружаемые модули, широкую поддержку мультимедиа, и интеграцию с другим популярным программным обеспечением.

      В этом руководстве мы расскажем, как установить веб-сервер Apache на ваш сервер с Ubuntu 18.04.

      Необходимые условия

      Перед тем, как начать следовать шагам, описанным в этом руководстве, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере с Ubuntu 18.04. Кроме того, вам потребуется настроить базовый файрвол для блокирования всех портов, кроме необходимых для работы Apache. Вы можете ознакомиться с процессом настройки аккаунта пользователя и настройкой файрвола на вашем сервере следуя шагам нашего руководства по первичной настройке сервера на Ubuntu 18.04.

      После завершения создания аккаунта войдите на ваш сервер с помощью вновь созданного пользователя.

      Шаг 1 – Установка Apache

      Apache доступен из дефолтных репозиториев Ubuntu, что позволяет устанавливать его с помощью средств управления пакетами.

      Давайте начнём с обновления локального индекса пакетов:

      Далее установим пакет apache2:

      После подтверждения установки apt установит Apache и все необходимые зависимости.

      Шаг 2 - Настройка файрвола

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

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

      Выведем профили приложений ufw следующей командой:

      Вы увидите список приложений пользователей:

      Вывод

      Available applications: Apache Apache Full Apache Secure OpenSSH

      Как видно из этого вывода, для Apache доступно три профиля:

      • Apache: этот профиль открывает порт 80 (обычный, не шифрованный веб-трафик).
      • Apache Full: этот профиль открывает порты 80 (обычный, не шифрованный веб-трафик) и 443 (трафик шифруется с помощью TLS/SSL).
      • Apache Secure: этот профиль открывает только порт 443 (трафик шифруется с помощью TLS/SSL).

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

      Вы можете проверить внесённые изменения командой:

      В выводе вы должны видеть, что HTTP трафик разрешён:

      Вывод

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Как видно из этого вывода профиль был включен для разрешения доступа к веб-серверу.

      Шаг 3 - Проверка вашего веб-сервера

      После завершения процесса установки Ubuntu 18.04 запустит Apache. Веб-сервер уже должен быть запущен.

      Проверим в системе инициализации systemd, что сервис работает, следующей командой:

      • sudo systemctl status apache2

      Вывод

      ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2018-04-24 20:14:39 UTC; 9min ago Main PID: 2583 (apache2) Tasks: 55 (limit: 1153) CGroup: /system.slice/apache2.service ├─2583 /usr/sbin/apache2 -k start ├─2585 /usr/sbin/apache2 -k start └─2586 /usr/sbin/apache2 -k start

      Как видно из представленного вывода, сервис выглядит работающим корректно. Тем не менее, самый надёжный способ проверить работу Apache - это запросить веб-страницу.

      Вы можете запросить дефолтную веб-страницу Apache с помощью IP адреса вашего сервера. Если вы не знаете IP адрес вашего сервера, вы можете найти его несколькими способами с помощью командной строки.

      Введите следующую команду:

      Она вернёт несколько адресов, разделённых пробелами. Вы можете попробовать каждый из них в вашем веб-браузере.

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

      После того, как вы найдёте IP адрес вашего сервера, введите его в свой веб-браузер:

      • http://IP_адрес_вашего_сервера

      Вы должны увидеть дефолтную страницу Apache для Ubuntu 18.04:

      Дефолтная страница Apache

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

      Шаг 4 - Управление процессом Apache

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

      Для остановки себ-сервера наберите:

      • sudo systemctl stop apache2

      Для запуска остановленного сервера наберите:

      • sudo systemctl start apache2

      Для перезапуска сервиса наберите:

      • sudo systemctl restart apache2

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

      • sudo systemctl reload apache2

      По умолчанию Apache сконфигурирован на запуск при загрузке сервера. Вы можете отключить такое поведение следующей командой:

      • sudo systemctl disable apache2

      Для повторного включения сервиса при загрузке сервера наберите:

      • sudo systemctl enable apache2

      Теперь Apache должен опять запускаться автоматически при загрузке сервера.

      Шаг 5 - Настройка виртуальных хостов (рекомендуется)

      При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналог серверных блоков в Nginx) для хранения конфигурационных настроек разных сайтов. Это позволяет иметь более одного сайта на одном сервере. В этом руководстве мы будем для примера использовать доменное имя example.com, но вам следует заменить его вашим собственным доменным именем. Для того, чтобы узнать больше о настройке доменных имён в DigitalOcean, рекомендуем ознакомиться с нашим Введением в DNS DigitalOcean.

      Apache для Ubuntu 18.04 уже имеет один виртуальный хост, включенный по умолчанию, который настроен на отдачу документов из директории /var/www/html. Хотя это и удобно для обслуживания одного сайта, это становится неудобным, когда сайтов несколько. Вместо того, чтобы изменять /var/www/html, давайте создадим новую структуру директорий внутри /var/www для нашего сайта example.com, оставив /var/www/html для показа дефолтной страницы пользователям в случаях, когда клиентский запрос не совпадает ни с одним из настроенных доменных имён.

      Создайте директорию для example.com используя флаг -p для создания необходимых родительских директорий:

      • sudo mkdir -p /var/www/example.com/html

      Далее настройте владельца директории с помощью переменной окружения $USER:

      • sudo chown -R $USER:$USER /var/www/example.com/html

      Теперь права должны для корневой директории быть настроены правильным образом при условии, что вы не меняли своё значение umask. На всякий случай мы можем удостовериться в этом командой:

      • sudo chmod -R 755 /var/www/example.com

      Далее создадим страницу index.html в nano или любом другом текстовом редакторе:

      • nano /var/www/example.com/html/index.html

      Добавим в файл следующий HTML:

      /var/www/example.com/html/index.html

      <html>
          <head>
              <title>Welcome to Example.com!</title>
          </head>
          <body>
              <h1>Success!  The example.com server block is working!</h1>
          </body>
      </html>
      

      Сохраните и закройте файл.

      Для того, чтобы Apache мог отдавать этот контент, нам необходимо настроить виртуальный хост с корректными настройками. Вместо того, чтобы редактировать существующий файл виртуального хоста /etc/apache2/sites-available/000-default.conf, создадим новый файл для нашего сайта - /etc/apache2/sites-available/example.com.conf:

      • sudo nano /etc/apache2/sites-available/example.com.conf

      Скопируйте следующий текст настроек виртуального хоста в созданный файл:

      /etc/apache2/sites-available/example.com.conf

      <VirtualHost *:80>
          ServerAdmin [email protected]
          ServerName example.com
          ServerAlias www.example.com
          DocumentRoot /var/www/example.com/html
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      

      Обратите внимание, что мы обновили DocumentRoot на адрес нашей новой директории, и ServerAdmin на адрес электронной почты, доступный для администратора example.com. Мы также добавили две директивы: ServerName, которая устанавливает базовое доменное имя, которое должно использоваться для хоста, а также ServerAlias, которая определяет другие имена, которые должны использоваться для отображения хоста так же, как и базовое доменное имя.

      Сохраните и закройте файл после внесения изменений.

      Теперь активируем профиль сайта с помощью утилиты a2ensite:

      • sudo a2ensite example.com.conf

      Деактивируем дефолтный сайт, определённый в 000-default.conf:

      • sudo a2dissite 000-default.conf

      Далее проверим наши настройки на наличие ошибок:

      • sudo apache2ctl configtest

      Вы должны увидеть следующий вывод:

      Вывод

      Syntax OK

      Перезапустите Apache для применения внесённых изменений:

      • sudo systemctl restart apache2

      Теперь Apache должен работать с вашим доменным именем. Вы можете проверить это введя http://example.com в вашем браузере, где в результате вы должны увидеть что-то в этом роде:

      Успешная работа Apache

      Шаг 6 - Важные файлы и директории Apache

      Теперь, когда вы знаете, как управлять сервисом Apache, вам стоит ознакомиться с важными файлами и директориями Apache.

      Контент

      • /var/www/html: фактический веб-контент, который по умолчанию состоит только из дефолтной страницы Apache, которую мы видели ранее, хранится в директории /var/www/html. Это может быть изменено в конфигурационных файлах Apache.

      Конфигурация сервера

      • /etc/apache2: это конфигурационная директория Apache. Все файлы конфигурации Apache находятся здесь.
      • /etc/apache2/apache2.conf: главный конфигурационный файл Apache. Изменения в этом файле влияют на глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов из конфигурационной директории.
      • /etc/apache2/ports.conf: этот файл определяет порты, которые Apache будет слушать. По умолчанию Apache слушает порт 80, а также порт 443 при условии, что модуль для работы с SSL включен.
      • /etc/apache2/sites-available/: в этой директории хранятся файлы виртуальных хостов. Apache не использует файлы из этой директории, если ссылки на них нет в директории sites-enabled. Обычно настройка всех файлов виртуальных хостов осуществляется в этой директории, а активация хоста происходит путём создания ссылки в другой директории командой a2ensite.
      • /etc/apache2/sites-enabled/: директория, в которой хранятся активированные виртуальные хосты. Обычно это делается путём создания ссылки на файл конфигурации хоста из директории sites-available с помощью команды a2ensite. Apache читает конфигурационный файлы и ссылки из этой директории при запуске или перезапуске.
      • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: эти директории связаны друг с другом так же, как и sites-available и sites-enabled связаны друг с другом, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальным хостам. Файлы в директории conf-available могут быть включены командой a2enconf и выключены командой a2disconf.
      • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти директории содержат, соответственно, доступные и активные модули. Файлы, оканчивающиеся на .load, содержат фрагменты для загрузки конкретных модулей, а файлы, оканчивающиеся на .conf, содержат настройки этих модулей. Модули можно активировать командой a2enmod и деактивировать командой a2dismod.

      Серверные логи

      • /var/log/apache2/access.log: по умолчанию каждый запрос к вашему веб-серверу записывается в этом файле, если только Apache не настроен на другое поведение.
      • /var/log/apache2/error.log: по умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache определяет, насколько детальными должны быть записи об ошибках.

      Заключение

      Теперь, когда ваш веб-сервер установлен, у вас есть множество вариантов того, что делать дальше. Если вы хотите построить более полный стек приложений, вы можете ознакомиться с нашим руководством по установке и настройке стека LAMP на Ubuntu 18.04.



      Source link