Magento 2.3.5 установка локально на Open Server

5 (100%) 4 vote[s]

Наверное, у многих локальная установка Magento CMS удалась не сразу. В сети есть много инструкций касательно установки на XAMPP, но именно Open Server рассматривается реже и полностью рабочие решения, пригодные для первой установки новичку последней версии magento, найти трудно. Из опробованных на локальном сервере фреймворков (в т.ч. Laravel) с Magento (разработана на Zend Framework) пришлось повозиться особо долго.



Установка локально может быть выполнена двумя способами и с использованиеv двух дистрибутивов с открытым исходным кодом:

    • Установка при помощи мастера установки (веб-установки из браузера).
    • Установки из командной строки с использованием composer.

Установка из командной строки в несколько раз быстрее (1-2 мин команды для консольной установки см. в конце статьи). Монтаж при помощи мастера может длиться до 10 мин (бывает и дольше!).

Устанавливать можно либо чистый CMS (без образцов данных), либо Magento Sample Data — CMS с предустановленными демо-данными. Найти их в виде архивов для скачивания можно на официальной странице загрузок (чтобы скачать, нужно регистрироваться).

Регистрация нужна и для получения публичного и приватного Access key, которые впоследствии будут использоваться для управления из админ панели модулями, обновлениями и т.п.

Там же можно найти архивы с ранними версиями Magento, а также другие важные ссылки (системные требования, установка и настройка Magento Testing Framework (MTF), практическое руководство по концепциям и лучшим практикам оформления тем для магазинов Magento).

Системные требования

Рекомендуем внимательно прочитать системные требования для стека, а именно:

Веб-серверы: Apache 2.4 и nginx 1.х. 

В Apache должны быть включены mod_rewrite и  mod_version.

Модуль mod_rewrite позволяет серверу выполнять URL переписывания, а модуль mod_version обеспечивает гибкую проверку версии для различных httpd версий.

В Open Server mod_rewrite включен по умолчанию, а вот модуль mod_version — нет. Его нужно будет включить вручную. Его отсутствие будет причиной появления при загрузке страниц Magento ошибки 500 при попытке подключить стили и скрипты. Так будет выглядеть страница после успешной установки Magento, без подключенного модуля mod_version:

База данных: MySQL 5.6, 5.7 а также MariaDB 10.0, 10.1, 10.2 (только те её функции, которые совместимы с MySQL).

PHP: Magento рекомендует использовать PHP 7.3. Установка Magento из GitHub больше не будет работать с PHP 7.1 и ниже.

Установка Magento на Open Server по шагам

Шаг 1.

После скачивания и распаковки пакета переносим его в папку OSPanel/domains и переименовываем, как надо (мы выбрали просто magento — для тестирования). Можете заранее назвать так, какой адрес будет у будущего магазина (shop.com, или supermarket.net …)

Шаг 2.

Настраиваем локальный сервер. Запустите Open Server, в панели задач появится зеленый флажок, кликните по нему. В появившемся меню выберите «настройки».

В появившейся панели перейдите в «модули» и установите значения для Apache, php, db, как в gif изображении ниже. Впоследствии можете включить и настроить Memcashed и Redis для более быстрой загрузки страниц.

Настраиваем Apache и php. Важно помнить, что настройки следует выполнять из панели управления Open Server. Если редактировать файлы (php.ini и т.д.), то изменения сохраняться не будут. Настройки apache/php находятся по пути: Дополнительно/Конфигурация:

В файле :\OSPanel\userdata\config\Apache_2.4-PHP_7.2-7.3-x64_server.conf

в разделе Modules находим LoadModule rewrite_module modules/mod_rewrite.so и смотрим, чтобы он не был закомментирован (не было вначале строки хеша #):

и убираем хеш перед LoadModule version_module modules/mod_version.so:

Шаг 3.

Настраиваем php.ini

В разделе Limits устанавливаем такие значения:

max_execution_time = 18000;

max_input_time = 1800;

В разделе Extensions включаем модуль php_intl (или добавляем его, ели нет):

Шаг 4.

Редактирование файлов Magento.

1. Редактируем условие (это новое условие добавлено в Magento 2.3.5), запрещающее показ образа в файле Gd2.phpпо пути /vendor/magento/framework/image/adapter/Gd2.php.

Находим в нем функцию  validateURLScheme и добавляем условие:

private function validateURLScheme(string $filename) : bool
  {
      $allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
      $url = parse_url($filename);
      if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes) && !file_exists($filename)) {
          return false;
      }

      return true;
  }

