Установка приложения на Yii2 через composer

Как я устанавливаю advanced приложение Yii2

Исходные данные. ОС: Linux Mint 18.1 (Serena). Рассмотрим на примере локального сайта blog.local:

1. В первую очередь прописываем локальный адрес в /etc/hosts

127.0.0.1 blog.local

2. Физически файлы всех локальных сайтов я размещаю в папках /home/kostya/server/. Конкретно сайт http://blog.local расположен в папке /home/kostya/server/blog.local. Помещаем в папку /etc/apache2/sites-available файл blog.local.conf следующего содержания:

		<VirtualHost *:80>
			ServerAlias blog.local www.blog.local
			DocumentRoot /home/kostya/server/blog.local/frontend/web
			<Directory home/kostya/server/blog.local/frontend/web/>
				RewriteEngine on
 
				# Если запрашиваемая в URL директория или файл существуют обращаемся к ним напрямую
				RewriteCond %{REQUEST_FILENAME} !-f
				RewriteCond %{REQUEST_FILENAME} !-d
				# Если нет - перенаправляем запрос на index.php
				RewriteRule . index.php
 
				AllowOverride All
				Require all granted
			</Directory>
 
			Alias /admin /home/kostya/server/blog.local/backend/web 
			<Directory home/kostya/server/blog.local/backend/web/>
				RewriteEngine on
				#Если запрашиваемая в URL директория или файл существуют обращаемся к ним напрямую
				RewriteCond %{REQUEST_FILENAME} !-f
				RewriteCond %{REQUEST_FILENAME} !-d
				# Если нет - перенаправляем запрос на index.php
				RewriteRule . index.php
 
				AllowOverride All
				Require all granted
			</Directory>
		</VirtualHost>
 

3. Включаем сайте и перезапускаем сервер:

sudo a2ensite blog.local.conf sudo service apache2 restart

4. Устанавливаем composer. Как я устанавливал composer уже не помню, поэтому этот пункт я дополню позже, а пока оставлю инструкцию найденную в Интернете. Скорее всего я так и делал.

	curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 

5. Переходим в папку /home/kostya/server/ и выполняем одну из двух команд:

  • для базовой версии:
    		composer create-project --prefer-dist yiisoft/yii2-app-basic blog.local 
  • для расширенной версии:
    		composer create-project --prefer-dist yiisoft/yii2-app-advanced blog.local 

6. Переходим в папку blog.local и выполняем следующую команду:

php init 

И на вопрос:

Which environment do you want the application to be initialized in?

выбираем 0 для развёртывания окружения разработчика и 1 для выбора окружения готового для развёртывания приложения. Я выбрал 0 для начала работы. Ну и собственно приложение развёрнуто.

7. Следующим шагом идёт как вариант миграция базы данных. Для начала на локальном сервере создаём базу данных и прописываем соответствующие настройки в файле /blog.local/common/config/main-local.php. Далее нужно перейти в папку blog.local и выполнить команду

php yii migrate 

Появится список миграций. И на вопрос:

Apply the above migration? (yes|no) [no]:

ответить yes. И миграция выполниться. Миграции, которые в приложении по умолчанию находятся в папке /console/migrations/ . После этого переходим на страницу http://blog.local/index.php?r=site/signup и создаём нужную учётную запись.

Возможные проблемы при установке

  1. Проблемы с composer

    Если стандартным описанным методом не удаётся установить composer, то я выполнял следующие команды, найденные на просторах интернета:

    		rm -rf ~/.composer/vendor/fxp composer global require "fxp/composer-asset-plugin:~1.1.1" rm -rf vendor composer install 
  2. Проблемы с правами

    Когда в 6-ом пункте выбираете тип инициализации приложения: development или production. Я когда выбирал сразу production у меня вылезала ошибка 500 сервера. Анализ логов Apache указал на проблему с правами папки assets. Проблема разрешалась путём установки прав на запись для папок:

    • frontend/assets
    • backend/assets

Полезные материалы по теме

Ссылки:

Видео

Настройка debug-панели

Решил сюда добавить кратко информацию по поводу debug-панели. Включать и выключать панель можно в файле /frontend/config/main-local.php закомментировав или раскомментировав код


	$config['bootstrap'][] = 'debug'; 
	$config['modules']['debug'] = [ 
		'class' => 'yii\debug\Module', 
		'allowedIPs' => '*', 
	]; 

Вот хорошее видео про debug-панель:

Тэги:

Приложения: 

Тэг в списке: