Лабораторная работа № 2 Сервис PaaS для создания приложений Цель работы: Получение навыков создания Web приложений на языке PHP с использованием PaaS (платформа как сервис), облачного сервиса, предоставляемого на сайте www.heroku.com. Теоретический материал. Сервис PaaS (платформа как сервис) предназначен для размещения и запуска приложений в сети Internet. Под платформой понимается набор программ, которые необходимы для запуска приложения. Например, для запуска приложения, написанного на языке Java, на компьютере должна быть установлена Java-машина, которая является платформой для программ на языке Java. Для запуска интернет-приложений необходим следующая платформа, т.е. набор следующих программ – Web сервер (Apache, Nginx и др), интерпретатор или исполняемая среда для серверного языка (PHP, Java, C++ и др.), система управления базами данных (MySQL, Oracle и др.). В лабораторной предлагается использовать следующую платформу - Web сервер Apache, PHP-машина, СУБД MySQL, которая предоставляется на сайте www.heroku.com. PaaS на сайте www.heroku.com является открытой, стандартизованной средой для создания, эксплуатации и администрирования веб- и мобильных приложений в облаке. Сервис поддерживает многие популярные языки программирования для веб-приложений, в том числе: PHP, Java, С#, Ruby. На рисунке ниже показано взаимодействие Web приложения с сервисом PaaS на сайте www.heroku.com. Приложение создается на клиентском компьютере и загружается на сайт www.heroku.com с помощью загрузчика heroku.exe, предоставляемого этим сервисом, где производится окончательная отладка и запуск приложения. Для ускорения разработки приложения (загрузка его на сайт может занимать достаточно длительный промежуток времени), рекомендуется на клиентском компьютере создать аналогичную используемой в облаке платформу. Клиент Web приложение Web браузер PaaS Heroku.com Denwer (Apache, PHP, MySQL) Загрузчик (heroku.exe) FrameWork (Simfonia), CMS (Joomla) Web сервер (Apache) PHP - машина СУБД (MySQL) Операционная система (Linux) IaaS Один из вариантов создания платформы для лабораторной – это использования программы Denwer ( http://www.denwer.ru/ ), с помощью которой можно создать на локальном компьютере платформу для создания Web приложений (с другими программами для создания локального Web сервера можно ознакомиться на https://timeweb.com/ru/community/articles/luchshie-lokalnye-servery). сайте На установленном локальном сервере производится создание и основная отладка приложения перед его загрузкой в облако. После установки Denwer, проверить доступность PHP машины выполнением в командной строке Windows следующей команды php -v или php --version: c:\>php --version PHP 7.4.6 (cli) (built: May 12 2020 11:38:54) ( ZTS Visual C++ 2017 x64 ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies Перед этим, возможно, придется прописать в системной переменной path пути к файлу php.exe и к библиотеке дополнительных функций php, которая обычно находится в папке ext, это зависит от того, какой локальный сервер будет выбран. Эти пути примерно могут выглядеть следующим образом: C:\...\php; C:\...\php\ext. Доступ переменной производится через Панель управления, к системной далее Система и безопасность – Система – Дополнительные параметры системы – Переменные среды – Системные переменные (Windows 10). Методика выполнения лабораторной. Зарегистрироваться на сайте www.heroku.com . После входа на сайт под своим аккаунтом, используя меню в правом верхнем углу, выбрать пункт Documentation. В следующем окне выбрать язык программирования, в данном случае PHP. Далее рекомендуется пройти все этапы по работе с сервисом, используя демо-версию приложения. В следующем окне перейти по ссылке Get started with PHP. В следующем окне указано, что для дальнейшей работы необходимо установить PHP машину и систему управления зависимостями для языка PHP - Composer. PHP машина будет доступна, если установить Denwer. Composer можно скачать перейдя по ссылке https://getcomposer.org/ Setup.exe). После инсталляции можно проверить (Composer- работоспособность программы Composer, выполнением в командной строке Windows следующей команды: c:\>composer --version Composer version 2.0.11 2021-02-24 14:57:23 Далее выбрать I’m ready to start. На следующем окне приведены ссылки для загрузки программ git и загрузчика heroku. Программа git – это популярное средство для контроля над версиями, ее применение при использовании сервиса PaaS на heroku.com обязательно. Адрес для скачивания программы - https://git- scm.com/download/win . Программа устанавливается запуском файла Git-2.30.2-64-bit.exe. После инсталляции проверка выполняется командой git --version в командной строке Windows. c:\>git --version git version 2.30.2.windows.1 С программой git поставляется утилита git которой необходимо указать имя и config, с помощью действующий почтовый адрес пользователя: c:\>git config --global user.name "stvt" c:\>git config --global user.email stvt@mail.ru Текущие настройки программы можно посмотреть с помощью команды git config –list: c:\>git config --list core.symlinks=false core.autocrlf=true . . . user.name=stud user.email=stud@mail.ru color.ui=true Загрузчик heroku доступен по ссылке https://cli- assets.heroku.com/heroku-x64.exe . После инсталляции загрузчика в командной строке Windows выполнить команду: c:\>heroku -v heroku/7.41.1 win32-x64 node-v12.16.2 После инсталляции всех программ и проверки их функционирования вернуться на сайт heroku.com и нажать кнопку (I have installed Heroku CLI – интерпретатор командной строки heroku установлен). Следующий этап – загрузка (клонирование) демо-версии приложения. Сначала необходимо создать папку для приложений, например c:/heroku. В командной строке Windows перейти в новь созданную папку. c:\>cd c:/heroku Выполнить команду клонирования демо-версии приложения в созданную папку. c:\heroku>git clone https://github.com/heroku/phpgetting-started.git Cloning into 'php-getting-started'... remote: Enumerating objects: 198, done. . . . Receiving objects: 100% (198/198), 53.56 KiB | 86.00 KiB/s, done. Resolving deltas: 100% (87/87), done. После выполнения команды клонирования, в папке c:/heroku будет создана папка php-getting-started с демо-версией приложения. Следующий этап – развертывание (deploy) приложения в облаке Вначале на основе загруженного кода создается heroku приложение. Для этого перейти в папку приложения и выполнить команду heroku create. c:\heroku\cd php-getting-started c:\heroku\php-getting-started>heroku create Creating app... done, ⬢ thawing-lake-42726 https://thawing-lake-42726.herokuapp.com/ | https://git.heroku.com/thawing-lake-42726.git Далее созданное приложение загружается в облако: c:\heroku\php-getting-started>git push heroku main Counting objects: 184, done. Delta compression using up to 4 threads. . . . To https://git.heroku.com/evening-beyond-67969.git * [new branch] main -> main Масштабирование задаем равным единице, т.е. в облаке будет запускаться одна копия приложения. c:\heroku\php-getting-started>heroku ps:scale web=1 Scaling dynos... done, now running web at 1:Free Запускаем приложение: c:\heroku\php-getting-started>heroku open В браузере должна загрузиться главная страница демо-приложения: В адресной строке браузера будет адрес этого приложения в сети https://evening-beyond-67969.herokuapp.com/, автоматически присвоенный ему сервисом heroku. Произведем небольшие изменения в проекте. В папке приложения C:\heroku\php-getting-started\web\views найдем файл index.twig и загрузим его в текстовый редактор (в этом файле находится основное содержимое главной страницы). Заменим строку <h1>Getting Started with PHP on Heroku</h1> на строку <h1>Запускаем приложение PHP на Heroku</h1> С помощью системы контроля версий git фиксируем произведенные изменения: c:\heroku\php-getting-started>git commit -m ’eng-rus’ В команде фиксации изменений обязательно необходимо указывать комментарии к изменениям, в данном случае это ’eng-rus’. Заново загружаем приложение в облако: c:\heroku\php-getting-started>git push heroku main Перезагружаем приложение в браузере: Задание на лабораторную. 1. Создать аккаунт на сайте heroku.com. 2. Выполнить все действия по установке программного обеспечения и создания собственного приложения на основе демо-версии. 3. На главной странице приложения привести сведения о собственной бригаде. 4. В качестве отчета прислать ссылку на свое приложение на сайте heroku.com.