X

Yii на Denwer'e

Решил потестить framework для php Yii, уж больно о нем лестные отзывы. А мне как всегда не хватает скорости разработки проектов.

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

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

Итак возвращаясь к Yii на Denwer'e. Скачал разархивировал, попробовал запустить ошибки.. Супер старт 🙂

Ладно, давай конфигурить Denwer:

Подразумевается что у Вас уже установлен Denwer 3+ и дополнения к нему

1. В переменную окружения Windows добавляем путь к интерпретатору:
Пуск->Панель управления->Система->Вкладка "Дополнительно"
Кнопка "Переменные среды"
Во втором окне сверху ("Системные переменные"), ищем Path, выбираем его
Кнопка "Изменить"

и в конец строки добавляем:
;Z:\usr\local\php5
*Вместе с запятой в начале пути, она отделит новый путь от предыдущего!

Где Z:\ виртуальный диск который создается Denwer'ом, при установке по-умолчанию создается именно он

2. Правим php.ini, идем в директорию с установленным Denwer'ом, (у меня это D:\WebServers):
D:\WebServers\usr\local\php5 и открываем файл php.ini

ищем:

extension_dir = "/usr/local/php5/ext"

меняем на:

extension_dir = "Z:\usr\local\php5\ext"

где Z:\ виртуальный диск создаваемый Denwer'ом

ищем:

session.save_path = "/tmp"

меняем на:

session.save_path = "Z:\tmp"

где Z:\ виртуальный диск создаваемый Denwer'ом

ищем:

;date.timezone =

меняем на:

date.timezone = "Europe/Helsinki"

где Europe/Helsinki id вашего часового пояса, мой это +2 часа

3. В том же php.ini включаем модули:
т.к. не помню какие выкл/вкл по-умолчанию, приведу список, который включен у меня (подсказали, что не включены 1,8,9)

    extension=php_curl.dll  
    extension=php_gd2.dll  
    extension=php_mbstring.dll  
    extension=php_mysql.dll  
    extension=php_mysqli.dll  
    extension=php_pdo.dll  
    extension=php_pdo_mysql.dll  
    extension=php_pdo_sqlite.dll  
    extension=php_sqlite.dll

теперь все круто, можно создавать проект:

1. Качаем отсюда последний стабильный релиз, на момент написания это: 1.1.1 (March 14, 2010)

2. Создаем под проект папку домена:
D:\WebServers\home\yii\www

3. Разархивируем скачанные файлы framework'a в папку:
D:\WebServers\home\yii\YiiRoot
проверяем чтобы в этой папке оказалось, еще 3 папки (demos, framework, requirements) и несколько файлов..

4. Создаем файл D:\WebServers\home\yii\www\.htaccess пишем внутрь следующее:

AddDefaultCharset utf-8

Проект-то будет на UTF-8, ну его в пень этот CP1251 🙂

5. Открываем консоль: Пуск->Выполнить->cmd

6. Переходим в папку домена:
D:
cd \WebServers\home\yii
На этом этапе командная строка должна стать вот такой:
D:\WebServers\home\yii>

7. Создаем проект коммандой:
YiiRoot\framework\yiic webapp www
полный вид в коммандной строке:
D:\WebServers\home\yii>YiiRoot\framework\yiic webapp www

если все сделано правильно, появиться примерно такой диалог:

PHP Warning: Directive 'register_long_arrays' is deprecated in PHP 5.3 and grea
ter in Unknown on line 0
PHP Warning: Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater
in Unknown on line 0
PHP Warning: PHP Startup: PDO: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match
in Unknown on line 0
Create a Web application under 'D:\WebServers\home\yii\www'? [Yes|No]

Отвечаем Yes

Идет ход установки:

mkdir Z:/home/yii/www/assets
mkdir Z:/home/yii/www/css
generate css/bg.gif
--[вырезано для уменьшения листинга]--
generate themes/classic/views/.htaccess
mkdir Z:/home/yii/www/themes/classic/views/layouts
mkdir Z:/home/yii/www/themes/classic/views/site
mkdir Z:/home/yii/www/themes/classic/views/system

