Monday, August 20, 2012

Coding dojo. Установка сервера на PHP.

Ниже инструкции для установки локального сервера coding-dojo для Apache (рекомендуемая) и для расширения sockets.

Настройка локального сервера на Apache + php.

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

1. Скачиваем шаблон php скрипта отсюда и подкладываем его в любое место, доступное apache. В моем случае это Z:\home\calculator\www\solver.php 

2. Проверка локального сервера.
Теоретически все готово. Проверить можно, запустив скрипт с примером запроса. Например: http://www.calculator/solver.php?q=what+is+the+sum+of+8+and+27

Должны увидеть тело запроса в браузере. Примерно так:

Рядом с solver.php должен создасться файлик requests.txtс содержимым запроса:

Дальше регистрируем нового игрока. В качестве URL надо ввести адрес, по которому доджо сервер запустит скрипт solver.php. В моем случае это  http://www.calculator/solver.php.
Идем  сюда.

Установка локального сервера, работающего на расширении sockets 

1. Установка локального сервера.
Скачиваем архивчик отсюда. Это содержимое репозитория со старт-поинтами взятый отсюда
https://github.com/bodil/extreme_startup_servers.
Распаковываем (у меня в папку C:\workspace\projects\dojo-startup\extreme_startup_servers).

В папке php/sockets находится 2 файлика : server.php и solver.php

Важно!
Сервер требует расширения php_sockets. Для этого строка extension=php_sockets.dll в файле php.ini должна быть раскоментирована.

2. Запуск локального сервера.
Запускаем server.php из командной строки:
php server.php

Если при запуске не подключается расширение php_sockets, то см. ниже "что делать..."

3. Проверка локального сервера.
Наш локальный сервер запущен. Не мешает проверить как он работает. Для этого в браузере вводим такой линк http://localhost:9000/?q=what+is+the+sum+of+8+and+22.

По идее в консоли должно появится сообщение с запросом и ответом на него:

Если посмотреть содержимое файла solver.php, то понятно почему ответ такой же как и запрос :)

3.1. Немного модифицированный файл solver.php находится здесь. Он записывает все входящие запросы в файлик, что очень удобно во время соревнования.

Дальше  регистрируем наш сервер в системе. Описано здесь.

Регистрация нового пользователя на доджо сервере.

Теперь можем регистрировать наш сервер. Переходим на страничку хоста (http://localhost:3000 или в случае другого компа – IP адрес этой машины), нажимаем I want to play и вводим имя (латинскими буквами!) и URL вашего сервера. 



Если хост смог достучаться до сервера, то увидим примерно такую обнадеживающую надпись

Можем посмотреть результат работы нашей программы. Поскольку мы еще ничего не запрограммировали, то ожидаем примерно такую картинку:
В консоли локального сервера будет примерно такое (в случае с сервером на sockets extension)

В лог request.txt файле будет примерно такое:

В принципе можно уже начинать программировать solver.php так, чтобы он давал адекватные ответы :)

Что делать, если...

Что делать, если не запускается php_sockets?
Если при запуске server.php выдается подобная ошибка, то нужно скачать соовместимую версию библиотеки php_sockets.dll.

Эта ошибка у меня полечилась скачиванием и установкой расширений денвера (http://www.denwer.ru/packages/php5.html).
Второй вариант лечения - скачать zip с пакетом пхп отсюда и скопировать php_sockets.dll в папку расширений php.