Проблемы при установке Laravel с помощью composer

Вопрос или проблема

Используя Ubuntu 20.04 и PHP 8

При выполнении composer install для Laravel

Не запускайте Composer от имени root/суперпользователя! См. https://getcomposer.org/root для деталей
Продолжить как root/суперпользователь [да]? 
Composer работает значительно медленнее обычного, потому что у вас не включено расширение PHP curl.
Файл composer.lock отсутствует. Обновление зависимостей до последней версии вместо установки из файла блокировок. См. https://getcomposer.org/install для получения дополнительной информации.
Загрузка репозиториев composer с информацией о пакетах
Информация от https://repo.packagist.org: #StandWithUkraine
Обновление зависимостей
Ваши требования не могут быть разрешены до установимого набора пакетов.

  Проблема 1
    - phpunit/phpunit[9.5.10, ..., 9.5.x-dev] требует ext-dom * -> оно отсутствует в вашей системе. Установите или включите расширение dom PHP.
    - Корневой composer.json требует phpunit/phpunit ^9.5.10 -> удовлетворимо phpunit/phpunit[9.5.10, ..., 9.5.x-dev].

Чтобы включить расширения, убедитесь, что они включены в ваших .ini файлах:
    - /etc/php/8.0/cli/php.ini
    - /etc/php/8.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/8.0/cli/conf.d/10-opcache.ini
    - /etc/php/8.0/cli/conf.d/10-pdo.ini
    - /etc/php/8.0/cli/conf.d/20-calendar.ini
    - /etc/php/8.0/cli/conf.d/20-ctype.ini
    - /etc/php/8.0/cli/conf.d/20-exif.ini
    - /etc/php/8.0/cli/conf.d/20-ffi.ini
    - /etc/php/8.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/8.0/cli/conf.d/20-ftp.ini
    - /etc/php/8.0/cli/conf.d/20-gettext.ini
    - /etc/php/8.0/cli/conf.d/20-iconv.ini
    - /etc/php/8.0/cli/conf.d/20-mysqli.ini
    - /etc/php/8.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/8.0/cli/conf.d/20-pdo_sqlite.ini
    - /etc/php/8.0/cli/conf.d/20-phar.ini
    - /etc/php/8.0/cli/conf.d/20-posix.ini
    - /etc/php/8.0/cli/conf.d/20-readline.ini
    - /etc/php/8.0/cli/conf.d/20-shmop.ini
    - /etc/php/8.0/cli/conf.d/20-sockets.ini
    - /etc/php/8.0/cli/conf.d/20-sqlite3.ini
    - /etc/php/8.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/8.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/8.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/8.0/cli/conf.d/20-tokenizer.ini
    - /etc/php/8.0/cli/conf.d/20-zip.ini
Вы также можете выполнить `php --ini` в терминале, чтобы увидеть, какие файлы используются PHP в режиме CLI.
В качестве альтернативы, вы можете запустить Composer с `--ignore-platform-req=ext-dom`, чтобы временно игнорировать эти требуемые расширения.

Когда я пытаюсь установить sudo apt-get install php-mbstring или sudo apt install php-xml
или composer update, я получаю ту же ошибку, и у меня уже установлены mbstring и xml

Сначала

sudo apt-get install php8.0-curl

Во-вторых

sudo apt-get install php-curl 

Сообщение об ошибке Composer указывает, что одно расширение не установлено/не включено:

требуется ext-dom * -> оно отсутствует в вашей системе.

Вы можете установить его с помощью этой команды:

sudo apt install php8.1-xml

Затем включите его с помощью этой команды:

sudo phpenmod xml

Ответ или решение

Проблемы установки Laravel с использованием Composer на Ubuntu 20.04 и PHP 8

Установка Laravel через Composer может столкнуться с несколькими распространенными проблемами, особенно если среда разработки не настроена должным образом. Рассмотрим конкретные ошибки и возможные решения для их устранения.

1. Запуск Composer от имени суперпользователя

Первым делом вы получили предупреждение, что не следует запускать Composer от имени суперпользователя. Это сообщение безопасности, призванное избежать возможных проблем с разрешениями файлов и зависимости. Рекомендуется избегать использования sudo или запускать Composer от пользователя с соответствующими правами.

2. Ошибка с расширением PHP curl

Вы также столкнулись с проблемой, связанной с отсутствием расширения curl, что приводит к замедлению работы Composer. Для установки расширения выполните следующую команду:

sudo apt-get install php8.0-curl

После установки, убедитесь, что расширение активно, перезапустив ваш веб-сервер или PHP-FPM:

sudo systemctl restart apache2   # Для Apache
sudo systemctl restart php8.0-fpm  # Для Nginx

3. Нехватка файла composer.lock

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

composer update

Это создаст файл composer.lock и установит самые последние версии пакетов, указанных в composer.json.

4. Проблемы с зависимостями

Затем, ошибка, связанная с package phpunit/phpunit, указывает на недоступность расширения ext-dom. Вам необходимо установить расширение xml, которое включает dom:

sudo apt install php8.0-xml

После установки включите его с помощью:

sudo phpenmod xml

Обязательно перезапустите веб-сервер после внесенных изменений.

5. Проверка активных расширений

Если проблемы все еще сохраняются, убедитесь, что все необходимые расширения загружены. Вы можете использовать следующую команду, чтобы просмотреть все загруженные расширения PHP:

php -m

Или проверить конфигурацию PHP:

php --ini

6. Временное игнорирование требований

Если вы хотите продолжить установку, игнорируя проблему с расширением, вы можете использовать параметр --ignore-platform-reqs:

composer install --ignore-platform-reqs

Заключение

Установка Laravel через Composer может потребовать некоторых предварительных настроек вашей системы. Обязательно проверьте наличие и активацию необходимых расширений PHP, избегайте использования суперпользователя при запуске Composer, и следите за актуальностью файла composer.lock. Эти шаги помогут вам быстро решить распространенные проблемы и установить Laravel без дополнительных трудностей.

Если вы столкнулись с другими специфическими ошибками, пожалуйста, предоставьте их описание, и мы сможем предложить дополнительные рекомендации.

Оцените материал
Добавить комментарий

Капча загружается...