Forums / National / Russian / Тех. поддержка / Настройка среды разработки под Cotonti (под Windows)

12>>>

на примере OpenServer + NetBeans

Macik
#1 2013-11-11 21:26

[ Не нашел оптимального раздела в документации куда это разместить. Тем более на русском. Поэтому прошу модераторов скопировать и разместить в подходящем разделе.]

Настройка среды разработки под Cotonti

В данной инструкции кратко расскажу о настройке программного окружения для простой и удобной разработки под CMF Cotonti (для ОС Windows).

Конкретно этот материал будет на примере программ NetBeans + OpenServer (WAMP).

Основной упор сделан на краткость и начинающий уровень пользователя. Задача настроить сервер, установить сайт, и отлаживать его в IDE с помощью удобного отладчика.

Установка сервера AMP (apache/mysql/php)

Общая настройка OpenServer

Идем на http://open-server.ru/download.html, качаем свежую версию Open Server Mini (110 Мб). Можно поставить и полную версию (~390 Мб), в нее включен дополнительный софт, который может быть полезен для вебмастера. Но я люблю сам подбирать дополнительные программы, поэтому ставлю сборку Mini. Программу так же можно найти на торрент трекере. Возможно это будет удобнее, т.к. с официального сайта скорость загрузки очень низкая. Устанавливаем в удобный для вас каталог. (Я опять же установлю его в каталог C:\porta\, где у меня лежит софт для разработки ).

Запускаем файл Open Server.exe. При первом запуске программа спросит на каком языке отображать интерфейс (далее приведены инструкции и комментарии для русского интерфейса). Далее видим в трее (панель задач) красный флаг, который обозначает, что сервер на данный момент не запущен. Жмем на нем правую кнопку мыши (далее сокращенно ПКМ и ЛКМ) и выбираем запустить. С настройками по умолчанию он должен без проблем запуститься (зеленый флаг на панели задач). Если что-то пошло не так и сервер не запустился - см. файл справки OpenServer, раздел «Вопросы и ответы». Теперь проверим, что сервер действительно работает. открываем любимый браузер и вводим в адресную строку адрес localhost (привыкайте это основной адрес вашего локального сервера). Если все нормально наблюдаем такую страничку:

20131111-u2c-26kb.jpg

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

В комплекте программ OpenServer поставляется программа Xdebug — отладчик для скриптов для PHP 5.3. OpenServer для удобства разработчиков поставляется с несколькими версиями PHP/Apache/MySQL. Чтобы заработал отладчик надо выбрать в настройках версию PHP 5.3.. Для этого ПКМ → Настройки → закладка «Модули» → PHP, и выбираем версию 5.3 (по умолчанию стоит 5.2). Можно так же выбрать версию БД как MySQL 5.5. как более стабильную. [Имейте в виду, что при переключении версии сервера БД вы потеряете доступ к ранее созданным базам. Т.е. выбирать версию стоит на начальном этапе настройки сервера и потом не менять настройки версии БД.]

20131111-l32-19kb.jpg

Еще один момент. Отладчик по умолчанию выключен, т.к. потребляет дополнительные ресурсы при работе сервера. Включим его — как обычно ПКМ на иконке сервера → Дополнительно → Конфигурация → PHP 5.3.*. Будет открыт текстовый файл настроек PHP. Пролистаем его до конца, и видим следующие строки настройки:

;xdebug.remote_enable = 0

Меняем «0» на «1», тем самым включая отладчик, и убираем знак комментария ; в начале строки:

xdebug.remote_enable = 1

Еще один момент - отладчик часто конфликтует с расширением IonCube (для запуска шифрованных скриптов). Для разработки Cotonti это расширение не требуется, поэтому отключим его, поставив знак комментария (точка с запятой — ;) в начале строки загрузки модуля (см. секцию [Ioncube Loader] тоже в конце файла):

;zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_ioncube.dll"

20131111-tv4-24kb.jpg

20131111-19r-29kb.jpg

