Russian (Pусский) translation by Masha Kolesnikova (you can also view the original English article)

Хотите узнать больше об Yii? Читайте Введение в Yii Framework и следуйте нашим сериям программирования Yii.
Добро пожаловать
В сегодняшнем учебнике мы рассмотрим, как установить Yii в локальной среде разработки для Windows и macOS. В руководстве по Windows мы будем использовать WAMP Server, среду разработки Windows для Apache, PHP и Mac, а в руководстве по Mac мы будем использовать его кузена MAMP. Хотя Rod использует WAMP в сегодняшнем учебнике, есть также версия MAMP для Windows.
Я пишу часть этого руководства, которая относится к Mac, а мой коллега Rod Ussing пишет про Windows. Я встретил Рода в средней школе в Калифорнии во время моей второй работы программистом, очень много лет назад. Он по-прежнему использует Windows, но после восьми лет работы в Microsoft и утомительной перезагрузки системы для перезапуска Outlook, я ушел на macOS.
Что такое Yii?
Yii - невероятно надежный, хорошо продуманный, высокопроизводительный фреймворк для PHP, как например Rails - для Ruby и похож на Laravel. Если вам интересно, можете ли вы создавать реальные приложения в Yii, ознакомьтесь с Планировщиком собраний и нашей серией статей Building Your Startup.
Как программировать с Yii2: использование расширенного шаблона приложения
Создание вашего стартапа с помощью PHP: Содержание
Мне нравится писать код в Yii. Все быстрее и легче для меня. И это относительно просто, пока развивается фреймворк (это я бросаю тень на Rails).
Мы начнем с основ того, как установить Yii в macOS, а затем перейдем к Windows. Поскольку то, что необходимо для завершения установки на каждой платформе, в целом сходится, мы опишем оставшиеся инструкции в единой форме для обеих платформ.
Выбор между Yii Basic и Yii Advanced
Yii Basic - простейшая форма Yii. Вы можете создавать с ним всевозможные приложения, но она лучше всего подходит для приложений одного уровня, например, только то, что видит клиент.
Вот структура каталогов приложения Yii Basic с набором каталогов для одного приложения:
assets/ contains assets definition commands/ contains console commands (controllers) config/ contains application configurations controllers/ contains Web controller classes mail/ contains view files for e-mails models/ contains model classes runtime/ contains files generated during runtime tests/ contains various tests for the basic application vendor/ contains dependent 3rd-party packages views/ contains view files for the Web application web/ contains the entry script and Web resources
Шаблон расширенного проекта Yii 2 лучше всего подходит для разработки сложных веб-приложений с несколькими уровнями, такими как фронтенд, бекенд и консольные команды, каждый из этих уровней представляет собой отдельное приложение Yii. Например, административные сайты могут работать на бекенд части, а задачи cron могут выполняться в среде консоли.
Напротив, вот структура каталогов для приложения Yii Advanced с несколькими уровнями:
common config/ contains shared configurations mail/ contains view files for e-mails models/ contains model classes used in both backend and frontend tests/ contains tests for common classes console config/ contains console configurations controllers/ contains console controllers (commands) migrations/ contains database migrations models/ contains console-specific model classes runtime/ contains files generated during runtime backend assets/ contains application assets such as JavaScript and CSS config/ contains backend configurations controllers/ contains Web controller classes models/ contains backend-specific model classes runtime/ contains files generated during runtime tests/ contains tests for backend application views/ contains view files for the Web application web/ contains the entry script and Web resources frontend assets/ contains application assets such as JavaScript and CSS config/ contains frontend configurations controllers/ contains Web controller classes models/ contains frontend-specific model classes runtime/ contains files generated during runtime tests/ contains tests for frontend application views/ contains view files for the Web application web/ contains the entry script and Web resources widgets/ contains frontend widgets vendor/ contains dependent 3rd-party packages environments/ contains environment-based overrides
Каждый уровень - это собственный сайт, но при желании они могут легко обмениваться кодом и общей базой данных. Я использую этот шаблон в нашей серии про стартап. Yii Advanced также обеспечивает встроенную поддержку конфигурации для разных сред, что упрощает разработку для команд.
Подготовка macOS для Yii
Я уже несколько лет пишу код в Yii на macOS. Конечно, существует множество различных способов запуска среды Apache, MySQL, PHP на Mac, но я предпочитаю MAMP.
Установка MAMP