и получаем сообщение:

Your application has been created successfully under Z:\home\yii\www.

После этого стартуем сервер ярлыком запуска Denwer и переходим по адресу: http://yii

Должны получить вот такой результат:

Категории: Frameworks PHP Yii

Комментарии (17)

  • День добрый! спасибо большое за статью - много нервов и времени убило самостоятельное ковыряение в настройках и перечитывании даже официальной документации, но только после вашей подачи все получилось!
    Остался один вопрос: как запустить demos? получается что папка эта вне домена и как к ней обратиться не понятно... хэлп, плиз)

    • К сожалению, сейчас не могу протестировать - уже давно не использую Денвер.

      Попробуйте так:
      1) Создайте отдельный домен, например: testblog, путь будет такой: D:\WebServers\home\testblog\www\
      2) Скопируйте туда папку blog из demos/blog, путь будет такой: D:\WebServers\home\testblog\www\blog\
      3) Скопируйте папку framework из архива yii, в папку, на два уровня ниже, т.е. сюда: D:\WebServers\home\testblog\framework\
      4) Перезапустите сервер, и можете тестировать по адресу http://testblog/blog

      Если не затруднит, отпишите: работает или нет, чтоб других не вводить в заблуждение, если я не правильно написал.

  • Всё почти получается, только проект создаётся в директории framework. Там уже создаётся www/всё_содержимое. В существующей паке www создаваться не хочет. Пришлось вручную перекинуть содержимое в корневую папку www и в файле index.php подправить путь к yii.php

    • Этой инструкции уже несколько лет, поэтому что-то могло поменяться. Спасибо за Ваше замечание.

  • Большущее спасибо, все получлось. Вчера целый день мучался над этим, после прочтения статьи - все получилось.

  • здОрово, простым легкодоступным языком. Поизрыл гугл - всё мудрённо и неработающее на Денвере.
    Большое человеческое спасибо.

  • Спасибо... Помог))) А то проблемки под виндоз7...
    КСТАТИ в конфиге, по дефолту все модули аппача включены, кроме extension=php_sqlite.dll

  • Спасибо за отзыв Кирилл. Для тех кто столкнется с трудностями в п.6, постараюсь объяснить: мы открываем консоль (команда cmd) и далее указанные данные вводим именно в консоли (в скобочках написано что вводить):
    - меняем диск ( D: )
    - переходим в папку Yii ( cd \WebServers\home\yii )
    - далее сверяемся, правильно ли мы перешли ( D:\WebServers\home\yii> )
    - после этого создаем проект (YiiRoot\framework\yiic webapp www)

  • Спасибо большое за инструкцию, всё получилось Супер! Часа 2 сидел по всяким другим запудренным инструкциям и нечего не получалось, нашел вашу и всё супер :) Правда пункт нр.6 не сразу понял, ну посмотрел скриншот Андрея и всё стало понятно

  • проделайте инструкцию в точности до буквы!
    у меня уже был установлен давно денвер (я пробывал на нем разные cms)
    и посчитал, что денвер мой уже настроен!
    у меня ничего не получалось, пока не установил расширения денвера!
    еще когда редактируете переменную path - не забывайте перезагрузиться!
    помучившись маленько, все получилось!
    благодаря этой статье!
    эта самая понятная из всех попавшихся!

    • Спасибо за отзыв, очень рад что инструкция помогла :)

  • Спасибо, за статью, все получилось!

    • Точно такая же проблема, может напишите как вы решили проблему

    • Эта ошибка говорит о том, что система не может найти php.exe. Это может быть вызвано тем, что неправильно прописан путь к нему, в переменных среды, смотри пункт 1. Так же это может быть вызвано тем, что попросту не запущен денвер (т.е. у меня в статье написан путь Z:\.., где Z:\ это виртуальный диск который создается при запуске денвера, убедись что он у тебя есть: посмотри, есть ли он в "Мой компьютер"). Далее, если с диском все ОК, попробуй выполнить все тоже, но не через C:\ как у тебя на скрине, а через Z:\. Думаю проблема в этом.