Сохраняем файл, закрываем и производим перезапуск сервера (меню сервера, пункт «перезапустить»). Проверяем работает ли отладчик. Для этого выбираем в меню пункт «Дополнительно → Информация PHP» (или вводим руками в браузере адрес http://localhost/openserver/phpinfo.php). И видим информацию о сервере PHP. Нас интересует первый раздел. В конце информация о подключенных модулях. Там должна быть запись о Xdebug:

20131111-52o-25kb.jpg

С сервером на этом все.

Настройка домена для разработки

Настраиваем папку для будущего тестового сайта. Для этого переходим в одну из подпапок OpenServer'а — openserver\domains\localhost\. (Это корневая папка нашего сервера для разработки). И создаем здесь подкаталог (для примера cotonti_test) - в нем будут лежать файлы CMF Cotonti. Далее заходим в настройки OpenServer на вкладку Домены. Выбираем Ручной режим, и ниже в список добавляем запись о новом локальном домене — имя домена my-cot, папка домена \localhost\cotonti_test, не забываем нажать добавить. Если попросит перезапустить сервер - соглашайтесь.

20131111-97r-37kb.jpg

[На самом деле шаг создания дополнительного локального домена можно было пропустить, но нам в последующем будет гораздо удобнее вводить в браузере http://my-cot, чем длинную строку http://localhost/cotonti_test.]

Проверяем - вводим адрес http://my-cot в браузере. [Рекомендую вводить целиком с префиксом http://, т.к. в противном случае «умные» браузеры думают, что это ввод поисковой строки, и отправят вас вместо адреса сервера на сайт какой-либо поисковой системы]. Видим содержимое папки cotonti_test (пока там пусто):

20131111-i7d-12kb.jpg

Установка CMF Cotonti

Скачиваем актуальную версию с http://www.cotonti.com/download/. Сейчас это версия 0.9.14. Распаковываем содержимое архива в предварительно созданную папку cotonti_test (см. предыдущий пункт). Теперь снова в браузер и обновляем страницу с локальным адресом http://my-cot. Теперь вы должны увидеть стандартную страницу установки Cotonti:

20131111-us4-12kb.jpg

Выбираем язык (для примера русский), жмем далее, там проверка на минимальные требования (все должно быть ОК), далее вводим имя пользователя и пароль для доступа к БД (по умолчанию это mysql / mysql ). [Продвинутым пользователям для безопасности рекомендую заранее сменить стандартные пароли через настройки сервера, и создать дополнительного пользователя для разработки. Как это сделать можно прочитать в справке OpenServer.]

20131111-y9o-38kb.jpg

Жмем далее, система создаст БД. Теперь вводим данные будущего администратора. (Для примера admin / admin, вам рекомендую вводить, что-то свое). В поле адреса вводим емейл (можно свой реальный, можно выдуманный, т.к. все письма все равно останутся на вашем тестовом сервере и в реальную сеть не попадут).

20131111-96o-36kb.jpg

Далее, по вкусу выбираем плагины для установки. Далее установить. После установки вы должны увидеть главную страницу сайта. Можно войти под записью админа, чьи данные (admin / admin) мы только что вводили. Посмотреть и настроить админку при необходимости — подробнее см. на сайте Cotonti..

Установка IDE NetBeans

Идем на https://netbeans.org/downloads/ качаем сборку HTML5 & PHP (60 Мб) — дли примера использовался NetBeans версии 7.4. Устанавливаем. Можно в папку по умолчанию (Program Files). Я лично привык программы для разработки держать в отдельной папке, поэтому ставлю в C:\porta\ (но это не принципиально).

Запускаем NetBeans через ярлык в меню «Пуск» (или иным удобным для вас способом).

Настройка проекта для разработки

Тут вынесена за скобки информация по созданию собственного плагина (см. оф. сайте Cotonti.com, в том числе раздел «Разработка плагина»). Сосредоточимся на запуске отладчика скриптов, пошаговый прогон выполнения кода CMF, просмотр определенных переменных. В последующем вы можете все эти же навыки использовать и для работы над кодом собственного плагина.

Первое, что надо сделать в IDE, это создать новый проект, который будет отражать код и содержимое нашего тестового сайта (http://my-cot). Выбираем меню File → New Project, выбираем категорию PHP, тип проекта PHP application with existing source (т.е. приложение с уже готовым кодом), жмем Next. В качестве исаходного каталога (Sources folder) выбираем каталог нашего сайта — openserver\domains\localhost\cotonti_test. Имя проекта оставляем cotonti_test (версия PHP 5.3, кодировка UTF8). Переходим на следующий этап (жмем Next) и задаем имя нашего локального сервера:

20131111-1t6-35kb.jpg

Finish, и наш проект создан. И можем его запустить (нажатием F6 или кнопкой на панели):

20131111-nbo-68kb.jpg

Настройка параметров отладчика

Теперь самое главное — попробуем запустить сайт в режиме отладки. Что это нам даст? Мы сможем отслеживать выполнение любой строчки кода последовательно с начала и до конца, или интересующий нас фрагмент, установив точку остановки.

Для начала проверим настройки для отладки в самой IDE NetBeans — меню Tools → пункт Options.

Закладка General: тут проверяем, чтобы был указан корректный путь к исполняемому файлу PHP (из установки OpenServer). Смотрим иллюстрацию и по аналогии настраиваем для своего каталога установки:

20131111-1uv-45kb.jpg

Закладка Debugging — проверьте согласно иллюстрации.

Отладка скриптов сайта при разработке

Начнем отладку. В Cotonti почти все вызовы страниц происходят через единую точку входа — файл index.php, который находится в корне сайта. С него и начнем. Открываем его, выбрав в дереве проекта в окне слева.

Если посмотреть на код, то видно что в начале идет проверка на режим установки (install), потом загрузка файла настроек config.php, потом подключение файлов функций (functions.php) и файла шаблонизатора (cotemplate.php). Далее в зависимости от вызвавшей страницы и параметров происходит загрузка (подключение) тех, или иных файлов CMS.

Однако основные переменные движка начинают формироваться в файле common.php, который подключается в строке 37. Здесь и поставим точку остановки — либо кликаем мышью на номере строки, либо нажимаем Ctrl-F8. Теперь запускаем отладку - комбинация Ctrl-F5 или кнопка на панели инструментов:

20131112-779-53kb.jpg

Если все настроено правильно запустится процесс отладки — вы увидите экран браузера и страницу с иконкой загрузки. Но сама страница не отобразиться,

20131112-m1l-11kb.jpg

потому, что программа остановлена отладчиком в указанной нами точке (строка 37 файла index.php):

20131112-32w-106kb.jpg

В верхней панели становятся доступны кнопки управление процессом отладки — остановить процесс отладки (Shift-F5), продолжить до следующей точки останова (F5), следующий шаг (F8), шаг с заходом в процедуру/блок кода (F7), выход из текущего блока (Ctrl-F7), запустить до места отмеченного курсором (F4). Текущая позиция отмечена в коде зеленой строкой. В правом окне мы видим список переменных, которые на данный момент уже определены в коде. Для удобства необходимые переменные можно поставить на индивидуальный контроль. Такие переменные отображаются в верхней части окна (в нашем примере это переменная $_GET). Для внесения переменной в этот список ее можно выделить в тексте и нажать (Ctrl-Shift-F7).

Будем выполнять код пошагово - нажмем F7, чтобы войти в блок подключения файла common.php. IDE сама откроет подключаемый файла и отобразит текущую строку выполнения. Далее можем построчно двигаться по коду нажимая (F8 — следующий шаг), и наблюдать за значениями переменных. В файле common.php происходит определение большинства системных переменных движка, здесь вы можете проследить как они формируются. Когда надоест этот процесс можно нажать F5 (продолжить до следующей точки останова), и т.к. точек остановки у нас больше нет, отладчик выполнит весь оставшийся скрипт без остановок. В окне браузера загрузится привычная вам главная страница.

Таким образом можно сделать остановку в любом месте кода, установив точку остановки в нужном файле или функции. Аналогично можно отлаживать код любой страницы CMS. Например нажмите ссылку «пользователи» на главной странице и вы попадете на отладку страницы списка пользователей (т.к. вход у нас происходит через единый файл, а точку остановки мы не сняли). Можете переключиться в IDE и продолжить пошаговое выполнение.

На этом все. Основный принципы живой отладки описаны.


p.s. Если что-то не заработало (IDE не может подключиться к отладчику), значит что-то вы упустили). Рекомендую в таком случае проштудировать вот эту статью по настройке NetBeans и XDebug, там подробно расписано что, как и зачем (правда немного для другой сборки WAMP сервера, но это не принципиально).

На самом деле в сети множество описаний-инструкций на русском по работе в IDE NetBeans. Ищите, изучайте.

Удачи!

 

Этот файл в GitHub Gist - https://gist.github.com/macik/7420635

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
This post was edited by Macik (2014-02-05 04:59, 10 years ago)
Wadik
#2 2013-11-12 08:15

Спасибо! Еще бы про GIT написать (хотябы установку и основные команды) и цены бы не было)))

Kabak
#3 2013-11-12 09:47

Спасибо.  Жаль что про Denwer не написали. Буду пытаться переходить на Open сервер

Проблема с ручным управлением и доменом my-cot   Если включаю просто ручное управление, то сервер  не запускается. Если Ручное+ Автопоиск   включается, но не могу в браузере зайти по имени домена my-cot   только по прямой ссылке http://localhost/cotonti_test/

Помогите разобраться, пожалуйста.

This post was edited by Kabak (2013-11-12 12:42, 10 years ago)
Macik
#4 2013-11-12 15:40
#38451 Kabak:

Спасибо.  Жаль что про Denwer не написали. Буду пытаться переходить на Open сервер

Проблема с ручным управлением и доменом my-cot   Если включаю просто ручное управление, то сервер  не запускается. Если Ручное+ Автопоиск   включается, но не могу в браузере зайти по имени домена my-cot   только по прямой ссылке http://localhost/cotonti_test/

Помогите разобраться, пожалуйста.

А что серввер пишет когда не запускается? 

Посмотрите файл `openserver\userdata\temp\config\httpd.conf `, там должны быть строки типа

ServerRoot "C:/porta/openserver/modules/http/Apache-2.2.25"
DocumentRoot "C:/porta/openserver/domains/"

и ближе к концу настроки для виртуальных хостов:

