Статьи

Как установить Yii на Windows или Mac

Конечный продукт
Что вы будете создавать

Хотите узнать больше о 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 — невероятно надежная, хорошо спроектированная, высокопроизводительная среда для PHP, так как Rails для Ruby и похож на Laravel. Если вам интересно, можете ли вы создавать реальные приложения в Yii, ознакомьтесь с Meeting Planner и нашей серией « Построение стартапа ».

  • Как программировать с Yii2: использование расширенного шаблона приложения

  • Создание вашего стартапа с помощью PHP: Содержание

Я люблю кодировать в Yii. Все быстрее и проще для меня. И это относительно просто в том, что касается фреймворков ( это я бросаю тень на Rails ).

Мы начнем с основ уникальной установки Yii в macOS, а затем перейдем к Windows. Поскольку то, что необходимо для завершения установки на каждой платформе, сходится, мы опишем остальные инструкции в единой форме для обеих платформ.

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 также предоставляет встроенную поддержку конфигурации для различных сред, облегчая групповую разработку.

Я программирую в Yii на macOS уже несколько лет. Конечно, есть много разных способов запуска среды Apache, MySQL, PHP на Mac, но я предпочитаю MAMP.

Установите Yii на Windows или Mac - домашняя страница веб-сайта MAMP

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

Установите Yii на Windows или Mac - страница загрузок MAMP

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

Установите Yii на Windows или Mac - окно MAMP

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

Установите Yii на Windows или Mac - Настройка портов настроек MAMP

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

Установите Yii на Windows или Mac - MAMP Preferences Настройка веб-сервера

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 .

Для Yii на Windows мы будем использовать WAMP . Для начала вам нужно скачать и настроить WAMP на вашем компьютере с Windows. Для этого урока мы будем устанавливать WAMP на ваш локальный компьютер (который сервер будет называть локальным). Если вы хотите установить на рабочий сервер Windows, вам необходимо связаться с вашим провайдером для получения подробной информации о сервере и следовать рекомендациям по установке и настройке сервера WAMP или альтернативного стека Apache, MySQL, PHP для этой среды.

Установите Yii на Windows или Mac - Домашняя страница WAMPSERVER

Так как основное внимание в этом руководстве уделяется установке Yii, мы рекомендуем вам обратиться к одному из множества превосходных существующих учебных пособий, посвященных установке WAMP ; Вы будете удивлены, насколько это просто. Так как это приложение PHP, руководство по установке WAMP в WordPress является хорошей отправной точкой.

После того, как мы установили и настроили WAMP, нам нужно установить Composer, который является менеджером зависимостей и установщиком для проектов PHP. Это позволит нам начать установку Yii.

Хотя вы можете загрузить пакеты 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 .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 \ 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.

Если вы хотите настроить адреса локальных браузеров для своего сайта или четко ссылаться на внешний и внутренний интерфейсы сайта 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

Это будет выглядеть так:

Установите Yii на Windows или Mac - Windows Host Config

Вы можете найти больше информации о поиске и настройке файла Windows Host здесь .

Рекомендуется проверить, включены ли виртуальные хосты в файле 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.

Установите Yii на Windows или Mac - Windows Virtual Host Config

Обратите особое внимание на строки DocumentRoot и Directory . Оба они должны содержать полный путь к каталогу приложения Yii вплоть до «веб-файла», который находится в каталогах frontend и backend соответственно. Содержимое DocumentRoot и Directory идентично, за исключением того, что путь для Directory содержится в кавычках.

Чтобы установить расширенный шаблон 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 на Windows или Mac - Composer установите Yii-Advanced

До сих пор установка Yii Basic и Yii Advanced была одинаковой. Теперь нам нужно добавить еще несколько шагов, чтобы подготовить расширенный шаблон Yii к действию.

Предполагая, что 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 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 на Windows или Mac - Результаты Yii Init

Для Yii-basic вы будете редактировать /yii-basic/config/db.ini . Для Yii-advanced вы будете редактировать /yii-advanced/common/config/main-local.php .

Для редактирования этого файла нам понадобится текстовый редактор. Atom — отличный выбор, который хорошо послужит вам, если вы углубитесь в более сложное кодирование.

Чтобы открыть файл конфигурации, используйте раскрывающийся список « Открыть файл» в текстовом редакторе или перейдите непосредственно к файлу конфигурации с помощью проводника Windows, щелкните правой кнопкой мыши « Открыть с помощью» и выберите текстовый редактор. (В Windows вам может потребоваться запустить текстовый редактор от имени администратора.)

Следующий пример из установки, которую мы используем сегодня, иллюстрирует этот процесс. Имейте в виду, что вы можете использовать другое обозначение диска и иметь несколько иной путь в зависимости от того, как вы назвали свои папки.

Файл конфигурации должен выглядеть примерно так:

Установите Yii на Windows или Mac - основной локальный INI-файл конфигурации Yii

Не забудьте ввести те же имя пользователя и пароль, которые вы использовали для настройки базы данных Yii MySQL, в противном случае Yii и MySQL не будут играть хорошо!

И, пожалуйста, даже не думайте об использовании имени пользователя и пароля корневой базы данных в файле конфигурации! [Джефф здесь … правда, нет.]

У 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 на Windows или Mac - результаты миграции Yii

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

Установите Yii на Windows или Mac - Домашняя страница по умолчанию для вашего сайта Yii

Для Yii Advanced вам может понадобиться попробовать frontend.dev или включить веб-сайт или внутренний сервер, например, localhost:8888/frontend . Если вы не включите свой хост-файл, вы можете получить доступ к Yii напрямую через путь localhost:8888/web .

Если вы установили расширенный шаблон, перейдите по ссылке « Регистрация» и введите имя пользователя, адрес электронной почты, который вы хотите использовать, и пароль.

Не используйте свой пароль MySQL (тот, который вы ввели в конфигурационный файл PHP). Это база данных учетных записей пользователей Yii с новыми именами пользователей и паролями.

Ваша первая регистрация пользователя также будет административным пользователем приложения Yii с доступом ко всему.

Теперь, когда вы зарегистрированы, введите в браузере:

backend.dev

Вы должны получить экран входа администратора, где вы можете ввести новое имя пользователя и пароль:

Экран входа в систему Yii

Это вернет вас обратно на страницу Yii « Congratulations », но вы уже прошли проверку подлинности.

Теперь со всеми поздравлениями, почему бы не поздравить себя, поскольку вы только что успешно установили Yii. Красиво сделано. [Джефф, если вы сделали это в Windows, купите Mac и попробуйте там.]

Я надеюсь, что наш учебник сегодня поможет вам начать работу с Yii. Род и мне понравилось писать это вместе.

Следите за будущими уроками в нашей серии «Программирование на Yii2», поскольку мы продолжаем изучать различные аспекты фреймворка. Обязательно ознакомьтесь с нашей серией «Построение стартапа с помощью PHP», в которой используется расширенный шаблон Yii2 при создании реального приложения.

Как программировать с помощью эпизода «Приступая к работе» в Yii очень подробно рассказывает о настройке Yii basic и производственного сервера Linux.

Если вы хотите узнать, когда появится следующий учебник по Yii2, следуйте за мной @reifman в Твиттере или зайдите на страницу моего инструктора . Моя страница инструктора будет включать все статьи из этой серии, как только они будут опубликованы.