- Вопрос или проблема
- Ответ или решение
- Проблемы установки Laravel с использованием Composer на Ubuntu 20.04 и PHP 8
- 1. Запуск Composer от имени суперпользователя
- 2. Ошибка с расширением PHP curl
- 3. Нехватка файла composer.lock
- 4. Проблемы с зависимостями
- 5. Проверка активных расширений
- 6. Временное игнорирование требований
- Заключение
Вопрос или проблема
Используя 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 без дополнительных трудностей.
Если вы столкнулись с другими специфическими ошибками, пожалуйста, предоставьте их описание, и мы сможем предложить дополнительные рекомендации.