четверг, 21 июня 2018 г.

Установка Magento 2 на базе LAMP-сервера Debian

Установка Magento 2.2.4 на базе LAMP-сервера Debian

Установка Debian 9.4.0 x64 (CD-образ с xfce)

[сама установка Debian пропущена, первоначальная установка идёт без сети, зато с рабочим столом]
Настройки:
  1. Когда Интернет настроен, в файл /etc/apt/sources.list добавляем строку:
# Nano sources.list:
deb ftp://ftp.ru.debian.org/debian stable main contrib non-free
# apt update
  1. # apt install mc (если нужно)
  2. В окне консоли: Правка-настройки на последней вкладке установить флажки на быстрые клавиши (то есть, отключить их).
  3. # apt install apache2
  4. Проверяем, запускается ли web-сервер. Открываем FireFox и набираем 127.0.0.1
  5. Создаём папку: # mkdir /var/www/magento
В неё надо распаковать скачанный архив magento (Magento-CE-2.2.4_sample_data-2018-05-01-09-43-25.zip)
Например:
# unzip Magento-CE-2.2.4_sample_data-2018-05-01-09-43-25.zip -d /var/www/magento
  1. В папке /etc/apache2/sites-available создаём файл имеющий название как и домен с нашим сайтом + слово «.conf», например: aaa.bbb.conf с таким содержимым:
<VirtualHost *:80>
ServerName aaa.bbb
ServerAlias www.aaa.bbb
DocumentRoot /var/www/magento
<Directory /var/www/magento>
Options -Includes -Indexes -ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
Регистрируем сайт: # a2ensite aaa.bbb
Перезагружаем apache: # systemctl reload apache2 или # service apache2 reload
  1. Так как виртуальные хосты создаются на одном ip адресе, то проверить наш сайт вбив в браузер ip-адрес не получится. Нужно обязательно вводить имя: например, aaa.bbb. Но в нашем случае такого реального адреса не существует на DNS-серверах, придётся нам вписать его в файл /etc/hosts:
127.0.0.1 aaa.bbb
127.0.0.1 www.aaa.bbb
Если хотите сделать чтобы сайтом по умолчанию был наш, тогда можно удалить текущую заглушку:
# a2dissite 000-default
Конечно, если у нас будет несколько виртуальных хостов, тогда надо будет еще чего настроить.
Не забудем перегрузить апач.
  1. Проверяем работу web-сервера. Создаём в папке /var/www/magento файл index.html с таким содержимым:
<html>
Hello world
</html>
Вводим в браузере: aaa.bbb/index.html
(из-за опции AllowOverride All, которая разрешает использовать файл настроек .htaccess, в котором жестко прописан index.php нам пришлось вручную дописать index.html).

И, возможно, надо изменить права на этот файл (см. пункт 12).
  1. Устанавливаем php: # apt install php7.0 (вместо «php7.0» можно использовать «php» и будет установлена текущая актуальная версия PHP)
  2. Создаём в папке /var/www/magento файл index2.php с таким содержимым:
<?php
phpinfo();
?>
Вбиваем в браузере aaa.bbb/index2.php (должна отобразиться информация о PHP)
(возможно, перед этим следует перезагрузить Апач)
  1. Файлам в /var/www/magento скорее всего надо дать права пользователя www-data:
# chown -R www-data:www-data /var/www/magento/
  1. Устанавливаем DOM: # apt install php7.0-dom (нужно для корректного запуска установки magento). Необходимость в нём была выяснена в процессе поиска ошибок трудных. Перезагружаем Апач.
  2. Теперь можно запустить установку Магенто (хотя бы для того, чтобы узнать его требования к системе). Вводим в браузере aaa.bbb (теперь уже не надо вводить index.php)

Предлагает согласиться и начать установку. Потом предложит проверить системные требования к ПО, вот приблизительный результат проверки:





В принципе, я мог бы и не показывать всех этих ошибок, а просто заранее сказать, какие надо установить расширения. Однако не исключено, что у вас будут другие ошибки, и вы будете более-менее знать, как с ними бороться.
С версией PHP нам повезло. Иначе пришлось бы ставить другую версию, возможно качая с официального сайта. Но это уже выходит за рамки этой кратчайшей инструкции.
Вторую ошибку GD пропустим, она сама собою исправится после установки модулей.
Теперь удовлетворим требования к расширениям PHP:
  1. # apt install php7.0-curl
# apt install php7.0-gd
# apt install php7.0-mcrypt
# apt install php7.0-intl
# apt install php7.0-mbstring
# apt install php7.0-pdo-mysql
# apt install php7.0-soap
# apt install php7.0-zip
# apt install php7.0-bcmath

Перезагружаем Апач, опять вводим в браузер aaa.bbb и опять смотрим на проверку требований к ПО. На этот раз у меня всё нормально.


  1. Чтобы можно было продолжить дальнейшую установку нам еще необходимо установить MySQL:
# apt install mysql-server
И на всякий случай: # apt install php7.0-mysql
  1. Установим популярный клиент к базе: # apt install phpmyadmin. Если спросит для какого сервера – укажем apache. Введём пароль «1». Добавим пользователя под которым будем заходить в phpmysql:
# mysql -u root -p (спросит пароль – у нас: 1)
> create user 'пользователь'@localhost identified by 'пароль'; (пароль в кавычках)
> grant all privileges on *.* to 'пользователь'@localhost;
> grant grant option on *.* to 'пользователь'@localhost;
> flush privileges;
> quit;
Заходим в панель, вводим в браузере: aaa.bbb/phpmyadmin
Выберем нужный язык, пользователь и пароль те, которые вы придумали чуть выше.

Я завёл пользователя sqluser.
Создаём базу для Магенто: выбираем Создать БД. Имя базы, например, magento_db. Сравнение: utf8_general_ci:


Жмём кнопку «Создать», и в общем-то всё. Таблиц добавлять не надо. Система Магенто сама будет делать то, что ей нужно. Можно нажать кнопку «выход» (она под надписью phpMyAdmin).
  1. Возвращаемся к установке Магенто, теперь после проверки конфигурации можем продолжить и ввести данные для доступа к базе данных:

  1. Следующий шаг можете оставить как есть:

  1. Подправляем часовые пояса и язык.
  2. Создаём пользователя для входа в саму систему Магенто.
  3. Приступаем к инсталляции…
Иногда инсталляция может остановиться на каком-то проценте. Возможно, надо для php увеличить настройки memory_limit и max_execution_time. О них даже упоминается в файле php.ini.sample, который находится в папке magento.
Вообще, существует способ установить магенто и без браузера. Ищите в Интернете информацию о командной строке начинающуюся на php bin/magento setup:install
  1. Когда закончится инсталляция, надо нажать на кнопке «Launch magento admin»

  1. Возможно отобразится ошибка 404, и хз что делать :)
  2. Однако aaa.bbb покажет наш магазин. Если он без стилей, то попробуйте выполнить эти команды находясь в папке /var/www/magento:
# php bin/magento setup:static-content:deploy -f ru_RU en_US (ключ -f так как без него не хочет работать).
# php bin/magento indexer:reindex

Если установка была прервана, то возможна потом проблема с MySQL. Поэтому, лучше найти вручную папку с базой данных magento_db и удалить её. Обычно расположение этой папки указано в файле /etc/mysql/mariadb.conf.d/50-server.cnf опция datadir.