Yii2 basic: Установка LAMP, Composer и Yii2 basic

· Yii2 basic · 7 мин чтения

В этой записи, я подробно опишу процесс устанавки LAMP, Composer и Yii2 basic. По каждому пункту будет отдельный заголовок, чтобы вы не путались и могли подробнее разобраться.

Эта запись относится к курсу Yii2 basic.

Установка LAMP

Пропустите эту секцию, если LAMP у вас уже установлен.

LAMP — это аббревиатура для Linux, Apache, MySQL и PHP. Из всего этого нам нужно установить только PHP, MySQL и Apache, так как Linux у вас должен быть предустановлен.

Для Windows пользователей устанавливать LAMP не нужно, потому что у них есть такие альтернативы как «WAMP», «MAMP» и др., скачивая которые, вы получаете уже предустановленный PHP, Apache и MySQL.

Чтобы не повторяться, я буду ссылаться уже на существующее описание установки LAMP в своем блоге.

Там вас интересуют только следующие заголовки (Ctrl + F для быстрого поиска):

  • «Установка Apache»
  • «Установка PHP»

Для установки MySQL используйте следующие команды:

$ sudo apt-get update
$ sudo apt-get install mysql-server
$ sudo mysql_secure_installation
$ sudo mysql_install_db

Во время установки MySQL, вас будут спрашивать ввести пароль для root пользователя. Далее спросят хотите ли вы изменить только что установленный пароль. Если вы хотите оставить текущий пароль, просто введите «n» или «y», чтобы изменить его.

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

После установки не забудьте проверить все установленные пакеты.

$ sudo service {package_name} status

Вместе «{package_name}» пишите название пакета.

  • mysql для MySQL

Примерный вывод:

$ sudo service mysql status
mysql start/running, process 1333
  • apache2 для Apache

Примерный вывод:

$ sudo service apache2 status
* apache2 is running

Для PHP просто введите php -v, у вас выведется что-то похожее на:

PHP 5.5.9-1ubuntu4.22 (cli) (built: Aug  4 2017 19:40:28) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

Только версия у вас будет 7.0, у меня старее, но сути это никакой не меняет.

Если какой-либо из процессов не будет запущен, например apache2 или mysql, то запустить его можно так же  service командой, только заменив start на restart:

$ sudo service {package_name} restart

Установка Composer

Вот официальный сайт Composer, там много воды о том, что это такое, но кратко — это пакетный менеджер для PHP.

Процесс установки прост. Вводите следующее в консоль и вся работа будет выполнена за вас:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Внимание! Если у вас выдает ошибку во время установки, вероятнее всего код установки изменился на оф. сайте Composer’a. Обновленную версию кода вы можете посмотреть на тут, а так же напиши в комментарий об этом, чтобы я не забыл исправить это ;)

Далее вам нужно проверить успешную установку, напишите в консоли:

composer

У вас должна показаться информацию о Composer, если выводится список опций, то все окей, можно продолжать.

Настройка hosts, Apache

Если вы не установили Composer, то не начинайте читать эту секцию. Сначала установите его — это важно!

После успешной установки LAMP и Composer, вы можете создать новую папку в /var/www/ под названием yii-dev, а так же папку для логов внутри:

$ sudo mkdir /var/www/yii-dev
$ sudo mkdir /var/www/yii-dev/logs

Настройка hosts

Теперь важно настроить локальный домен, допустим он будет yii.loc. Чтобы мы могли ввести в адресной строке браузера http://yii.loc и попали на то, что мы разрабатываем.

$ sudo nano /etc/hosts

Внутри вы должны видеть следующую строчку:

127.0.0.1       localhost

Замените её на:

127.0.0.1       localhost      yii.loc

Чтобы когда мы будем вписывать «http://yii.loc» в браузере, система понимала, что это локальный домен.

Настройка Apache

Далее нужно сделать запись в папке /etc/apach2/sites-enabled с конфигом нового домена:

$ sudo nano /etc/apache2/sites-available/yii-loc.conf

После этого нужно ввести следующее:

<VirtualHost *:80>
    ServerAdmin info@yii.loc
    DocumentRoot "/var/www/yii-dev"
    ServerName yii.loc

    ErrorLog "/var/www/yii-dev/logs/error.log"
    CustomLog "/var/www/yii-dev/logs/access.log" common