Это решение для локальной установки (для реального сервера это работает без костылей), поскольку в Windows на файл образа ссылается структура каталогов (то есть: D: / OSPanel /domains …..), поэтому в ValidateURLScheme не проходит проверку.

Это исправит ошибку, которая может появиться в самом начале установки на 0%:

2. Исправляем проблему, которая также возникнет при получении пути к темплейтам (не тот слеш используется для разделения пути). В этом случае после вроде бы успешной установки будет просто пустая страница Magento.

В файле vendor/magento/framework/View/Element/Template/File/Validator.php

находим функцию (ст.133)

protected function isPathInDirectories($path, $directories)
{
if (!is_array($directories)) {
$directories = (array)$directories;
}
$realPath = $this->fileDriver->getRealPath($path);
foreach ($directories as $directory) {
if (0 === strpos($realPath, $directory)) {
return true;
}
}
return false;
}

и добавим в неё $realPath = $this->fileDriver->getRealPath($path) и вместо $directory укажем $realDirectory:

protected function isPathInDirectories($path, $directories)
    {
        if (!is_array($directories)) {
            $directories = (array)$directories;
        }
        $realPath = $this->fileDriver->getRealPath($path);
        foreach ($directories as $directory) {
			$realDirectory = $this->fileDriver->getRealPath($directory);
            if (0 === strpos($realPath, $realDirectory)) { 
			return true;
			} 
        }
        return false;
    }

3. Редактируем app/etc/di.xml.

В строке 724 меняем Symlink на Copy

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
        <arguments>
            <argument name="strategiesList" xsi:type="array">
                <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
                <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
            </argument>
        </arguments>
    </virtualType>

4. Редактируем .htaccess

Вот рабочий вариант magento/.htaccess для локальной установки:

Развернуть код:

Шаг 5.

Создаем базу данных.

Переходим в браузере по адресу http://127.0.0.1/openserver/phpmyadmin/ (или из меню Open Server Доплонительно/PhpMyAdmin), жмем в левой панели в самом верху на «Создать базу данных»

В появившемся пустом поле вводим название (например, одноименная magento), жмем «создать». Кодировку оставляем по умолчанию (utf8mb4_unicode_ci).

Шаг 6.

Устанавливаем разрешения для папок проекта. Открываем командную строку из меню Open Srever Дополнительно/Консоль

Переходим в папку domains:

cd domains

Вводим команду, жмём enter:

chmod -R 777 magento

, где magento — название папки сайта.

Всё готово для запуска установки.

Перезапускаем сервер, в меню Open Server переходим в «мои сайты», находим в появившемся списке новый созданный (в нашем случае мы вначале назвали папку magento) и в открывшемся браузере появится окно мастера установки.

Соглашаемся с условиями и начинается установка. Мастер проведет пользователя через все 6 шагов подготовки к установке. Сам процесс длительный, особенно при загрузке модуля Google Shopping (где-то на 59-69%), так что нетерпеливым придется подождать. Процесс долгий (на редкость) до раздражения. Вообще, на Open Server Magento работает крайне медленно, по первому впечатлению.

Если все прошло гладко, появится сообщение об успешной установке.

Делаем переиндексацию и очищаем кеш, используя командную строку:

cd domains
cd magento
php bin/magento indexer:reindex
php bin/magento cache:clean

Переходим по ссылке в магазин, смотрим, как выглядит (Luma по умочанию):

И админку:

PS:

Установка из консоли:

cd domains
php bin/magento setup:install --backend-frontname=magento --db-host=localhost --db-name=magento --db-user=root --db-password= --base-url=http://magento --language=uk_UA --timezone=Europe/Kiev --currency=UAH --use-rewrites=1 --admin-user=Admin --admin-password=mA_g4eNto_aDmin --admin-email=my@mail.com --admin-firstname=Nachalnik --admin-lastname=Upravlentsev

Читайте больше по теме:

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments
Просмотры: 250

Популярные записи