One place for hosting & domains

      запуск

      Запуск нескольких версий PHP на одном сервере с использованием Apache и PHP-FPM в Ubuntu 18.04


      Автор выбрал COVID-19 Relief Fund для получения пожертвования в рамках программы Write for DOnations.

      Введение

      Веб-сервер Apache использует виртуальные хосты для управления несколькими доменами в одной системе. PHP-FPM использует демона для управления несколькими версиями PHP в одной системе. Вы можете использовать Apache и PHP-FPM для одновременного хостинга на одном сервере нескольких веб-приложений PHP на основе разных версий PHP. Эта возможность полезна, поскольку разным приложениям могут требоваться разные версии PHP, но некоторые серверные комплексы, в том числе стек LAMP в стандартной конфигурации, могут работать только с одной версией. Сочетание Apache с PHP-FPM более экономично по сравнению с хостингом каждого приложения на отдельном экземпляре сервера.

      Также PHP-FPM предлагает разные варианты конфигурации для регистрации данных stderr и stdout, аварийной перезагрузки и адаптивного создания процессов, что полезно для сайтов с высокой нагрузкой. Использование Apache с PHP-FPM — один из лучших вариантов хостинга приложений PHP, особенно с точки зрения производительности.

      В этом обучающем руководстве мы настроим два сайта PHP для работы на одном экземпляре сервера. Каждый сайт будет использовать собственный домен, и на каждом домене будет использоваться собственная версия PHP. Первый сайт site1.your_domain развернет PHP 7.0. Второй сайт site2.your_domain развернет PHP 7.2.

      Предварительные требования

      • Один сервер Ubuntu 18.04 с не менее чем 1 ГБ оперативной памяти, настроенный согласно руководству Начальная настройка сервера Ubuntu 18.04, с пользователем non-root user с привилегиями sudo и брандмауэром.
      • Веб-сервер Apache, установленный и настроенный в соответствии с указаниями руководства Установка веб-сервера Apache в Ubuntu 18.04.
      • Доменное имя, настроенное так, чтобы указывать на ваш сервер Ubuntu 18.04. Информацию о том, как сделать так, чтобы домены указывали на дроплеты DigitalOcean, можно найти в руководстве Как создать указания на серверы имен DigitalOcean из общих реестров доменов. Для целей настоящего обучающего руководства мы используем два субдомена, каждый из которых указан с записью A в наших настройках DNS: site1.your_domain и site2.your_domain.

      Шаг 1 — Установка PHP версий 7.0 и 7.2 с помощью PHP-FPM

      Выполнив предварительные требования, вы можете установить PHP версий 7.0 и 7.2, а также PHP-FPM и некоторые дополнительные расширения. Для этого предварительно необходимо добавить в систему репозиторий Ondrej PHP.

      Запустите команду apt-get для установки software-properties-common:

      • sudo apt-get install software-properties-common -y

      Пакет software-properties-common предоставляет утилиту командной строки apt-add-repository, которую мы используем для добавления репозитория ondrej/php PPA (архив персональных пакетов).

      Добавьте в систему репозиторий ondrej/php. Репозиторий ondrej/php PPA содержит более актуальные версии PHP, чем официальные репозитории Ubuntu, а также позволяет устанавливать несколько версий PHP в одной системе:

      • sudo add-apt-repository ppa:ondrej/php

      Обновите репозиторий:

      Установите php7.0, php7.0-fpm, php7.0-mysql, libapache2-mod-php7.0 и libapache2-mod-fcgid с помощью следующих команд:

      • sudo apt-get install php7.0 php7.0-fpm php7.0-mysql libapache2-mod-php7.0 libapache2-mod-fcgid -y
      • php7.0 — это метапакет, используемый для запуска приложений PHP.
      • php7.0-fpm предоставляет интерпретатор Fast Process Manager, который работает как демон и принимает запросы Fast/CGI.
      • php7.0-mysql связывает PHP с базой данных MySQL.
      • libapahce2-mod-php7.0 предоставляет модуль PHP для веб-сервера Apache.
      • libapache2-mod-fcgid содержит mod_fcgid, запускающий несколько экземпляров программы CGI для обработки одновременных запросов.

      Повторите процедуру для PHP версии 7.2. Установите php7.2, php7.2-fpm, php7.2-mysql и libapache2-mod-php7.2:

      • sudo apt-get install php7.2 php7.2-fpm php7.2-mysql libapache2-mod-php7.2 -y

      После установки обеих версий PHP запустите службу php7.0-fpm:

      • sudo systemctl start php7.0-fpm

      Затем проверьте статус службы php7.0-fpm:

      • sudo systemctl status php7.0-fpm

      Вывод должен выглядеть так:

      Output

      ● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-03-29 12:53:23 UTC; 15s ago Docs: man:php-fpm7.0(8) Process: 20961 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/7.0/fpm/pool.d/www.conf 70 (code=exited, Process: 20979 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.0/fpm/pool.d/www.conf 70 (code=exite Main PID: 20963 (php-fpm7.0) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1150) CGroup: /system.slice/php7.0-fpm.service ├─20963 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─20977 php-fpm: pool www └─20978 php-fpm: pool www

      Повторите процедуру и запустите службу php7.2-fpm:

      • sudo systemctl start php7.2-fpm

      Проверьте статус службы php7.2-fpm:

      • sudo systemctl status php7.2-fpm

      Вывод должен выглядеть так:

      Output

      ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-03-29 12:53:22 UTC; 45s ago Docs: man:php-fpm7.2(8) Main PID: 20897 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 1150) CGroup: /system.slice/php7.2-fpm.service ├─20897 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─20909 php-fpm: pool www └─20910 php-fpm: pool www

      В заключение необходимо активировать несколько модулей, чтобы служба Apache2 могла работать с несколькими версиями PHP:

      • sudo a2enmod actions fcgid alias proxy_fcgi
      • actions используется для выполнения скриптов CGI на основе типа носителя или метода запроса.

      • fcgid — это высокопроизводительная альтернатива mod_cgi, запускающая достаточное количество экземпляров программы CGI для одновременной обработки запросов.

      • alias позволяет создавать схемы разных деталей файловой системы хоста в дереве документов и для целей переадресации URL.

      • proxy_fcgi позволяет Apache перенаправлять запросы PHP-FPM.

      Перезапустите службу Apache, чтобы применить изменения:

      • sudo systemctl restart apache2

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

      Шаг 2 — Создание структур директорий для обоих сайтов

      В этом разделе мы создадим корневую директорию документов и страницу индекса для каждого из двух сайтов.

      Вначале создайте корневые директории документов для site1.your_domain и site2.your_domain:

      • sudo mkdir /var/www/site1.your_domain
      • sudo mkdir /var/www/site2.your_domain

      По умолчанию веб-сервер Apache работает как пользователь www-data и группа www-data. Чтобы убедиться в правильности структуры владения и разрешений для корневых директорий вашего сайта, используйте следующие команды:

      • sudo chown -R www-data:www-data /var/www/site1.your_domain
      • sudo chown -R www-data:www-data /var/www/site2.your_domain
      • sudo chmod -R 755 /var/www/site1.your_domain
      • sudo chmod -R 755 /var/www/site2.your_domain

      Далее вы создадите файл info.php в корневой директории каждого сайта. В нем будет отображаться информация о версии PHP для каждого сайта. Начнем с site1:

      • sudo nano /var/www/site1.your_domain/info.php

      Добавьте следующую строку:

      /var/www/site1.your_domain/info.php

      <?php phpinfo(); ?>
      

      Сохраните и закройте файл. Скопируйте созданный файл info.php в site2:

      • sudo cp /var/www/site1.your_domain/info.php /var/www/site2.your_domain/info.php

      Теперь на вашем веб-сервере должны иметься корневые директории документов, которые требуются каждому сайту для предоставления данных посетителям. Далее мы настроим веб-сервер Apache для работы с двумя разными версиями PHP.

      Шаг 3 — Настройка Apache для обоих сайтов

      В этом разделе мы создадим два файла конфигурации виртуального хоста. Это позволит двум нашим сайтам одновременно работать с двумя разными версиями PHP.

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

      Вначале создайте новый файл конфигурации виртуального хоста для сайта site1.your_domain. Здесь вы предписываете Apache использовать для рендеринга содержимого php7.0:

      • sudo nano /etc/apache2/sites-available/site1.your_domain.conf

      Добавьте в файл следующее: Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют вашей системе:

      /etc/apache2/sites-available/site1.your_domain.conf

      
      <VirtualHost *:80>
           ServerAdmin admin@site1.your_domain
           ServerName site1.your_domain
           DocumentRoot /var/www/site1.your_domain
           DirectoryIndex info.php
      
           <Directory /var/www/site1.your_domain>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
           </Directory>
      
          <FilesMatch .php$>
            # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
            SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
          </FilesMatch>
      
           ErrorLog ${APACHE_LOG_DIR}/site1.your_domain_error.log
           CustomLog ${APACHE_LOG_DIR}/site1.your_domain_access.log combined
      </VirtualHost>
      

      В этом файле вы изменили директорию на DocumentRoot, а ServerAdmin на адрес электронной почты, доступный администратору сайта your_domain. Также вы изменили параметр ServerName, устанавливающий базовый домен для этой конфигурации виртуального хоста, и добавили директиву SetHandler для запуска PHP как сервера процессов fastCGI.

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

      Теперь создайте новый файл конфигурации виртуального хоста для сайта site2.your_domain. Для этого субдомена мы будем развертывать php7.2:

      • sudo nano /etc/apache2/sites-available/site2.your_domain.conf

      Добавьте в файл следующее: Убедитесь, что путь к директории сайта, имя сервера и версия PHP соответствуют уникальным параметрам вашей системы:

      /etc/apache2/sites-available/site2.your_domain.conf

      <VirtualHost *:80>
           ServerAdmin admin@site2.your_domain
           ServerName site2.your_domain
           DocumentRoot /var/www/site2.your_domain
           DirectoryIndex info.php  
      
           <Directory /var/www/site2.your_domain>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
           </Directory>
      
          <FilesMatch .php$>
            # For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
            SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
          </FilesMatch>
      
           ErrorLog ${APACHE_LOG_DIR}/site2.your_domain_error.log
           CustomLog ${APACHE_LOG_DIR}/site2.your_domain_access.log combined
      </VirtualHost>
      

      Сохраните файл и закройте его после завершения. Проверьте файл конфигурации Apache на наличие синтаксических ошибок:

      • sudo apachectl configtest

      Вывод должен выглядеть так:

      Output

      Syntax OK

      Активируйте оба файла конфигурации виртуального хоста:

      • sudo a2ensite site1.your_domain
      • sudo a2ensite site2.your_domain

      Отключите сайт по умолчанию, поскольку он не потребуется:

      • sudo a2dissite 000-default.conf

      Перезапустите службу Apache, чтобы применить изменения:

      • sudo systemctl restart apache2

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

      Шаг 4 — Тестирование сайтов

      Мы настроили два сайта для работы с двумя разными версиями PHP. Теперь проверим результаты.

      Откройте в браузере сайты http://site1.your_domain и http://site2.your_domain. Вы увидите две страницы, выглядящие следующим образом:

      Информационная страница PHP 7.0Информационная страница PHP 7.2

      Обратите внимание на заголовки. На первой странице указано, что на сайте site1.your_domain развернута версия PHP 7.0. На второй странице указано, что на сайте site2.your_domain развернута версия PHP 7.2.

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

      • sudo rm -rf /var/www/site1.your_domain/info.php
      • sudo rm -rf /var/www/site2.your_domain/info.php

      Теперь у вас имеется один сервер Ubuntu 18.04, обслуживающий два сайта с двумя разными версиями PHP. Однако PHP-FPM можно применять и для других целей.

      Заключение

      Мы объединили виртуальные хосты и PHP-FPM для обслуживания нескольких сайтов и нескольких версий PHP на одном сервере. Количество сайтов PHP и версий PHP, которые может обслуживать ваш сервер Apache, зависит исключительно от вычислительной мощности сервера.

      Теперь вы можете начать изучение более сложных функций PHP-FPM, таких как процесс адаптивного создания или функции регистрации sdtout и stderr. Также вы можете заняться защитой своих сайтов. Для этого используйте наше обучающее руководство по защите сайтов с помощью бесплатных сертификатов TLS/SSL от Let’s Encrypt.



      Source link

      Установка, запуск и подключение к Jupyter Notebook на удаленном сервере


      Автор выбрал Apache Software Foundation для получения пожертвования в размере $100 в рамках программы Write for DOnations.

      Введение

      Jupyter Notebook — интерактивное веб-приложение с открытым исходным кодом, позвоялющее писать и запускать программный код более чем на 40 языках программирования, включая Python, R, Julia и Scala. Jupyter Notebook — это продукт Project Jupyter, очень полезный для итеративного программирования, поскольку он позволяет написать небольшой фрагмент кода, запустить его и вывести результат.

      Jupyter Notebook позволяет создавать документы в форме блокнота, обычно называемые «блокнотами». Блокноты, создаваемые Jupyter Notebook, представляют собой доступные для публикации и воспроизведения исследовательские документы, содержащие элементы расширенного текста, уравнения, код и результаты исполнения (рисунки, таблицы, интерактивные графики). Блокноты можно экспортировать в файлы кода, документы HTML или PDF, а также использовать для создания интерактивных слайд-шоу или веб-страниц.

      Эта статья расскажет вам о том, как установить и настроить приложение Jupyter Notebook на веб-сервере Ubuntu 18.04 и подключиться к нему с локального компьютера. Также мы покажем, как использовать Jupyter Notebook для запуска примера кода на Python.

      Предварительные требования

      Для данного обучающего руководства вам потребуется следующее:

      Кроме того, если на вашем локальном компьютере используется Windows, вам нужно будет установить PuTTY для создания туннеля SSH для подключения к серверу. Для загрузки и установки PuTTY следуйте указаниям обучающего модуля Создание ключей SSH с помощью PuTTY в Windows.

      Шаг 1 — Установка Jupyter Notebook

      Поскольку блокноты используются для записи, запуска и просмотра результатов выполнения небольших фрагментов программного кода, предварительно нужно настроить поддержку языка программирования. Jupyter Notebook использует ядро с привязкой к языкам, компьютерную программу, которая запускает и проводит внутренний анализ кода. В Jupyter Notebook имеется много ядер для разных языков, по умолчанию используется IPython. В этом обучающем модуле вы научитесь настраивать Jupyter Notebook для запуска кода Python через ядро IPython.

      Если вы выполнили обучающие модули, указанные в разделе «Предварительные требования», у вас должны быть установлены Python 3, pip и виртуальная среда. Приведенные в этом руководстве примеры следуют указаниям по конвенции обучающего модуля Python 3, где виртуальной среде присваивается имя my_env, но вы можете использовать любое другое имя.

      Начнем с активации виртуальной среды:

      • source my_env/bin/activate

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

      Теперь вы находитесь в виртуальной среде и можете начать установку Jupyter Notebook:

      • python3 -m pip install jupyter

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

      Output

      . . . Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

      Установка Jupyter Notebook на ваш сервер завершена. Теперь мы перейдем к запуску приложения.

      Шаг 2 — Запуск Jupyter Notebook

      Jupyter Notebook необходимо запускать с VPS, чтобы вы могли подключаться к нему с локального компьютера, используя туннель SSH и свой любимый браузер.

      Чтобы запустить сервер Jupyter Notebook, введите следующую команду:

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

      Output

      [I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret [I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/environments [I 19:46:22.365 NotebookApp] 0 active kernels [I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at: [I 19:46:22.366 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser. [C 19:46:22.367 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675

      Возможно вы заметили в результатах предупреждение No web browser found. Это можно ожидать, поскольку приложение запущено на сервере, а вы вряд ли установили на него браузер. В следующем разделе этого обучающего модуля вы узнаете, как подключиться к Notebook на сервере, используя туннель SSH.

      Сейчас закройте Jupyter Notebook. Для этого нажмите CTRL+C, затем y, а затем ENTER для подтверждения:

      Output

      Shutdown this notebook server (y/[n])? y [C 20:05:47.654 NotebookApp] Shutdown confirmed [I 20:05:47.654 NotebookApp] Shutting down 0 kernels

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

      Вы только что запустили Jupyter Notebook на своем сервере. Чтобы получить доступ к приложению и начать работать с блокнотами, вам потребуется подключиться к приложению через туннель SSH и браузер на локальном компьютере.

      Шаг 3 — Подключение к приложению Jupyter Notebook через туннель SSH

      Туннель SSH — простой и быстрый способ подключиться к приложению Jupyter Notebook, запущенному на вашем сервере. Secure Shell (обычно SSH) — это сетевой протокол, позволяющий выполнить защищенное подключение к удаленному серверу по незащищенной сети.

      Протокол SSH включает механизм переадресации портов, позволяющий подключаться через туннель к определенным приложениям на определенном порту сервера с определенного порта на локальном компьютере. Мы научимся выполнять безопасную «переадресацию» приложения Jupyter Notebook на вашем сервере (по умолчанию использует порт 8888) на порт вашего локального компьютера.

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

      Примечание. Приложение Jupyter Notebook можно установить через веб-консоль DigitalOcean, однако подключение к приложению через туннель SSH следует выполнять с помощью терминала или PuTTY.

      Создание туннелей SSH в macOS или Linux

      Если на вашем локальном компьютере используется Linux или macOS, туннель SSH можно создать, запустив всего одну команду.

      ssh — стандартная команда для создания соединения SSH. Когда она используется с директивой -L, вы можете указать перенаправление определенного порта локального хоста (т.е. локального компьютера) на указанный хост и порт удаленного хоста (в данном случае, на ваш сервер). Это означает, что все запускаемое на заданном порту удаленного сервера (8888, порт Jupyter Notebook по умолчанию) будет появляться на заданном порту локального компьютера (8000 в данном примере команды).

      Чтобы создать собственный туннель SSH, запустите следующую команду. Вы можете изменить порт 8000 на любой предпочитаемый порт (например, если порт 8000 используется другим процессом). Рекомендуется использовать порт с номером не меньше 8000, поскольку такие номера портов вряд ли используются другими процессами. Обязательно укажите IP-адрес вашего собственного сервера и имя пользователя сервера без привилегий root:

      • ssh -L 8000:localhost:8888 sammy@your_server_ip

      Если эта команда не выдаст никаких ошибок, вы войдете на удаленный сервер. Там вы должны активировать виртуальную среду:

      • source ~/environments/my_env/bin/activate

      Затем запустите приложение Jupyter Notebook:

      Для подключения к Jupyter Notebook откройте в своем предпочитаемом браузере локальный порт на локальном хосте: http://localhost:8000. После подключения к Jupyter Notebook переходите к шагу 4, чтобы научиться его использовать.

      Создание туннелей SSH с использованием Windows и PuTTY

      PuTTY — клиент SSH с открытым исходным кодом для Windows, который можно использовать для подключения к вашему серверу. После загрузки и установки PuTTY на ваш компьютер Windows (как описано в обучающем модуле из предварительных требований) откройте программу и введите URL или IP-адрес вашего сервера, как показано здесь:

      Введите URL или IP-адрес сервера в Putty

      Затем нажмите + SSH внизу левой панели и нажмите Tunnels (Туннели). В этом окне введите порт, который хотите использовать для доступа к Jupyter на локальном компьютере (8000). Рекомендуется использовать порт с номером не меньше 8000, поскольку такие номера портов вряд ли используются другими процессами. Если порт 8000 используется другим процессом, выберите другой неиспользуемый номер порта. Установите адрес назначения localhost:8888, поскольку порт 8888 — это тот порт, на котором работает Jupyter Notebook. Затем нажмите кнопку Add (Добавить), после чего порты должны появиться в поле Forwarded ports (Перенаправляемые порты):

      Настройте туннель SSH в Putty

      Затем нажмите кнопку Open (Открыть). Ваш компьютер подключится к серверу через SSH и соединит желаемые порты туннелем. Если никаких ошибок не появится, вы можете активировать свою виртуальную среду:

      • source ~/environments/my_env/bin/activate

      Затем запустите Jupyter Notebook:

      Затем откройте в предпочитаемом браузере локальный порт, например http://localhost:8000 (или любой выбранный номер порта), чтобы подключиться к экземпляру Jupyter Notebook, запущенному на сервере. После подключения к Jupyter Notebook переходите к шагу 4, чтобы научиться его использовать.

      Шаг 4 — Использование Jupyter Notebook

      При доступе через браузер Jupyter Notebook предоставляет информационную панель Notebook, которая выступает как обозреватель файлов и дает интерфейс для создания, редактирования и просмотра блокнотов. Эти блокноты следует рассматривать как документы (сохраненные с расширением файла .ipynb), в которых вы заполняете любое количество отдельных ячеек. Каждая ячейка содержит интерактивный текстовый редактор, который можно использовать для запуска кода или записи сгенерированного текста. Кроме того, блокноты позволяют записывать и запускать уравнения, использовать графические элементы (такие как изображения или интерактивные графики), а также их можно экспортировать и публиковать в различных форматах (.ipyb, .pdf, .py). Чтобы проиллюстрировать некоторые из этих функций, мы создадим файл ноутбука из информационной панели Notebook, напишем простую текстовую панель с уравнением и запустим простой код Python 3.

      К этому моменту вы должны были подключиться к серверу через туннель SSH и запустить на сервере приложение Jupyter Notebook. После перехода на адрес http://localhost:8000 вы увидите страницу входа в систему:

      Экран входа в систему Jupyter Notebook

      В поле Password (Пароль) или поле токена сверху введите токен, показываемый в результатах после запуска jupyter notebook на сервере:

      Output

      [I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret [I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy [I 20:35:17.314 NotebookApp] 0 active kernels [I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at: [I 20:35:17.315 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675 [I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser. [C 20:35:17.316 NotebookApp] . . .

      Также вы можете скопировать URL с экрана терминала и вставить его в адресную строку браузера.

      Jupyter Notebook автоматически покажет все файлы и папки, хранящиеся в каталоге, откуда выполняется запуск. Создайте новый файл блокнота, нажав New (Создать) и выбрав Python 3 в правом верхнем углу информационной панели Notebook:

      Создайте новый блокнот Python3

      В новом блокноте измените первую ячейку так, чтобы она принимала синтаксис разметки. Для этого нажмите Cell > Cell Type > Markdown (Ячейка > Тип ячейки > Разметка) на панели навигации сверху. Помимо разметки этот тип ячейки также позволяет записывать уравнения в LaTeX. Например, введите в ячейку следующее после ее переключения на разметку:

      # Simple Equation
      
      Let us now implement the following equation in Python:
      $$ y = x^2$$
      
      where $x = 2$
      

      Чтобы преобразовать разметку в расширенный текстовый формат, нажмите CTRL + ENTER, и получите следующий результат:

      Превратите образец уравнения в расширенный текст

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

      Теперь выполним простое уравнение и распечатаем результат. Нажмите Insert > Insert Cell Below (Вставка > Вставить ячейку снизу), чтобы вставить ячейку. Введите в новую ячейку следующий код:

      x = 2
      y = x*x
      print(y)
      

      Для запуска кода нажмите CTRL + ENTER и получите следующий результат:

      Решение примера уравнения

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

      Заключение

      Теперь вы можете писать воспроизводимый код Python и текст, используя приложение Jupyter Notebook на удаленном сервере. Чтобы пройти быстрый обзор Jupyter Notebook, нажмите Help (Справка) в верхней панели навигации и выберите пункт User Interface Tour (Обзор пользовательского интерфейса), как показано здесь:

      Поиск обзора Jupyter Notebook

      Если вы заинтересовались, вы можете узнать больше о Jupyter Notebook из документации Project Jupyter. Также вы можете использовать полученные в этом обучающем модуле знания, чтобы научиться программировать на Python 3.



      Source link