</VirtualHost>

И потом нужно сделать ссылку на этот файл из sites-enabled:

$ sudo ln -s /etc/apache2/sites-available/yii-loc.conf /etc/apache2/sites-enabled/yii-loc.conf

В конце нужно перезагрузить Apache:

$ sudo service apache2 restart

Если ошибок нет — супер, если есть, то возможно она связано со следующим:

(2)No such file or directory: AH02291: Cannot access directory '/var/www/yii-dev/logs/' for error log of vhost defined at /etc/apache2/sites-enabled/yii-loc.conf:1
AH00014: Configuration check failed
Action 'configtest' failed.

Это означает, что вы не создали папку logs внутри /var/www/yii-dev/, делается это следующим образом:

$ sudo mkdir /var/www/yii-dev/logs/

Потом снова перезапустите Apache.

У вас может писать сообщение по типу:

* Restarting web server apache2                                                                                                                                                                AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
                                                                                                                                                                                        [ OK ]

Но пока вы видите «[ OK ]», тогда не парьтесь, все работает как должно.

Проверяем работу hosts и Apache

$ sudo nano /var/www/yii-dev/index.php

Внутри напишите следующее:

<?php 
phpinfo();

Нажмите F2, введите «Y» и нажмите Enter.

После чего зайдите на «http://yii.loc» и вы должны увидеть, что-то похожее на это:

phpinfo() примерный вывод

Теперь удалим index.php, так как он больше не нужен:

sudo rm /var/www/yii-dev/index.php

Установка Yii2 basic

Введите следующие три команды, чтобы установить Yii2 basic:

$ cd /var/www/yii-dev/
$ composer global require "fxp/composer-asset-plugin:^1.3.1"
$ composer create-project --prefer-dist --dev yiisoft/yii2-app-basic basic

Далее введите ll, у вас должно вывестись следующая структура:

total 36
drwxr-xr-x  4 root root  4096 Aug 22 17:45 .
drwxr-xr-x  9 root root 20480 Aug 22 16:50 ..
drwxr-xr-x 13 root root  4096 Aug 22 17:46 basic
drwxr-xr-x  2 root root  4096 Aug 22 16:51 logs

Папка basic — это место, где лежат все файлы от Yii2 basic. Все что нам нужно сделать — это вытащить все из неё в yii-dev :

$ sudo mv -f /var/www/yii-dev/basic/* /var/www/yii-dev/

Возможно вам нужно будет перенести некоторые файлы из папки basic вручную или используя команды ниже. Например, такие как .bowerrc или .gitignore. Только после этого удаляйте ее.

Для этого можно воспользоваться следующей командой:

$ sudo mv /var/www/yii-dev/basic/.[!.]* /var/www/yii-dev/

Внимание! Все равно проверьте остались ли какие-то файлы в папке basic и если да, то перенесите их вручную используя UI, Ctrl + E и пройдите в «/var/www/yii-dev/basic» и перенесите в «/var/www/yii-dev/» или же используйте mv и пересите каждый файл отдельно.

и после удалить папку basic, так как она нам больше не нужна:

$ rm -rf basic

После нам нужно присвоить assets пользователю www-data(это пользователь по умолчанию, который идет от Apache или Nginx, в нашем случае первое) и установить 775 как права для записи:

$ cd /var/www/yii-dev
$ sudo chown -R www-data:www-data assets
$ sudo chmod -R 775 assets

Первая строка не обязательная, я ее добавил для понимаю где вам нужно быть, чтобы запустить chown/chmod команды.

Вторая строка поменяет пользователя и группу на www-data, вторая поменяет права на запись на 775.

Проверяем правильно ли мы все сделали

Если вы зайдете на «http://yii.loc/web/», то вы должны увидеть следующее:

Yii2 basic успешная установка

Если у вас ничего не выводится, тогда прочитайте этот пост еще раз внимательно (возможно вы что-то упустил). Если все совпадает, но Yii2 basic все равно не отображается, то пишите комментарии ниже, я постараюсь вам помочь.

Читать далее — Yii2 basic: Настройка