#---------------------------------------------#
# Начало блока конфигурации HTTP хоста        #
#---------------------------------------------#
<VirtualHost 127.0.0.1:80>

DocumentRoot "C:/porta/openserver/domains/localhost/cotonti_test"
ServerName "my-cot"
ServerAlias "my-cot" 
<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/porta/openserver/domains/localhost/cotonti_test/cgi-bin/"
</IfModule>
<Location /openserver/server-status>
SetHandler server-status
</Location>
</VirtualHost>

Какие значения у вас там сотят?

Возможно у вас нет доступа на запись в системный файл Windows (обычно находится здесь: C:\Windows\System32\drivers\etc\hosts ).

Если все нормально, то OpenServer добавит туда запись для сопоставления вируального хоста локальному IP адресу:

# Start Open Server 4e6a70397d0b3334585b81d50caf70ec_hosts
127.0.0.1 my-cot
# End Open Server 4e6a70397d0b3334585b81d50caf70ec_hosts

Можете попробовать внести эту запись вручную.

 

Если нет доступа на запись или по другим причинам все-таки не получится настрить, то можно не прописывать виртуальные хосты вообще, а использовать подпапки (как это сделано с localhost/cotonti_test) . Просто в этом случае надо надо будет вызывать сайт по сорответствующему (прямому) адресу http://localhost/cotonti_test

И так как сайт оказывается установленным в подпапку домена localhost, то надо внести соответствующие подпапке коррективы в настройки сайта и IDE (скриншоты под ссылками):

 

 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#5 2013-11-12 19:00

Странно, на работе под XP проблема есть ( Сервер просто в трее выдаёт сообщение о невозможности запуска - коротко и ясно) Дома под Windows 7 проблемы нет.  Попробую посмотреть завтра на работе.

В любом случае, спасибо вам за подробное описание настроек. Благодаря вам, я разобрался как настроить Denwer и NetBeans для отладки Cotonti. Всё заработало.

Спасибо.

This post was edited by Kabak (2013-11-12 19:31, 10 years ago)
Macik
#6 2013-11-12 20:09
#38459 Kabak:

В любом случае, спасибо вам за подробное описание настроек. Благодаря вам, я разобрался как настроить Denwer и NetBeans для отладки Cotonti. Всё заработало.

Спасибо.

Отлично! Это и есть моя цель.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#7 2013-11-13 06:55

Добрался до работы...  При ручном запуске сервер пишет в трее "Сбой запуска". 

в `openserver\userdata\temp\config\httpd.conf `  вообще нет ни одного файла.   Может вышлите httpd.conf  файл который должен быть с содержимым ?

в C:\WINDOWS\system32\drivers\etc\host  доступ на запись открыт и в нем не прописано  127.0.0.1 my-cot прописал руками , но не помогает.

в localhost\cotonti_test\.htaccess тоже не содержит ничего толкового 

AddDefaultCharset Off
<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