В основном, просто откройте веб-сайт MAMP и загрузите пакет для macOS:

После загрузки вы можете перетащить пакет в папку «Приложения» и дважды щелкнуть, чтобы запустить MAMP. Появится окно MAMP:

Настройка MAMP
Нажмите «Настройки», чтобы настроить порты, которые вы хотите использовать на сервере (я использую 8888
для Apache):

Нажмите «Веб-сервер», чтобы просмотреть или изменить каталог вашего сервера. Я использую Apache локально:

Установка Composer на macOS
Yii2 требует Composer, популярного менеджера зависимостей для PHP. Если у вас еще нет Composer, выполните следующие действия:
curl -s http://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Затем используйте Composer для установки Yii2. В запросе на установку требуется, чтобы вы использовали собственные данные учетной записи GitHub; Зарегистрируйтесь, если у вас нет учетной записи.
Rod описывает далее ниже, что для установки Yii необходим плагин для композитора:
composer global require "fxp/composer-asset-plugin:1.0.0-beta2"
Он рекомендует настроить учетную запись в GitHub и настроить токен доступа. Причина этого заключается в том, что во время установки Yii количество запросов может превышать ограничение скорости передачи данных GitHub API, и Composer может остановиться и попросить ваши учетные данные входа GitHub чтобы снова получить токен доступа к API GitHub во время установки.
Когда будете готовы, вы сможете установить Yii. Мы будем использовать Yii basic и установим его в каталог ~/sites/hello
:
composer create-project --prefer-dist yiisoft/yii2-app-basic hello
Затем создайте символическую ссылку для MAMP в каталог приложений для сайтов:
cd /Applications/MAMP/htdocs ln -s ~/Sites/hello/ /Applications/MAMP/htdocs/hello
Если вы решите установить Yii Advanced, это может помочь активировать и настроить ваш файл виртуального хоста:
$ nano /Applications/MAMP/conf/apache/httpd.conf # Virtual Hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
Ниже я настроил frontend.dev и backend.dev для сопоставления с установкой Yii Advanced в каталоге ~/sites/yiiplus
, который имеет символическую ссылку в /Applications/MAMP
.
$ nano /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf NameVirtualHost *:8888 <VirtualHost *:8888> ServerName frontend.dev DocumentRoot /Applications/MAMP/htdocs/yiiplus/frontend/web/ <Directory "/Applications/MAMP/htdocs/yiiplus/frontend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... </Directory> </VirtualHost> <VirtualHost *:8888> ServerName backend.dev DocumentRoot /Applications/MAMP/htdocs/yiiplus/backend/web/ <Directory "/Applications/MAMP/htdocs/yiiplus/backend/web/"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... </Directory> </VirtualHost>
Если вы решите использовать Yii Advanced, я также рекомендую вам ознакомиться с моим учебным пособием, в котором содержится более подробная информация о нем.
Это были конкретные шаги развертывания платформы для macOS. Теперь давайте посмотрим на подготовку к Yii в Windows. Позже мы вернемся к завершению конфигурации с шагами, которые работают для обеих платформ. Если вы строго являетесь пользователем MacOS, перейдите к разделу «Завершение настройки Yii».
Подготовка Windows для Yii
Для Yii в Windows мы будем использовать WAMP. Для начала вам потребуется загрузить и настроить WAMP на компьютере под управлением Windows. Для этого урока мы будем устанавливать WAMP на вашем локальном компьютере (который сервер будет указывать как localhost). Если вы хотите установить на боевой сервер Windows, вам нужно будет связаться с вашим провайдером для получения сведений о сервере и следовать рекомендациям по установке и настройке WAMP Server или альтернативного стека Apache, MySQL, PHP для этой среды.
Установка WAMP

