Публикация на тему

Отчет о прохождении производственной практики на кафедре ПИКС БГУИР


Отчет составлен системой ЭРУД, или Электронный Ресурс по Учебным Дисциплинам. Отчет опубликован в разделе публикации сайта erud.by



Автор

Михалькевич Александр Викторович


Публикация

Наименование Отчет о прохождении производственной практики на кафедре ПИКС БГУИР

Автор А.В.Михалькевич

Специальность Отчет составлен системой ЭРУД, или Электронный Ресурс по Учебным Дисциплинам. Отчет опубликован в разделе публикации сайта erud.by,

Анотация

Anotation in English

Ключевые слова

Количество символов 27528

Содержание

Введение

1 Исследования операционных сред разработки

За время прохождения производственной практики, мною был разработан сайт erud.by. А также собраны материалы, необходимые для написания диссертации. Ссылка на диссертацию и сопутсвующие материалы предоставлена: http://erud.by/programm/theses_web.

Сперва мною были исследованы операционные среды, для поиска наиболее оптимальной для разработки web-приложений. Стоит отметить, что все рассматриваемые системы базируются на ядре Unix, поэтому часто могут быть взаимозаменяеымыми.

Результаты исследования предоставлены в таблице.

Критерии сравнения

Linux

Windows

Mac

Стоимость

Бесплатно

Платное программное обеспечение. Microsoft продает лицензию для Windows 10 Pro более чем за 14 000 рублей, но сейчас ее временно можно приобрести более чем в 40 раз дешевле - всего за 300 рублей. Ноутбуки под управлением Windows 10 стоят дороже на 600 рублей ().

Платное железо

Слежка за пользователями

Нет

Да. Windows 10 делает все без согласия пользователя. Причем, некоторые возможности можно отключить при использовании стороннего ПО.

Да

Расширения

Любые

.exe

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

Наличие альтернативных сборок

Имеется огромное количество

Нет

Нет

Видимость папок других операционных систем

Видит все папки

Нет

Нет

Встроенный сервер

Есть

Нет

Нет

Возможность конфигурирования  системы

Есть

Нет

Нет

Предзагрузчик

Имеется предзагрузчик GRUB, который дает возможность пользователю выбирать операционную систему

Удаляет предзагрузчик GRUB, что не дает возможность поставить Windows поверх Linux. Linux же ставится поверх Windows.

-

Наличие вирусов и вредоносных программ

Нет

Да

Нет

Облако

Да

Нет

Нет

Говорить о функциональных возможностях операционной системы Windows 10 можно бесконечно долго, потому как они практически безграничны. Компания Microsoft не поскупилась и добавила в ОС сотни различных функций и возможностей, только вот работают многие из них без согласия пользователя, и еще многие нам, как пользователям, никогда не пригодятся. В данной ОС полно серьезных минусов, но главным, что делает эту операционную систему худшей среди других, является в политика обновления.

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

Другие версиии ubuntu (каждую из которых можно использовать в качестве ядра) доступны по адресу:

2 Ubuntu, как операционная среда разработки

В качестве основной операционной среды мною была выбрана Ubuntu 18.04, а точнее Xubuntu 18.04. Xubuntu — дистрибутив Linux, основанный на проекте Ubuntu, базирующийся в свою очередь на Debian. Использует так называемую «лёгкую» графическую среду Xfce и приложения на GTK+2, вместо тяжелых и неудобных рабочих сред имеющихся в Ubuntu по-умолчанию - GNOME и KDE.

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

3 Установка программ в Xubuntu

Установка программ

Установка программного обеспечения (как правило, ввиде пакетов) осуществляется через консоль.

sudo apt list - список всех программ
sudo apt list --installed список всех установленных программ
sudo apt-get --purge remove programm_name - удаление программы

Установка PHPStorm

PHPStorm - интегрированная среда разработки для web, стоимостью US $ 199. Но для учебных заведений, в том числе и для БГУИР распространяется бесплатно.