Просто хочу разобраться с Open Server и XP. почему у меня не работает на работе (

This post was edited by Kabak (2013-11-13 07:01, 10 years ago)
Macik
#8 2013-11-13 10:35
#38461 Kabak:

Добрался до работы...  При ручном запуске сервер пишет в трее "Сбой запуска". 

Проверил на WinXP-Sp3 все работает

Значит проблема в вашем окружении (настроках системы).

Если сервер не запустился, то и файлов настроек он еще не создал. Вопрос почему не запускается.

Возможные причины:

  • на работе у вашего пользователя могут быть «урезаны» какие-то права.
  • какой-либо из портов, требуемых под работу Apache/mysql заняты системой или другой программой.
  • программа файервол блокирует какой-либьо из компонентов OpenServer (менее вероятно, но все же)

Посмотрите логи (меню управления→Просмотр логов). Для начала смотри вкладку `Основной` — там общий ход загрузки.  В номральном режиме должно быть:

2013-11-13 00:56:37  Запуск MySQL-5.5.29
2013-11-13 00:56:37  Запуск Apache-2.2.23
2013-11-13 00:56:37  Проверка состояния сервера
2013-11-13 00:56:44  Веб-сервер успешно запущен!

Возможно на каком-то этапе лог прирывается, значит на нем и проблема. Например если застопорились на mysql, то смотрим лог mysql (см. соотв. закладку `БД отладка`). В общем пробегитесь по всем закладкам (Основной / HTTP отдадка / БД отдадка) и посмотрите на предмет подозрительных сообщений.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#9 2013-11-13 13:24

Да, но в автоматическом режиме сервер работает. т.е.  что-то мешает только ручному режиму и DNS my_cot - http://localhost/cotonti_test/  

Спасибо, буду разбираться...

Macik
#10 2013-11-13 22:09
#38467 Kabak:

Да, но в автоматическом режиме сервер работает. т.е.  что-то мешает только ручному режиму и DNS my_cot - http://localhost/cotonti_test/  

Да. Но теоретически проблема может быть отражена в логах.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#11 2014-02-05 04:25

Закладка General: тут проверяем, чтобы был указан корректный путь к исполняемому файлу PHP (из установки OpenServer). Смотрим иллюстрацию и по аналогии настраиваем для своего каталога установки:

 

иллюстрации мешали очень ?  Верните, пожалуйста, статью в предний, нормальный, вид.

В чём может быть косяк, если отладчик после запуска отладки шагает по index.php, но не останавливает выполнение кода  и броузер начинает жить своей жизнью - не ждёт отладчика, если отладчит вышел из index.php ?

This post was edited by Kabak (2014-02-05 04:38, 10 years ago)
Macik
#12 2014-02-05 05:02
#39151 Kabak:

Закладка General: тут проверяем, чтобы был указан корректный путь к исполняемому файлу PHP (из установки OpenServer). Смотрим иллюстрацию и по аналогии настраиваем для своего каталога установки:

 

иллюстрации мешали очень ?  Верните, пожалуйста, статью в предний, нормальный, вид.

Скажите спасибо ГитХабу — это он тупит. :)  Перезалил на собственный хостинг (но тоже без гарантии).

В чём может быть косяк, если отладчик после запуска отладки шагает по index.php, но не останавливает выполнение кода  и броузер начинает жить своей жизнью - не ждёт отладчика, если отладчит вышел из index.php ?

Точки останова стоят? Не понял на счет не ждет. 

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

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#13 2014-02-05 06:30

Да, точки стоят, но не в них дело. Броузер должен  ждать ответа от отладчика, например, я в броузере нажимаю LOGIN  и пока в отладчике я не прошагаю по всем строкам или не нажму F5 - выполнение. И отладчик должен открывать файлы где стоят точки останова, но не открывает, после 1-го прохода по index.php  А тут получается что броузер ждёт пока я не пройдусь после старта по index.php и потом уже не ждёт ничего и работает как будто я не запускал отладку.  Если прикратить отладку, то броузер выводит сообщение что отладка закончена, но он не управляется отладчиком.

Добавлено 11 часа спустя:

Что-то глюкануло в связке Open Сервера и инсталятора Cotonti. Снёс Cotonti, установил под новым именем, и убрал на сервере ручной домен.  Всё ожило под новым именем...  не знаю что произошло. Поставил кота 9.14

This post was edited by Kabak (2014-02-05 17:32, 10 years ago)
Macik
#14 2014-02-06 22:34

Не знаю в чем глюк, но у меня периодически такое бывает в Eclipse IDE. Включаешь дебаг сессию какое-от время все ок (може полчаса). А потом аналогично не ловит точки останова, как будто и не включена отладка. Такое впечатление как будто бы сессия отладки «протухает».

Приходится останавливать отладку и перезапускать ее по новой. (В ринципе не проблема 2 кнопки нажать, но раздражает.)

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Kabak
#15 2014-02-07 12:48

С Сервером Denver такая ситуация изначатльно.  После вашей помощи я настроил Denver, но Denver из такого состояния и не выходит на нормальную пошаговую работу отладчика, - после прохода по index.php, после старта отладки, броузер улетает в вольное плавание, равно как и шагание по строкам в NetBeans.

12>>>