Поскольку основное внимание в этом руководстве уделяется установке Yii, мы предлагаем вам обратиться к одному из многих превосходных существующих руководств, которые охватывают установку WAMP; Вы будете удивлены, насколько это легко. Поскольку это также приложение PHP, руководство WordPress для установки WAMP является хорошей отправной точкой.
Как только мы установили и настроили WAMP, нам нужно установить Composer, который является менеджером зависимостей и установщиком для проектов PHP. Это позволит нам начать работу с нашей установкой Yii.
Установка Composer в Windows
Хотя вы можете загружать пакеты Yii из GitHub, в этом уроке мы используем Composer для его установки. Если вы не знакомы с ним, вы можете узнать больше в этом уроке.
Сначала перейдем на GitHub для загрузки и установки последней версии Composer-setup.exe, которая на данный момент является v4.5.0.
Как только установка будет завершена, рекомендуется выйти из системы и снова войти в систему, чтобы убедиться, что все файлы обновлены [Jeff здесь: или купить Mac].
Вы можете проверить свою установку, открыв командную строку и выбрав:
cd \Users\your-username
Введите следующую команду:
composer -V
Затем должна отображаться информация о версии для Composer, например:
Composer version 1.4.1 2017-03-10 09:29:45
Установить плагин Asset Composer
Чтобы управлять вашими проектными ресурсами в Composer .json, без необходимости установки NPM или Bower, вам нужно убедиться, что Composer имеет все необходимые ему пакеты, выполнив команду установки для плагина Composer Assets.
Откройте командную строку в Windows и перейдите туда, где находится ваша папка PHP. На этой установке PHP находится в каталоге wamp64\bin\ и это версия PHP 7.0.10, поэтому мы печатаем:
cd \wamp64\bin\php\php7.0.10
Затем введите следующую команду:
composer global require "fxp/composer-asset-plugin:^1.3.1"
Имейте в виду, что программное обеспечение изменяется, поэтому обязательно убедитесь, что вы работаете с самой последней стабильной версией. Будьте осторожны с бета-версиями.
Для самых последних версий Composer и Composer Asset Plugin:
Настройка WAMP для вашего приложения Yii
Теперь давайте настроим WAMP для Yii. Измените свой каталог на установку WAMP \www для этой установки:
cd \wamp64\www
В этом каталоге мы создадим новый каталог с именем Yii Basic, набрав:
mkdir yii-basic
Здесь мы собираемся установить Yii Basic. Вы можете пропустить этот шаг и установить Yii прямо в каталог www, но создание четко названного каталога позволяет избежать путаницы, особенно если вы планируете установить шаблоны как Yii Basic, так и Yii advanced.
В новом каталоге yii-basic мы запускаем следующую команду для установки базового шаблона Yii:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii-basic
Мы можем проверить Yii, перейдя в папку «Basic» в созданном вами каталоге:
cd \wamp64\bin\www\
Теперь мы вводим команду:
PHP yii serve
Это запустит Yii, используя механизм PHP WAMP.
Настройка файла хоста в Windows
Если вы хотите настроить локальные адреса браузера для своего сайта или четко указать на фронтенд и бекенд сайта Yii-Advanced, вам нужно кое что еще сделать.
Либо используя раскрывающийся список «Открыть файл» текстового редактора, либо непосредственно в проводнике Windows, перейдите в файл:
C:\Windows\system32\drivers\etc\hosts
Мы ищем раздел, который гласит:
# localhost name resolution is handled within DNS itself. 127.0.0.1 localhost
В рамках подготовки к нескольким сайтам Yii-Advanced добавим один для интерфейса и один для бэкэнд:
127.0.0.1 frontend.dev 127.0.0.1 backend.dev
Это будет выглядеть так:

Подробнее об обнаружении и настройке вашего файла Windows Host можно найти здесь.
Включение виртуальных хостов в файле httpd.conf
Рекомендуется проверить, что виртуальные хосты включены в файле Apache httpd.conf.
Будьте очень осторожны при редактировании файла httpd.conf - сделайте копию перед запуском, и убедитесь, что вы понимаете, что делаете до внесения изменений, иначе вы можете легко разрушить ваш WAMP-сервер. [Джефф здесь, похоже, что Род говорит исходя из своего опыта.]
Чтобы найти httpd.conf, введите:
cd \wamp64\bin\apache\apache2.4.23\conf
Мне нравится это руководство для более подробного объяснения редактирования httpd.conf для включения функций, связанных с виртуальными хостами в Apache, и настройки виртуальных хостов на WAMP.
Настройка виртуальных хостов
Теперь нам нужно настроить виртуальные хосты Apache. Используя наше меню текстового редактора или проводник Windows, мы перейдем к следующему каталогу:
C:Wamp64\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
Для локального хоста должен быть виртуальный хост, поэтому теперь нам нужно добавить виртуальные хосты для фронтенда и бекенда Yii. Я рекомендую вам вводить имя над каждым виртуальным хостом, чтобы избежать путаницы. (Не забудьте закомментировать название!)
То есть #Frontend
Файл конфигурации виртуального хоста должен выглядеть примерно так.
В этом примере мы установили Yii Advanced в c:/wamp64/www/yii-advanced
и создали приложение с именем yii-application. Также можно установить Yii в www, чтобы ваш путь выглядел проще: c:/wamp64/www/myapp/frontend/web.

Обратите особое внимание на строки DocumentRoot и Directory. Они должны содержать полный путь к каталогу приложений Yii вплоть до «веб-файла», который находится в интерфейсных и backend-каталогах соответственно. Содержимое DocumentRoot и Directory идентично, за исключением того, что путь к каталогу содержится в кавычках.
Установка шаблона Yii-Advanced для Windows
Чтобы установить расширенный шаблон Yii, вернемся в каталог wamp64\www:
cd \wamp64\www
Теперь мы создадим новый каталог с именем yii-advanced:
mkdir yii-advanced
В новом каталоге мы запускаем следующую команду, которая установит шаблон Yii Advanced:
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application

До сих пор установка Yii Basic и Yii Advanced была одинаковой. Теперь нам нужно добавить еще несколько шагов, чтобы подготовить ваш Yii Advanced Template к действию.
Завершение конфигурации Yii
Шаги для Windows и Mac
Создание базы данных MySQL
Предполагая, что PHPmyAdmin установлен на вашем сервере WAMP (он включен в MAMP), вы можете фактически создать базу данных через графический интерфейс PHPmyAdmin, но мы собираемся использовать командную строку SQL, что, честно говоря, не требует больших усилий.
В командной строке Windows перейдите в папку MySQL, набрав:
cd \wamp64\www\bin\mysql\mysql5.7.14\bin
Вы также можете сделать это из любого места, пока WAMP или MAMP находятся в вашем локальном окружении.
Затем для Mac и Windows введите:
mysql -u root -p
Это приведет нас к командной строке mysql. Теперь мы выполним следующую команду в SQL:
create database yii2test;
(Вы можете назвать базу данных так, как хотите, при условии, что вы будете использовать соответствующее имя в течение всего остального процесса.)
Теперь мы создадим имя пользователя и пароль для этой базы данных, введя следующие команды SQL:
GRANT ALL ON yiit2est.* TO 'your-username'@'localhost' IDENTIFIED BY 'your_chosen_password’; FLUSH PRIVILEGES; EXIT;
Теперь вы покинете MySQL и вернетесь в консольную консоль.
Сохраняйте имя пользователя и пароль базы данных под рукой, так как нам понадобится настроить конфигурационный файл PHP (common/config/main-local.php), который позволяет Yii безопасно общаться с MySQL.
Инициализация расширенного приложения Yii
Это не требуется для установок Yii-basic.
Чтобы инициализировать Yii, нам нужно перейти в папку приложений Yii-Advanced. В этом случае это будет:
cd \wamp64\www\yii-advanced\
Затем введите init
:
Это запустит скрипт инициализации, который спросит, хотите ли вы инициализировать Yii для среды разработки или боевой режим; Скорее всего, это будет выглядеть так:
Which environment do you want the application to be initialized in? [0] Development [1] Production
Для целей этого урока мы будем работать в среде разработки, поэтому введите 0 и нажмите enter, а затем введите «да» (без кавычек) при появлении запроса и завершение инициализации.
Мы почти закончили - все, что осталось сейчас, - это несколько шагов настройки, и вы можете перейти к работе с Yii.

