В этой записи, я подробно опишу процесс устанавки 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» и вы должны увидеть, что-то похожее на это:
Теперь удалим 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: Настройка