В сравнении с другими операционными системами, установка PHPStorm на Ubuntu наиболее удобна и проста. Для установки необходимо ввести консольную команду:

sudo snap install phpstorm --classic

Установка Apache

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

sudo apt-get update

sudo apt-get install apache2 (опционально), сервер apache2 установлен на Xubuntu, Ubuntu и других операционных системах по-умолчанию.

sudo service apache2 restart - перезапуск сервиса apache

Установка Webmin

Прежде чем приступить к установке Webmin при помощи apt-get, необходимо добавить репозиторий Webmin в файл sources.list.

Откроем файл sources.list на виртуальном сервере в текстовом редакторе (в данном руководстве это nano):

sudo nano /etc/apt/sources.list

Здесь необходимо указать свой пароль. Затем нажать Ctrl-W и Ctrl-V, чтобы перейти в конец файла, и внести следующие строки:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Завершив редактирование, сохранить файл, нажав Ctrl-X, а затем Y.

Затем добавить GPG-ключ Webmin в apt, чтобы система могла доверять добавленному репозиторию. Для этого используем:

wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -

Теперь нужно обновить список пакетов apt-get:

sudo apt-get update

Можно приступать к установке Webmin; для этого запустим команду:

sudo apt-get install webmin

Подтвердите запуск установки.

После завершения установки сервис Webmin будет запущен автоматически.

Вход в Webmin

При помощи веб-браузера откроем страницу авторизации Webmin; для этого укажите внешний IP и порт 10000. По умолчанию Webmin поддерживает SSL/TLS, потому для подключения нужно использовать HTTPS. Откроем в браузере ссылку:

https://IP_адрес_сервера:10000

На данном этапе появится предупреждение «Server’s SSL certificate is not trusted», которое говорит о том, что браузер не может доверять SSL-сертификату сервера. Дело в том, что во время установки Webmin автоматически генерирует и устанавливает сертификат SSL, но этот SSL-сертификат  не был подтвержден центром сертификации, которому сервер может доверять.

Скажем браузеру, что сертификату можно доверять. Например, в Chrome нужно выполнить следующие действия:

В Firefox нужно:

На данном этапе появится экран входа Webmin.

Введем те же учетные данные, которые были использованы для SSH-подключения в самом начале. Важно: этот пользователь должен иметь привилегии sudo или root.

Готово! Инструмент Webmin успешно установлен и готов к работе.

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

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

При первом запуске Webmin появится страница System Information, содержащая обзор ресурсов системы и другую полезную информацию. Также эта страница показывает все доступные обновления Webmin.

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

Установка PHP

Для установки PHP используем следующие консольные команды:

sudo apt-get update

sudo add-apt-repository ppa:ondrej/php

sudo apt-get remove php7.0 (опционально)

sudo apt-get install php7.2

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql - установка php и необходимых модулей

Обновление версии PHP

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get remove php7.0*
sudo apt-get install php7.1

Установка Composer

Для composer становить модули mbstring php-xml

Установка PHPMyAdmin

Для корректной работы многих веб-проектов нужны системы управления базами данных (СУБД), например, MySQL. Однако взаимодействовать с системой исключительно с помощью командной строки MySQL не всегда удобно.

Благодаря phpMyAdmin пользователи могут управлять системой MySQL через веб-интерфейс.

Пакеты phpMyAdmin доступны в стандартном репозитории Ubuntu.

Сперва обновим индекс пакетов и установим phpMyAdmin:

sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext

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

Установка Node

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

Установка стабильной версии Node.js

Ubuntu предоставляет версию Node.js в своём стандартном репозитории (на момент написания статьи это версия 8.10.0). Конечно, это не последний доступный релиз Node.js, однако эта версия стабильна (LTS) и её легко установить.

Чтобы установить эту версию Node.js, обновимы индекс пакетов и вводим команду:

sudo apt update
sudo apt install nodejs

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

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

nodejs -v

Если установленная версия оказалась слишком старой, можно установить более новую версию из PPA или с помощью менеджера версий.

Установка Git

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

sudo apt-get update

sudo apt install git

git config --global user.name "Your Name"

git config --global user.email "youremail@domain.com"

4 Разработка web-приложения с использованием Laravel

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

Laravel - фреймворк для построения веб-приложений с выразительным и элегантным синтаксисом, что делает процесс разработки продуктивнее. Laravel берет на себя аутентификацию, роутинг, работу с сессиями, кеширование, внедрение зависимостей и многое другое, что встречается в большинстве приложений, оставив разработчику только фокус на задаче. Работа с таким фреймворком приносит радость и удовольствие Счастливые разработчики пишут лучший код.

Официальный сайт laravel – http://laravel.com

У Laravel всего несколько требований к серверу:

PHP >= 7.2

OpenSSL PHP Extension

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

Mcrypt PHP Extension,

MbstringPHPExtension.

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

composer

Если с момента последнего запуска composer прошло более 30 дней, то необходимо обновить composer.

composer slef-update

После обновления composer можно запускать команду установки Laravel

Composer create-project laravel/laravel -–prefer-dist

Laravel установлен.

Права на запись

Папки внутри storage должны быть доступны веб-серверу для записи. Воспользуемся командой chmod

sudo chmod -R 777 storage

Изабвляеся от public в запросах

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

    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]

Теперь все запросы автоматически перенаправляются в папку public, а все остальные папки проекта стали закрытыми.

Маршрутизация проекта

Route::get('/', 'IndexController@getChapt'); //главная страница
Route::get('/theses', 'ThesesController@getIndex'); //перечень диссертаций
Route::get('/document/doc/{url}','DocsController@getDoc'); //формирование ЭРУД или диссертации в формате .doc
Route::get('/document/pdf/{url}','DocsController@getPdf'); //формирование ЭРУД или диссертации в формате .pdf
Route::get('/document/html/{url}','DocsController@getHtml'); //Просмотр ЭРУД или диссертаций в формате html
Route::get('/{chapter}', 'IndexController@getChapt'); //Раздел сайта
Route::get('/{chapter}/{cat}', 'IndexController@getCat'); //Раздел и категория сатйа
Route::get('/{chapter}/{cat}/{art}', 'IndexController@getArt'); //Раздел, категория и статья сайта

Подключение базы данных

Сперва создадим базу в PHPMyAdmin

http://127.0.0.1/phpmyadmin/

Создаем базу с именем web.

Поключение к базе осуществляется в файле .env в корне проекта. Для этого переопределим переменные окружающей среды

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=web
DB_USERNAME=root
DB_PASSWORD=2244

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

Artisan

Laravel поставляется совместно с встроенным программным обеспечением - Artisan

Artisan - название интерфейса командной строки, входящей в состав Laravel. Он предоставляет полезные команды для использования во время разработки вашего приложения. Работает на основе мощного компонента SymfonyConsole.

Чтобы вывести все доступные команды Artisan, воспользуемся командой list:

php artisan list

Рассмотрим некоторые команды подробнее:

make:command — создаёт новый класс команды

make:console — создаёт новую команду Artisan

make:controller — создаёт новый класс контроллера

make:event — создаёт новый класс события

make:middleware — создаёт новый класс промежуточного ПО

make:migration — создаёт новый файл миграции

migrate - выполнение существующих миграций

make:model — создаёт новый класс модели, опционально и миграцию

make:provider — создаёт новый класс поставщика услуг

make:request — создаёт новый класс запроса формы

event:generate — генерирует пропущенные события и обработчики

Каждая команда также включает и инструкцию, которая отображает и описывает доступные аргументы и опции для команды. Чтобы её вывести, необходимо добавить слово help перед командой:

php artisan help migrate

Для определения текущей версии Laravel, можно воспользоваться опцией--version

php artisan --version

Заключение

Список использованных источников

Приложения