Обновление настроек конфигурации Yii
Для Yii-basic вы будете редактировать /yii-basic/config/db.ini
. Для, Yii-advanced, вы будете редактировать /yii-advanced/common/config/main-local.php
.
Чтобы отредактировать этот файл, нам нужно будет использовать текстовый редактор. Atom - отличный выбор, который вам обязательно понравится, когда вы перейдете к более продвинутому кодированию.
Чтобы открыть файл конфигурации, используйте раскрывающееся меню «Открыть файл» в текстовом редакторе или перейдите непосредственно в файл конфигурации с помощью проводника Windows и щелкните правой кнопкой мыши «Открыть с» и выберите текстовый редактор. (В Windows вам может потребоваться запустить текстовый редактор в качестве администратора.)
Следующий пример из установки, которую мы используем сегодня, иллюстрирует этот процесс. Имейте в виду, что вы можете использовать другое обозначение диска и иметь несколько другой путь в зависимости от того, как вы назвали свои папки.
Файл конфигурации должен выглядеть примерно так:

Не забудьте ввести те же имя пользователя и пароль, которые вы использовали для настройки своей базы данных Yii MySQL, иначе Yii и MySQL не будут работать!
И, пожалуйста, даже не думайте об использовании имени пользователя и пароля root в файле конфигурации! [Джефф здесь ... правда, не надо так делать.]
Использование Yii Migration Tool
Yii Advanced имеет свои собственные миграции. Теперь, когда MySQL настроен, нам понадобятся некоторые таблицы. Миграции Yii создают таблицы и схемы в вашей базе данных MySQL программно.
Чтобы запустить инструмент миграции Yii в Windows, нам нужно перейти в наш каталог установки Yii, набрав:
cd \wamp64\www\yii-advanced\yii-application
Опять же, вы можете установить его без родительского каталога, который Rod создал для этой демонстрации. Например, для MAMP я использую:
$ cd ~/sites/yii-advanced
Теперь введите следующую команду:
yii migrate
Через какое-то время вас спросят, хотите ли вы "Apply the above migration?"
Введите «Yes
» и нажмите «Enter». Если все будет хорошо, мы получим сообщение об успешной миграции Yii.

Посещение вашего сайта Yii
Теперь момент истины. Когда вы откроете localhost:8888
в своем браузере, вы должны увидеть следующее:

Для Yii Advanced вам может понадобиться попробовать frontend.dev
или включить интерфейс или бэкэнд-сайт, например localhost:8888/frontend
. Если вы не включили свой файл хоста, вы можете напрямую получить доступ к Yii через путь, localhost:8888/web
.
Если вы установили расширенный шаблон, перейдите на ссылку «Регистрация» и введите имя пользователя, адрес электронной почты, который вы хотите использовать, и пароль.
Не используйте свой пароль MySQL (тот, который вы ввели в файл конфигурации PHP). Это база данных учетной записи пользователя Yii с новыми именами пользователей и паролями.
Ваша первая регистрация пользователя также будет административным пользователем приложения Yii с доступом ко всему.
Теперь, когда вы зарегистрированы, введите в браузере:
backend.dev
Вы должны получить экран входа для администратора, где вы можете ввести новое имя пользователя и пароль:

Это вернет вас на предыдущую страницу Yii « Congratulations
», но как аутентифицированного пользователя.
Теперь со всеми этими поздравлениями, почему бы не поздравить себя, как вы только что успешно установили Yii. Отличная работа. [Джефф здесь, если вы сделали это в Windows, купите Mac и попробуйте там.]
В заключение
Надеюсь, наш учебник поможет вам начать работу с Yii. Род и я наслаждались написанием этого вместе.
Следите за предстоящими учебниками в нашей серии программирования с помощью Yii2, поскольку мы продолжаем погружаться в разные аспекты фреймворка. Обязательно ознакомьтесь с нашей версией Создаем свой стартап помощью серии PHP, в которой используется расширенный шаблон Yii2, когда мы создаем реальное приложение.
В эпизоде «Приступая к работе с Yii» отлично расписана настройка Yii basic и боевого Linux-сервера.
Если вы хотите узнать, когда выйдет следующий учебник Yii2, следуйте за мной @reifman в Twitter или проверьте мою страницу инструктора. Моя страница инструктора будет включать все статьи из этой серии, как только они будут опубликованы.
Ссылки по теме
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post