我在Windows 10上运行composer self-update
时收到错误消息
这是完整的错误消息
composer self-update
Updating to version 1.8.4 (stable channel).
Downloading (100%)
[RuntimeException]
SHA384 is not supported by your openssl extension, could not verify the phar file integrity
我正在跑步PHP 7.3.2
可能是什么问题?
答案 0 :(得分:9)
手动更新作曲家:
wget -cO - https://getcomposer.org/composer-stable.phar > /usr/local/bin/composer
检查已安装的作曲家版本:
composer --version
答案 1 :(得分:2)
该错误表示您正在使用composer
或更低版本的1.7.2
。
您必须先卸载composer,然后安装composer
版1.7.3
及更高版本。
答案 2 :(得分:1)
我在Windows机器上遇到了同样的问题。我刚刚从https://getcomposer.org/download/下载并安装了Composer,当我尝试运行php composer-setup.php
时,它失败并显示“您的openssl扩展不支持SHA384”。
对我有用的解决方案是执行命令行安装(在同一站点上记录)。访问https://getcomposer.org/download/以获得最新的SHA。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c5b9b6d368201a9db6f74e2611495f369991b72d9c8cbd3ffbc63edff210eb73d46ffbfce88669ad33695ef77dc76976') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
答案 3 :(得分:0)
删除旧版本并安装最新版本的Composer,
删除旧版本:
sudo rm -f /usr/local/bin/composer
下载安装程序:
sudo curl -s https://getcomposer.org/installer | php
移动composer.phar文件:
sudo mv composer.phar /usr/local/bin/composer
答案 4 :(得分:0)
您可以从https://getcomposer.org/下载最新版本,只需替换 composer 文件夹中的文件 composer.phar ,该文件就安装在Windows的Windows中 C:\ composer
答案 5 :(得分:-1)
FROM php:7.1-apache
....
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /tmp
ENV COMPOSER_VERSION 1.8.4
RUN curl --silent --fail --location --retry 3 --output /tmp/installer.php --url https://raw.githubusercontent.com/composer/getcomposer.org/cb19f2aa3aeaa2006c0cd69a7ef011eb31463067/web/installer \
&& php -r " \
\$signature = '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5'; \
\$hash = hash('sha384', file_get_contents('/tmp/installer.php')); \
if (!hash_equals(\$signature, \$hash)) { \
unlink('/tmp/installer.php'); \
echo 'Integrity check failed, installer is either corrupt or worse.' . PHP_EOL; \
exit(1); \
}" \
&& php /tmp/installer.php --no-ansi --install-dir=/usr/bin --filename=composer --version=${COMPOSER_VERSION} \
&& composer --ansi --version --no-interaction \
&& rm -f /tmp/installer.php