Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Отображено: по дате последнего изменения. Посмотреть по дате публикаций.

В годы когда ещё не существовали чат-боты или такие программы как: Siri, Microsoft Cortana, Google Now или Amazon Echo, поступило предложение поучаствовать в качестве архитектора при разработке подобного приложения. На первом этапе разработки - предполагалось, что приложение будет отвечать на вопросы пользователя (как чат-бот) и выполнять несложные действия используя API других программ (по концепции было очень похоже на Siri). На втором этапе разработки - программа должна была отвечать на вопросы по конкретному тексту новости или статьи. А на третьем этапе разработки - предоставлять сокращённый пересказ статьи на одном из нескольких заданных языках. В итоге должна была получиться поисковая система умеющая не просто искать документы на определённых сайтах, но и удалять из выдачи религиозно опасные тексты, давая краткий пересказ любого из оставшихся в поисковой выдаче документов на арабском, берберском, французском или русском языке.

Ratchet позволяет разрабатывать приложения на PHP используя протокол полнодуплексной связи поверх TCP-соединения (WebSocket), предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени (позволяет одновременно передавать и принимать данные).

Ratchet построен на основе ReactPHP - сокет сервера разработанного на PHP для постоянной обработки запросов в отличии от стандартного подхода с Apache и Nginx где процесс умирает по окончании обработки одного запроса.

ReactPHP это сокет сервер на PHP созданный для постоянной обработки запросов в отличии от стандартного подхода с Apache и Nginx где процесс умирает по окончании обработки одного запроса. Поскольку инициализация кода таким образом осуществляется только один раз то на отдельном запросе мы упускаем весь оверхед от загрузки классов, запуска фреймворка, считывания конфигурации и т.д.

  • Архивация файлов сайта: копирование папки сайта, её сжатие и удаление несжатых скопированных файлов.
  • Экспорт базы данных в файл: экспорт базы данных, сжатия файла экспорта, удаление несжатого файла экспорта.
  • Поиск строки в файлах папки.
  • Установка (упрощённый вариант) нескольких сайтов на Drupal из консоли.

 

При разработки нового сайта или поддержке имеющегося многие используют IDE PhpStorm. При этом на "рабочем" сервере ведётся только логирование работы сайта, а основная разработка производится на сервере "разработки" который может быть развёрнут в VirtualBox. При этом синхронизация серверов производится с помошью Git. Работу с Git пока пропустим, а вот настройку сервера "разработки" с "азов" до отладки первого проекта в PhpStorm - рассмотрим по пунктам.

Для удалённой отладки из PhpStorm в VirtualBox необходимо так же пробросить порт по которому работает IDE. Таким же образом можно произвести удалённый проброс порта из Ubuntu в Windows для работы с MySQL настроенной на локальную работу.

XDebug — это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP для упрощения отладки PHP-скриптов. Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и наблюдение за выражениями. Помимо этого, расширение также позволяет выполнять профилировку приложения и находить те части, которые замедляют его работу. Поддерживается также выполнение произвольного кода на точке останова, а также и ряд других полезных при отладке функций. В целом, расширение нужно, в первую очередь, для экономии времени программистов, так как позволяет быстро локализовать ошибку в коде.

На одном из серверов, где в качестве веб-сервера установлен: nginx, понадобилось запустить FastCGI. Можно было бы установить fcgiwrap или spawn-fcgi.

Установим nginx и Apache, набрав в консоли:

sudo apt-get install nginx apache2 

Для начала установим Java:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default