服务器以前有个 php5.4, 后面加了个 php7.3
用 composer 自动定位 5.4, 导致我 tp5.1 无法安装依赖, 现在用网上这个方式安装。 其他都 ok 了。 tp 却安装不上了
着急。。。
[root@yunguizhou star]# /usr/local/php/bin/php composer.phar install Do notrun Composer as root/super user! See https://getcomposer.org/root for details Continue as root/super user [yes]? yes Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`. Package operations: 1 install, 0 updates, 0 removals - Downloading topthink/framework (v5.1.40) - Installing topthink/framework (v5.1.40): Extracting archive Failed to extract topthink/framework: (9) unzip -qq '/home/wwwroot/star/vendor/composer/tmp-7ea691416e557dbb8cb8858815b4c4ef' -d '/home/wwwroot/star/vendor/composer/bd3e9c7b' unzip: cannot find or open /home/wwwroot/star/vendor/composer/tmp-7ea691416e557dbb8cb8858815b4c4ef. This most likely is due to a custom installer plugin not handling the returned Promise from the downloader See https://github.com/composer/installers/commit/5006d0c28730ade233a8f42ec31ac68fb1c5c9bb for an example fix Package endroid/qrcode is abandoned, you should avoid using it. Use endroid/qr-code instead. Package zendframework/zend-escaper is abandoned, you should avoid using it. Use laminas/laminas-escaper instead. Generating autoload files 10 packages you are using are looking for funding. Use the `composer fund` command to find out more!
1 dilu 2020-10-28 11:12:03 +08:00 你这个错怎么看都不像是因为 php 版本报出来的啊 加上 --no-plugins 参数试试? |
![]() | 2 edk24 OP 已解决,composer 版本太新,换成 1.10x 就可以了。去 composer 官网下载低版本的 |
4 Seanfuck 2020-10-28 11:36:04 +08:00 真是时代变了,我还是喜欢手工下载代码解压,php 用什么鬼 composer,就跟 js 用什么鬼 npm 一样,一堆问题,没见什么优点。 |
8 Mitt 2020-10-28 11:53:10 +08:00 ![]() @Seanfuck #4 “一堆问题” 莫名其妙,就跟 linux 装个啥软件都网上一堆教程教你如何手工编译安装一样,人家本来就有稳定版的包 apt install 就装完了还非得自己编译出一堆问题怪 linux 太复杂,除非有需要,否则谁还会把时间浪费在这上面 |
9 Mitt 2020-10-28 11:55:43 +08:00 “unzip: cannot find or open /home/wwwroot/star/vendor/composer/tmp-7ea691416e557dbb8cb8858815b4c4ef.” 这一行报错最主要,要么就是下载失败了,要么就是文件占用权限问题,降级 composer 应该是顺便清了缓存所以才好的,应该多花点时间了解一下具体原因的,千万不要直接甩锅 |
10 hbolive 2020-10-28 11:57:04 +08:00 ![]() Composer 实现了一键包安装、版本依赖解析、自动加载,是现代 PHP 的基石。从此 PHP 迎来了大统一时代。如今,不仅是框架,任何 PHP 项目,都可以使用 Composer 安装项目所需要的库包。 |
11 Seanfuck 2020-10-28 13:54:40 +08:00 via iPhone @Mitt 我说的就是这个 install 一堆问题!正好你说了编译问题,如果 install 一下能解决问题,谁愿意去编译,现实中就是有很多情况需要编译。再说回来,你发布 php 项目是 install 好一起发布还是线上再 install ?大家的习惯一样吗?如果线上机器因为安全或管理原因不能连外网,这时如果要 install 如何方便的处理? |
12 Seanfuck 2020-10-28 14:00:42 +08:00 via iPhone @agdhole 如果是包管理确实必备,但 php 的( Js 也一样)这个包方式有些别扭,如果是类似编译成二进制的方式那就没问题。 |
![]() | 13 akagishigeru 2020-10-28 14:13:22 +08:00 @Seanfuck composer 问题还多?从没遇到过 |
14 Mitt 2020-10-28 14:43:16 +08:00 @Seanfuck #11 线上 install,如果你不能连外网那肯定另当别论,但凡不是网络问题都不应该把包一起打包上去,而且现在都是 docker 镜像了就更没这个问题了,而且如果 install 都有问题,那你系统环境就已经是有问题的了,这就不能怪包管理器了,应该先解决环境问题不然就算你自己编译也照样会有一大堆问题 |
![]() | 16 hsk9044 2020-10-28 15:53:13 +08:00 @Seanfuck 时代是会变的, 观念是要更新的. 手工安装局限性太大了, 新技术的产生是为了提高效率的, 大家少在这种事情上花时间, 不就有更多的时间可以摸鱼了, 何乐不为 |
![]() | 17 topthink 2020-10-28 16:45:48 +08:00 ![]() ThinkPHP 全版本都已经兼容 Composer2 了的哦 |
18 Seanfuck 2020-10-28 17:13:47 +08:00 via iPhone |
19 Mitt 2020-10-28 17:32:17 +08:00 @Seanfuck #18 我觉得这不是运维的问题,这是你的问题。。。事实上编译环境是开发提供的,运维只是执行编译命令而已,放到以前 PHP 等这些环境也是要运维去装的,composer 就是为了减少问题才存在的,现在 docker 更是全套自己包了,运维干的事情已经很少了,要改变下思维了 |
20 Seanfuck 2020-10-28 21:00:30 +08:00 via iPhone @Mitt 如果执行“开发给的”命令可靠怎么会存在题主的问题?运维安装环境是装运行环境,不是装代码,如果运维也出现题主的问题,那是不是多了麻烦事?再比如你的代码是给客户用的,客户连运维也没有,是不是每次都得找你?再比如客户的服务器是虚拟空间没有命令权限,装不了那只能怪客户了? PHP 用 docker 的比例不高,如果 80%的网站用 php,里面用 docker 的占多少?与时俱进是没错,但要正视存在的问题,抛开传统方式的 PHP 站点,那些改变思维的市场率不知还剩多少? |
22 2kCS5c0b0ITXE5k2 2020-10-28 21:36:40 +08:00 @Seanfuck php 不是编译型语言 为什么包要编译成二进制. 你用包都不看源码和实现的吗 |
23 2kCS5c0b0ITXE5k2 2020-10-28 21:41:43 +08:00 @Seanfuck tp6.0 引用了 7 个包。 如果不用 composer 还要处理版本问题。 |
![]() | 27 dvaknheo 2020-10-29 10:21:07 +08:00 |
![]() | 28 dvaknheo 2020-10-29 10:27:25 +08:00 php5 时代的框架,没有一个不被魔改的 composer 结束了系统库被魔改这一种烂现象。 |
![]() | 30 RickyC 2020-10-29 13:00:40 +08:00 |
![]() | 31 edk24 OP ![]() 感谢大家的回复,现在问题是总结出来了,无法下载是因为我用了最新的 composer2,tp 的包还没有兼容这个新版本改动; 切换回旧版本就可以了。 关于用 composer 的问题, 我个人是觉得很好用, 很方便, 要用什么东西直接用, 不需要这里引入一个文件哪里映入问题, 服务器上下载包用镜像就可以了。 这次是出问题在 composer 新版特性上; 优点是专注敲业务, 不需要管很多东西的实现,只需要引用就可以了,并且 git 是自动忽略依赖文件的,所以 git 仓库里只有业务代码, 没有多余的乱七八糟的文件。 这个是我个人的想法, @Seanfuck @skymei @agdhole @Mitt @hbolive @JaguarJack @ben1024 @hsk9044 @emeab @dvaknheo @RickyC |