composer的基本使用和常见报错解决

简介: composer的基本使用和常见报错解决

一、安装和使用

1.1 安装

# 全局安装
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer

方式二

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

1.2 镜像切换

# 全局切换国内镜像
# 阿里云
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# 中国全量镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
# 取消全局配置
composer config -g --unset repos.packagist
# 当前工程切换配置
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
# 取消当前工程配置
composer config --unset repos.packagist
# 清除缓存
composer clear

1.3 基本使用

# 安装依赖包
composer install
# 安装依赖
composer require monolog/monolog
# 更新所有依赖
composer update
# 移除一个包及其依赖
composer remove monolog/monolog
# 列出所有已经安装的包
composer show

二、问题及解决

2.1 问题1

执行以下命令:


composer require sonata-project/doctrine-orm-admin-bundle "2.3.*"

报错:


PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 32 bytes)

解决:


php -r "echo ini_get('memory_limit').PHP_EOL;"  # 查看memory大小
COMPOSER_MEMORY_LIMIT=-1 composer require sonata-project/doctrine-orm-admin-bundle  # 临时设置memory大小

参看官方说明(打开太慢了):

https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors


2.2 问题2

but these conflict with your requirements or minimum-stability.

解决:在composer.json中添加以下


"minimum-stability": "dev",

参考

Composer问题集锦


2.3 问题3

[Symfony\Component\Process\Exception\RuntimeException] 
The Process class relies on proc_open, which is not available on your PHP installation. *

解决方法:

打开php.ini,搜索disable_functions指令


disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

找到proc_open并删除即可


同理,一下报错也使用同样的方式处理


proc_get_status() has been disabled for security reasons
# 以下两个配置需要删除
disable_functions = proc_get_status,proc_open

参考

[Symfony\Component\Process\Exception\RuntimeException] The Proc

使用composer提示[ErrorException ]proc_get_status() has been disabled for security reasons 的解决方法


2.4 指定PHP版本

/usr/local/php71/bin/php /usr/local/bin/composer install

相关文章
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
还在想开题报告?SurveyGO卷姬:清华开源学术论文AI写作神器,一键生成文献综述
SurveyGO是清华与面壁智能联合开源的AI论文写作工具,采用LLMxMapReduce-V2技术实现文献智能聚合,能根据用户输入主题快速生成结构严谨、引用可靠的学术综述。
694 1
还在想开题报告?SurveyGO卷姬:清华开源学术论文AI写作神器,一键生成文献综述
|
设计模式 JSON 前端开发
前端框架Layui实现动态树效果(书籍管理系统左侧下拉列表)(一)
前端框架Layui实现动态树效果(书籍管理系统左侧下拉列表)
553 0
|
5月前
简约404错误页面HTML源码
简约404错误页面HTML源码
190 12
|
7月前
|
NoSQL 算法 安全
Redis原理—1.Redis数据结构
本文介绍了Redis 的主要数据结构及应用。
Redis原理—1.Redis数据结构
|
域名解析 Java Go
实现阿里云域名的DDNS
实现阿里云域名的DDNS
21789 5
|
运维 关系型数据库 Java
实时计算 Flink版产品使用问题之如何设置白名单
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
JavaScript
JS生成uuid的四种方法
JS生成uuid的四种方法
562 0
|
SQL 关系型数据库 MySQL
文本----Navicat的快捷键,Navicate如何快速添加资料,选中整体一行,复制,文本排序可以在添加数据时,用一个qingge01简写就行
文本----Navicat的快捷键,Navicate如何快速添加资料,选中整体一行,复制,文本排序可以在添加数据时,用一个qingge01简写就行
|
前端开发
CSS:去除input和button边框以及选中时边框默认样式
CSS:去除input和button边框以及选中时边框默认样式
|
资源调度 JavaScript 前端开发
如何使用 Docker 来部署 Vue 项目?
【2月更文挑战第8天】
1289 2