Ошибка сегментации при установке библиотек с помощью Composer ⇐ Php
-
Anonymous
Ошибка сегментации при установке библиотек с помощью Composer
Последние несколько дней я пытался скомпилировать PHP для использования его в Amazon Lambda, но мой опыт, мягко говоря, был неудачным. В каждом сообщении, которое я нахожу в Интернете, говорится совершенно разные вещи, и все они кажутся устаревшими, поскольку я всегда в конечном итоге сталкиваюсь с какой-то конфигурацией, которая больше не там, где должна быть. Я даже пробовал использовать разные инструменты ИИ, но информация в интернете противоречивая, что в одной строке ИИ говорит одно, а в следующей строке — противоположное. Сейчас я следую руководству, которое нашел на YouTube, и оно отлично работало до тех пор, пока мне не потребовалось установить три библиотеки Composer.
Вот что происходит.
Я запустил экземпляр t2.medium (2 виртуальных ЦП и 4 ГБ) на Amazon EC2, используя AMI Amazon Linux 2023. Подключившись к экземпляру, я выполнил следующие команды:
sudo yum update -y sudo yum install autoconf bison gcc gcc-c++ libcurl-devel libxml2-devel -y завиток "https://awscli.amazonaws.com/awscli-exe ... x86_64.zip" -o "awscliv2.zip" разархивируйте awscliv2.zip судо ./aws/установить sudo yum group install «Инструменты разработки» -y sudo yum install perl-core zlib-devel -y компакт-диск /usr/local/src/ sudo wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz sudo tar -xf openssl-1.0.2u.tar.gz компакт-диск openssl-1.0.2u компакт-диск /usr/local/src/openssl-1.0.2u sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl общий zlib судо сделать sudo сделать установку компакт-диск ~ mkdir ~/php-8.2.6-источник локон -sL https://www.php.net/distributions/php-8.2.6.tar.gz | смола -xvz компакт-диск ~/php-8.2.6/ ./buildconf --force sudo yum install oniguruma-devel -y sudo yum установить sqlite-devel -y PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig/" ./configure --prefix=/home/ec2-user/php-8.2.6-source --with-openssl=/usr/local/ssl -- with-curl --with-mysqli --enable-mbstring --enable-soap sudo сделать установку mkdir -p ~/lambda-root/{bin,src,lib}/ компакт-диск ~/лямбда-корень коснитесь ./бутстрап chmod +x ./bootstrap cp ~/php-8.2.6-source/bin/php ./bin локон -sS https://getcomposer.org/installer | ./bin/php ./bin/php композитору.phar требуется guzzlehttp/guzzle ./bin/php композитору.phar требуется aws/aws-sdk-php ./bin/php композитору.phar требуется phpzip/phpzip Моя проблема в последних трёх командах. Всякий раз, когда я запускаю любой из трех ./bin/php композитора.phar, требуется [ . . . ] команда показывает ошибку.
Вот результат, когда я запускаю команду ./bin/php композитор.phar require guzzlehttp/guzzle -vvv:
Запуск версии 2.6.6 (2023-12-08 18:32:26) с PHP 8.2.6 в Linux / 6.1.66-91.160.amzn2023.x86_64 Чтение ./composer.json (/home/ec2-user/lambda-root/composer.json) Загрузка файла конфигурации ./composer.json (/home/ec2-user/lambda-root/composer.json) Проверен файл CA /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem: действительный Выполнение команды (/home/ec2-user/lambda-root): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v' Выполнение команды (/home/ec2-user/lambda-root): git описать --exact-match --tags Выполнение команды (CWD): git --version Выполнение команды (/home/ec2-user/lambda-root): git log --pretty="%H" -n1 HEAD --no-show-signature Выполнение команды (/home/ec2-user/lambda-root): ветка hg Выполнение команды (/home/ec2-user/lambda-root): список ископаемых ветвей Выполнение команды (/home/ec2-user/lambda-root): список ископаемых тегов Выполнение команды (/home/ec2-user/lambda-root): svn info --xml Чтение /home/ec2-user/.config/composer/composer.json Загрузка файла конфигурации /home/ec2-user/.config/composer/composer.json (/home/ec2-user/.config/composer/composer.json) Загрузка https://repo.packagist.org/packages.json. Ошибка сегментации (ядро сброшено) Раньше в выводе также отображалось сообщение Не удалось инициализировать глобальный композитор: Composer не удалось найти файл конфигурации: /home/ec2-user/.config/composer/composer.json прямо перед загрузкой пакеты, поэтому я создал файл /home/ec2-user/.config/composer/composer.json.
Это содержимое файла.:
{ "требовать": {} } Кто-нибудь знает, почему возникает эта ошибка и как ее исправить? Очевидно, что на видео все работает без проблем. Классический случай «на моей машине все работает».
ОБНОВЛЕНИЕ
Я попробовал использовать аргумент Memory_limit, изменив команду на:
./bin/php -d Memory_limit=-1 композитору.phar требуется guzzlehttp/guzzle Но результат точно такой же.
Я также попробовал использовать аргумент COMPOSER_MEMORY_LIMIT:
./bin/php композитор.phar COMPOSER_MEMORY_LIMIT=-1 требует guzzlehttp/guzzle На этот раз появилось сообщение о том, что Команда «COMPOSER_MEMORY_LIMIT=-1» не определена..
Последние несколько дней я пытался скомпилировать PHP для использования его в Amazon Lambda, но мой опыт, мягко говоря, был неудачным. В каждом сообщении, которое я нахожу в Интернете, говорится совершенно разные вещи, и все они кажутся устаревшими, поскольку я всегда в конечном итоге сталкиваюсь с какой-то конфигурацией, которая больше не там, где должна быть. Я даже пробовал использовать разные инструменты ИИ, но информация в интернете противоречивая, что в одной строке ИИ говорит одно, а в следующей строке — противоположное. Сейчас я следую руководству, которое нашел на YouTube, и оно отлично работало до тех пор, пока мне не потребовалось установить три библиотеки Composer.
Вот что происходит.
Я запустил экземпляр t2.medium (2 виртуальных ЦП и 4 ГБ) на Amazon EC2, используя AMI Amazon Linux 2023. Подключившись к экземпляру, я выполнил следующие команды:
sudo yum update -y sudo yum install autoconf bison gcc gcc-c++ libcurl-devel libxml2-devel -y завиток "https://awscli.amazonaws.com/awscli-exe ... x86_64.zip" -o "awscliv2.zip" разархивируйте awscliv2.zip судо ./aws/установить sudo yum group install «Инструменты разработки» -y sudo yum install perl-core zlib-devel -y компакт-диск /usr/local/src/ sudo wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz sudo tar -xf openssl-1.0.2u.tar.gz компакт-диск openssl-1.0.2u компакт-диск /usr/local/src/openssl-1.0.2u sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl общий zlib судо сделать sudo сделать установку компакт-диск ~ mkdir ~/php-8.2.6-источник локон -sL https://www.php.net/distributions/php-8.2.6.tar.gz | смола -xvz компакт-диск ~/php-8.2.6/ ./buildconf --force sudo yum install oniguruma-devel -y sudo yum установить sqlite-devel -y PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig/" ./configure --prefix=/home/ec2-user/php-8.2.6-source --with-openssl=/usr/local/ssl -- with-curl --with-mysqli --enable-mbstring --enable-soap sudo сделать установку mkdir -p ~/lambda-root/{bin,src,lib}/ компакт-диск ~/лямбда-корень коснитесь ./бутстрап chmod +x ./bootstrap cp ~/php-8.2.6-source/bin/php ./bin локон -sS https://getcomposer.org/installer | ./bin/php ./bin/php композитору.phar требуется guzzlehttp/guzzle ./bin/php композитору.phar требуется aws/aws-sdk-php ./bin/php композитору.phar требуется phpzip/phpzip Моя проблема в последних трёх командах. Всякий раз, когда я запускаю любой из трех ./bin/php композитора.phar, требуется [ . . . ] команда показывает ошибку.
Вот результат, когда я запускаю команду ./bin/php композитор.phar require guzzlehttp/guzzle -vvv:
Запуск версии 2.6.6 (2023-12-08 18:32:26) с PHP 8.2.6 в Linux / 6.1.66-91.160.amzn2023.x86_64 Чтение ./composer.json (/home/ec2-user/lambda-root/composer.json) Загрузка файла конфигурации ./composer.json (/home/ec2-user/lambda-root/composer.json) Проверен файл CA /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem: действительный Выполнение команды (/home/ec2-user/lambda-root): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v' Выполнение команды (/home/ec2-user/lambda-root): git описать --exact-match --tags Выполнение команды (CWD): git --version Выполнение команды (/home/ec2-user/lambda-root): git log --pretty="%H" -n1 HEAD --no-show-signature Выполнение команды (/home/ec2-user/lambda-root): ветка hg Выполнение команды (/home/ec2-user/lambda-root): список ископаемых ветвей Выполнение команды (/home/ec2-user/lambda-root): список ископаемых тегов Выполнение команды (/home/ec2-user/lambda-root): svn info --xml Чтение /home/ec2-user/.config/composer/composer.json Загрузка файла конфигурации /home/ec2-user/.config/composer/composer.json (/home/ec2-user/.config/composer/composer.json) Загрузка https://repo.packagist.org/packages.json. Ошибка сегментации (ядро сброшено) Раньше в выводе также отображалось сообщение Не удалось инициализировать глобальный композитор: Composer не удалось найти файл конфигурации: /home/ec2-user/.config/composer/composer.json прямо перед загрузкой пакеты, поэтому я создал файл /home/ec2-user/.config/composer/composer.json.
Это содержимое файла.:
{ "требовать": {} } Кто-нибудь знает, почему возникает эта ошибка и как ее исправить? Очевидно, что на видео все работает без проблем. Классический случай «на моей машине все работает».
ОБНОВЛЕНИЕ
Я попробовал использовать аргумент Memory_limit, изменив команду на:
./bin/php -d Memory_limit=-1 композитору.phar требуется guzzlehttp/guzzle Но результат точно такой же.
Я также попробовал использовать аргумент COMPOSER_MEMORY_LIMIT:
./bin/php композитор.phar COMPOSER_MEMORY_LIMIT=-1 требует guzzlehttp/guzzle На этот раз появилось сообщение о том, что Команда «COMPOSER_MEMORY_LIMIT=-1» не определена..