错误:“Composer 无法在使用 register_argc_argv=On 的情况下在非 cli sapi 上安全运行”

问题描述 投票:0回答:1

我尝试在我的主机上安装 laravel 项目,我需要安装 Composer。如果我写

php composer.phar
我会收到消息:

Composer 无法通过 register_argc_argv=On 在非 cli sapi 上安全运行

我无权访问 PHP 配置文件,因为它似乎是共享托管。

php composer-php
1个回答
0
投票

完全同意@Yivi 的评论,Composer 不需要在生产中运行,理想情况下也不应该。当 Composer 作为构建/部署的一部分运行时,它将提取所有依赖项并生成相关的自动加载器配置,然后该配置将在不依赖于 Composer 二进制文件/phar 的情况下运行。只需部署包含

vendor/
目录的应用程序,它就应该按预期工作。

但特别是关于您收到的错误,似乎机器可能没有安装 php-cli 实例。相反,您可能正在调用 php-cgi 二进制文件,我相信它在技术上仍然可以在 CLI 上下文中运行,尽管它并不理想。

要检查正在使用的 SAPI,您可以运行:

php -r 'var_dump(php_sapi_name());'

并了解服务器上正在调用哪个二进制文件,运行:

which php; file $(which php)

这应该为您提供

php
的完整路径,并告诉您它是否是实际的二进制文件,或者是指向
php-cgi
等其他内容的符号链接。

如果发现您没有安装 php-cli,那么您可以通过发行版的包管理器安装相关的包如果需要。如果您只打算通过 Web 上下文运行 PHP,那么这是不必要的,并且可能会造成混淆,因为 CLI/CGI 实例可以并且确实经常使用不同的配置文件和/或完全不同的 PHP 版本。

© www.soinside.com 2019 - 2024. All rights reserved.