Активируем Laravel UI на Timeweb

 

Vue может пригодиться для создания современного быстрого динамического приложения. А удобнее всего активировать его функции уже встроенные в Laravel.

Для этого в первую очередь необходимо активировать компоненты laravel ui. В простейшем случае делается это командой:

    //вызывается из консоли (SSH)
    
   composer require laravel/ui
  

Данная установка достаточно объемная и требует много места и свободной оперативной памяти. И здесь придется столкнуться с некоторыми трудностями на дешевых тарифах хостинга от Timeweb. Например, с сообщениями об ошибках такого плана.

    // (SSH)
    PHP Fatal error:  Allowed memory size of 1073741824 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 129
  

Причина здесь простая. В Таймвебе на дешевых тарифах по умолчанию выделяется 1024 мБ на исполнение команд. Для увеличения памяти необходимо преобразовать команду в такой вид.

    //вызывается из консоли (SSH)
    
   /usr/bin/php -d memory_limit=4024M /usr/local/bin/composer require laravel/ui --ignore-platform-reqs
  

Скорее всего у вас, в целом, команда скорее всего будет иметь именно такой вид. Исключение могут составлять случаи когда php расположен в папке отличной от /usr/bin/php (в этом случае команда выведет ошибку). Для уточнения точного расположения папки можно использовать команду

    //вызывается из консоли (SSH)
    
   which php
  

Если же все указано верно, то начнется процесс установки компонентов ui.

 

Начало установки компонентов ui

 

Процесс достаточно долгий, устанавливаемых файлов много. Занимает некоторое время, придется подождать, прежде чем он будет закончен. Также при установке будут выводится предупреждения. В принципе, на них можно не обращать внимания. О причинах написано здесь.

    // (SSH)
    
   Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
  

Дальше может проявится проблема совместимости версий. Выглядит это примерно так:

 

Проблемы совместимости версий
Проблемы совместимости версий

 

В целом это означает, что мы пытаемся установить последнюю версию пакета ui, но он не совместим с нашей версией laravel. Чтобы исправить ситуацию, можно, как вариант, загрузить более раннюю версию UI (например 3.1) таким образом:

    //вызывается из консоли (SSH)
    
   /usr/bin/php -d memory_limit=4024M /usr/local/bin/composer require laravel/ui:^3.1.0 --ignore-platform-reqs
  

Далее, если вам повезет, все успешно активируется. А если не повезет, то в процессе установки могут возникнуть разного рода проблемы.

Как вариант, может появиться проблема такого плана:

    //ошибка в консоли (SSH)
    
   PHP Fatal error:  Declaration of Illuminate\Container\Container::get($id) must be compatible with Psr\Container\ContainerInterface::get(string $id) in /home/c/co        25009/test1/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 16

  

 

Проблема совместимости PSR версии PHP

 

Здесь проблема в совместимости версий php. И, если вы на msterhost, то скорее всего это означает что вы вызываете composer из базовой версии php, при том, что у вас на конкретном сайте (в конкретной папке) установлена php версии отличная от базовой версии.

Чтобы исправить это нужно посмотреть расположение доступных версий php на хостинге командой

    //вызывается из консоли (SSH)
    
   whereis php
  

Данная команда выведет список расположений, к примеру, такой:

 

Список расположений php версий

 

Нужно выбрать нужно расположение. У меня, к примеру, php версии 7.4, а это значит, что расположение будет /opt/php74/bin/php

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

    //вызывается из консоли (SSH)
    
   /opt/php74/bin/php -d memory_limit=4024M /usr/local/bin/composer require laravel/ui:^3.1.0 --ignore-platform-reqs
  

После этого все точно заработает как надо.

Кейсы