Хотите узнать больше о Yii? Прочитайте Введение в Yii Framework и следуйте нашей серии по программированию Yii .
желанный
В сегодняшнем уроке мы объясним, как установить Yii в локальной среде разработки для Windows и macOS. Для руководства по Windows мы будем полагаться на WAMP Server , среду веб-разработки Windows для Apache, PHP и Mac, а для руководства по Mac мы будем использовать его двоюродного брата MAMP . Хотя Род использует WAMP в сегодняшнем уроке, существует также версия MAMP для Windows.
Я пишу часть этого руководства для Mac, а мой коллега Род Уссинг пишет для Windows. Я встретил Рода в средней школе в Калифорнии на моей второй работе по программированию, очень большое шестнадцатеричное число лет назад. Он по-прежнему использует Windows, но после восьми лет работы в Microsoft и усталости от перезагрузки системы для перезапуска Outlook я ушел в macOS .
Что такое Yii?
Yii — невероятно надежная, хорошо спроектированная, высокопроизводительная среда для PHP, так как Rails для Ruby и похож на Laravel. Если вам интересно, можете ли вы создавать реальные приложения в Yii, ознакомьтесь с Meeting Planner и нашей серией « Построение стартапа ».
-
Как программировать с Yii2: использование расширенного шаблона приложения
-
Создание вашего стартапа с помощью PHP: Содержание
Я люблю кодировать в Yii. Все быстрее и проще для меня. И это относительно просто в том, что касается фреймворков ( это я бросаю тень на Rails ).
Мы начнем с основ уникальной установки Yii в macOS, а затем перейдем к Windows. Поскольку то, что необходимо для завершения установки на каждой платформе, сходится, мы опишем остальные инструкции в единой форме для обеих платформ.
Выбор между Yii Basic и Yii Advanced
Yii Basic — самая простая форма Yii. С его помощью вы можете создавать все виды приложений, но это лучше всего подходит для одного уровня, например, для одной стороны, обращенной к клиенту.
Вот структура каталогов приложения Yii Basic с набором каталогов для одного приложения:
01
02
03
04
05
06
07
08
09
10
11
|
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 с несколькими уровнями:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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
Нажмите Preferences, чтобы настроить порты, на которых вы хотите сервер (я использую 8888
для Apache):
Нажмите Веб-сервер, чтобы просмотреть или изменить каталог вашего сервера. Я использую Apache локально:
Установка Composer на macOS
Yii2 требует Composer, популярного менеджера зависимостей для PHP. Если у вас еще не установлен Composer, сделайте следующее:
1
2
|
curl -s http://getcomposer.org/installer |
mv composer.phar /usr/local/bin/composer
|
Затем используйте Composer для установки Yii2. Запрос на установку требует, чтобы вы использовали свои собственные учетные данные GitHub; зарегистрируйтесь, если у вас нет учетной записи.
Как описывает Род ниже, для установки Yii требуется плагин composer:
1
|
composer global require «fxp/composer-asset-plugin:1.0.0-beta2»
|
Он рекомендует настроить учетную запись в GitHub и настроить токен доступа . Причина этого заключается в том, что во время установки Yii количество запросов может превысить ограничение скорости GitHub API, и Composer может остановиться и запросить учетные данные для входа в GitHub, чтобы получить токен доступа GitHub API во время установки.
Когда все будет готово, вы можете установить Yii. Мы будем использовать Yii basic и установить его в каталог ~/sites/hello
:
1
|
composer create-project —prefer-dist yiisoft/yii2-app-basic hello
|
Затем создайте символическую ссылку для MAMP на каталог приложения Sites:
1
2
|
cd /Applications/MAMP/htdocs
ln -s ~/Sites/hello/ /Applications/MAMP/htdocs/hello
|
Если вы решите установить Yii Advanced, это может помочь активировать и настроить файл виртуального хоста:
1
2
3
4
|
$ 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
.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
$ 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 .
# 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 .
# 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 на ваш локальный компьютер (который сервер будет называть локальным). Если вы хотите установить на рабочий сервер Windows, вам необходимо связаться с вашим провайдером для получения подробной информации о сервере и следовать рекомендациям по установке и настройке сервера WAMP или альтернативного стека Apache, MySQL, PHP для этой среды.
Установка WAMP
Так как основное внимание в этом руководстве уделяется установке Yii, мы рекомендуем вам обратиться к одному из множества превосходных существующих учебных пособий, посвященных установке WAMP ; Вы будете удивлены, насколько это просто. Так как это приложение PHP, руководство по установке WAMP в WordPress является хорошей отправной точкой.
После того, как мы установили и настроили WAMP, нам нужно установить Composer, который является менеджером зависимостей и установщиком для проектов PHP. Это позволит нам начать установку Yii.
Установка Composer в Windows
Хотя вы можете загрузить пакеты Yii с GitHub, в этом руководстве мы используем Composer для его установки. Если вы не знакомы с Composer, вы можете узнать больше в этом руководстве .
Сначала перейдем на GitHub, чтобы загрузить и установить последнюю версию Composer-setup.exe , которая на данный момент v4.5.0 .
После завершения установки рекомендуется выйти из системы и войти снова, чтобы убедиться, что все файлы обновлены [Джефф здесь: или купите Mac] .
Вы можете проверить свою установку, открыв Командную строку и перейдя к:
1
|
cd \Users\your-username
|
Введите следующую команду:
1
|
composer -V
|
Информация о версии для Composer должна отображаться примерно так:
1
|
Composer version 1.4.1 2017-03-10 09:29:45
|
Установите Composer Asset Plugin
Чтобы управлять активами проекта в Composer .json, без необходимости установки NPM или Bower, вам нужно убедиться, что Composer имеет все необходимые пакеты, запустив команду установки для плагина Composer Assets.
Откройте командную строку в Windows и перейдите туда, где находится ваша папка PHP. В этой установке PHP находится в каталоге wamp64 \ bin \ и это версия PHP 7.0.10, поэтому мы набираем:
1
|
cd \wamp64\bin\php\php7.0.10
|
Затем введите следующую команду:
1
|
composer global require «fxp/composer-asset-plugin:^1.3.1»
|
Помните, что программное обеспечение меняется, поэтому всегда проверяйте, работаете ли вы с самой последней стабильной версией. Будьте осторожны с бета-версиями, потому что если вы окажетесь слишком далеко от истекающего кровью края, вещи могут начать ломаться.
Для самых последних версий Composer и Composer Asset Plugin:
Настройка WAMP для вашего приложения Yii
Теперь давайте настроим WAMP для Yii. Перейдите в каталог WAMP \ www для этой установки:
1
|
cd \wamp64\www
|
В этом каталоге мы создадим новый каталог с именем Yii Basic, набрав:
1
|
mkdir yii-basic
|
Здесь мы собираемся установить Yii Basic. Вы можете пропустить этот шаг и установить Yii прямо в каталог www, но создание четко названного каталога позволит избежать путаницы, особенно если вы планируете установить как базовые шаблоны Yii, так и расширенные шаблоны Yii.
В новом каталоге yii-basic мы запускаем следующую команду для установки базового шаблона Yii:
1
|
composer create-project —prefer-dist —stability=dev yiisoft/yii2-app-basic yii-basic
|
Мы можем проверить Yii, перейдя в папку «Basic» в каталоге, который вы создали:
1
|
cd \wamp64\bin\www\
|
Теперь мы набираем команду:
1
|
PHP yii serve
|
Это запустит Yii, используя PHP-движок WAMP.
Настройка хост-файла в Windows
Если вы хотите настроить адреса локальных браузеров для своего сайта или четко ссылаться на внешний и внутренний интерфейсы сайта Yii-Advanced, вам нужно сделать немного больше.
Либо с помощью раскрывающегося текстового редактора Открыть файл, либо перейдя непосредственно в проводнике Windows, перейдите к файлу:
1
|
C:\Windows\system32\drivers\etc\hosts
|
Мы ищем раздел, который гласит:
1
2
|
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
|
При подготовке к нескольким сайтам Yii-Advanced добавим один для внешнего интерфейса и один для внутреннего:
1
2
|
127.0.0.1 frontend.dev
127.0.0.1 backend.dev
|
Это будет выглядеть так:
Вы можете найти больше информации о поиске и настройке файла Windows Host здесь .
Включение виртуальных хостов в файле httpd.conf
Рекомендуется проверить, включены ли виртуальные хосты в файле Apache httpd.conf.
Будьте очень осторожны при редактировании файла httpd.conf — сделайте копию перед началом и убедитесь, что вы понимаете, что делаете, прежде чем вносить изменения, в противном случае вы можете легко разрушить свой сервер WAMP. [Джефф здесь, звучит так, будто Род говорит из опыта.]
Чтобы найти httpd.conf, введите:
1
|
cd \wamp64\bin\apache\apache2.4.23\conf
|
Мне нравится это руководство для более подробного объяснения редактирования httpd.conf, чтобы включить функции, относящиеся к виртуальным хостам в Apache и настройке виртуальных хостов на WAMP.
Настройте виртуальные хосты
Теперь нам нужно настроить наши виртуальные хосты Apache. Используя наше меню текстового редактора или Проводник Windows, мы перейдем к следующему каталогу:
1
|
C:Wamp64\bin\apache\apache2.4.23\conf\extra\httpd-vhosts.conf
|
Уже должен быть виртуальный хост для localhost, поэтому теперь нам нужно добавить виртуальные хосты для внешнего интерфейса Yii и внутреннего интерфейса Yii. Я рекомендую вам ввести имя над каждым виртуальным хостом, чтобы избежать путаницы. (Не забудьте закомментировать имя!)
то есть # #Frontend
Файл конфигурации виртуального хоста должен выглядеть примерно так.
В этом примере мы установили Yii Advanced в c:/wamp64/www/yii-advanced
и создали приложение с именем yii-application. Также можно установить Yii на www, чтобы ваш путь можно было прочитать проще: c: / wamp64 / www / myapp / frontend / web.
Обратите особое внимание на строки DocumentRoot
и Directory
. Оба они должны содержать полный путь к каталогу приложения Yii вплоть до «веб-файла», который находится в каталогах frontend и backend соответственно. Содержимое DocumentRoot и Directory идентично, за исключением того, что путь для Directory содержится в кавычках.
Установка расширенного шаблона Yii для Windows
Чтобы установить расширенный шаблон Yii, вернемся в каталог wamp64 \ www:
1
|
cd \wamp64\www
|
Теперь мы создадим новый каталог с именем yii-advanced:
1
|
mkdir yii-advanced
|
В новом каталоге мы запускаем следующую команду, которая установит расширенный шаблон Yii:
1
|
composer create-project —prefer-dist yiisoft/yii2-app-advanced yii-application
|
До сих пор установка Yii Basic и Yii Advanced была одинаковой. Теперь нам нужно добавить еще несколько шагов, чтобы подготовить расширенный шаблон Yii к действию.
Завершение настройки Yii
Шаги для Windows и Mac
Создание базы данных MySQL
Предполагая, что PHPmyAdmin установлен на вашем сервере WAMP (он включен в MAMP), вы можете создать базу данных через графический интерфейс PHPmyAdmin, но мы собираемся взять в руки и использовать командную строку SQL, что, честно говоря, не требует гораздо больших усилий.
В командной строке Windows перейдите в папку MySQL, набрав:
1
|
cd \wamp64\www\bin\mysql\mysql5.7.14\bin
|
Вы также можете сделать это из любого места, пока WAMP или MAMP находятся в пути к вашей локальной среде.
Затем для Mac и Windows введите:
1
|
mysql -u root -p
|
Это приведет нас к командной строке mysql. Теперь мы выполним следующую команду в SQL:
1
|
create database yii2test;
|
(Вы можете называть базу данных как угодно, при условии, что вы используете правильное имя на протяжении всего процесса.)
Теперь мы создадим имя пользователя и пароль для этой базы данных, введя следующие команды SQL:
1
2
3
|
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.
Чтобы инициализировать Yii advanced, нам нужно перейти в папку приложения Yii-Advanced. В этом случае это будет:
1
|
cd \wamp64\www\yii-advanced\
|
Затем введите init
:
Это запустит скрипт инициализации, который спросит вас, хотите ли вы инициализировать Yii для среды разработки или производства; скорее всего это будет выглядеть так:
1
2
3
4
|
Which environment do you want the application to be initialized in?
[0] Development
[1] Production
|
В этом руководстве мы будем работать в среде разработки, поэтому введите 0 и нажмите ввод, а затем введите «да» (без кавычек), когда будет предложено, и инициализация будет завершена.
Мы почти закончили — все, что осталось сейчас, — это несколько шагов настройки, и вы можете приступить к программированию с 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 не будут играть хорошо!
И, пожалуйста, даже не думайте об использовании имени пользователя и пароля корневой базы данных в файле конфигурации! [Джефф здесь … правда, нет.]
Использование инструмента миграции Yii
У Yii Advanced есть свои миграции. Теперь, когда MySQL настроен, нам понадобятся несколько таблиц. Миграции Yii создают таблицы и схемы в базе данных MySQL программно.
Чтобы запустить средство миграции Yii в Windows, нам нужно перейти в каталог установки Yii, набрав:
1
|
cd \wamp64\www\yii-advanced\yii-application
|
Опять же, вы можете установить его без родительского каталога, который Род создал для этой демонстрации. Например, для MAMP я использую:
1
|
$ cd ~/sites/yii-advanced
|
Теперь введите следующую команду:
1
|
yii migrate
|
Через мгновение вас спросят, хотите ли вы "Apply the above migration?"
Введите Yes
и нажмите Return. Если все пойдет хорошо, мы получим сообщение, что 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 в Твиттере или зайдите на страницу моего инструктора . Моя страница инструктора будет включать все статьи из этой серии, как только они будут опубликованы.