PHP composer 安装 thinkphp 报错问题, 求助(急) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
edk24
V2EX    PHP

PHP composer 安装 thinkphp 报错问题, 求助(急)

  •  
  •   edk24 2020-10-28 10:55:58 +08:00 4981 次点击
    这是一个创建于 1814 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器以前有个 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! 
    31 条回复    2020-10-29 14:41:14 +08:00
    dilu
        1
    dilu  
       2020-10-28 11:12:03 +08:00
    你这个错怎么看都不像是因为 php 版本报出来的啊

    加上 --no-plugins 参数试试?
    edk24
        2
    edk24  
    OP
       2020-10-28 11:13:27 +08:00
    已解决,composer 版本太新,换成 1.10x 就可以了。去 composer 官网下载低版本的
    edk24
        3
    edk24  
    OP
       2020-10-28 11:13:43 +08:00
    @dilu 已解决,谢谢
    Seanfuck
        4
    Seanfuck  
       2020-10-28 11:36:04 +08:00
    真是时代变了,我还是喜欢手工下载代码解压,php 用什么鬼 composer,就跟 js 用什么鬼 npm 一样,一堆问题,没见什么优点。
    skymei
        5
    skymei  
       2020-10-28 11:37:42 +08:00
    @Seanfuck 那你确实是老了,composer 让 PHP 的包管理好用不少
    agdhole
        6
    agdhole  
       2020-10-28 11:39:07 +08:00
    @Seanfuck #4 现代开发包管理都是必备了吧
    Seanfuck
        7
    Seanfuck  
       2020-10-28 11:46:30 +08:00
    @skymei 但这个没有手工的可靠
    Mitt
        8
    Mitt  
       2020-10-28 11:53:10 +08:00   1
    @Seanfuck #4 “一堆问题” 莫名其妙,就跟 linux 装个啥软件都网上一堆教程教你如何手工编译安装一样,人家本来就有稳定版的包 apt install 就装完了还非得自己编译出一堆问题怪 linux 太复杂,除非有需要,否则谁还会把时间浪费在这上面
    Mitt
        9
    Mitt  
       2020-10-28 11:55:43 +08:00
    “unzip: cannot find or open /home/wwwroot/star/vendor/composer/tmp-7ea691416e557dbb8cb8858815b4c4ef.” 这一行报错最主要,要么就是下载失败了,要么就是文件占用权限问题,降级 composer 应该是顺便清了缓存所以才好的,应该多花点时间了解一下具体原因的,千万不要直接甩锅
    hbolive
        10
    hbolive  
       2020-10-28 11:57:04 +08:00   1
    Composer 实现了一键包安装、版本依赖解析、自动加载,是现代 PHP 的基石。从此 PHP 迎来了大统一时代。如今,不仅是框架,任何 PHP 项目,都可以使用 Composer 安装项目所需要的库包。
    Seanfuck
        11
    Seanfuck  
       2020-10-28 13:54:40 +08:00 via iPhone
    @Mitt 我说的就是这个 install 一堆问题!正好你说了编译问题,如果 install 一下能解决问题,谁愿意去编译,现实中就是有很多情况需要编译。再说回来,你发布 php 项目是 install 好一起发布还是线上再 install ?大家的习惯一样吗?如果线上机器因为安全或管理原因不能连外网,这时如果要 install 如何方便的处理?
    Seanfuck
        12
    Seanfuck  
       2020-10-28 14:00:42 +08:00 via iPhone
    @agdhole 如果是包管理确实必备,但 php 的( Js 也一样)这个包方式有些别扭,如果是类似编译成二进制的方式那就没问题。
    akagishigeru
        13
    akagishigeru  
       2020-10-28 14:13:22 +08:00
    @Seanfuck composer 问题还多?从没遇到过
    Mitt
        14
    Mitt  
       2020-10-28 14:43:16 +08:00
    @Seanfuck #11 线上 install,如果你不能连外网那肯定另当别论,但凡不是网络问题都不应该把包一起打包上去,而且现在都是 docker 镜像了就更没这个问题了,而且如果 install 都有问题,那你系统环境就已经是有问题的了,这就不能怪包管理器了,应该先解决环境问题不然就算你自己编译也照样会有一大堆问题
    ben1024
        15
    ben1024  
       2020-10-28 15:10:15 +08:00
    @Seanfuck 源码的包相对方便改造和断点
    hsk9044
        16
    hsk9044  
       2020-10-28 15:53:13 +08:00
    @Seanfuck 时代是会变的, 观念是要更新的. 手工安装局限性太大了, 新技术的产生是为了提高效率的, 大家少在这种事情上花时间, 不就有更多的时间可以摸鱼了, 何乐不为
    topthink
        17
    topthink  
       2020-10-28 16:45:48 +08:00   1
    ThinkPHP 全版本都已经兼容 Composer2 了的哦
    Seanfuck
        18
    Seanfuck  
       2020-10-28 17:13:47 +08:00 via iPhone
    @hsk9044 是这样,这里讨论存在的问题,整体效率怎样。
    @ben1024 没错,这是正常情况,“包”改造后经常有人没处理好,后面就被覆盖了。
    @Mitt 运维可以把问题推给你,你的代码为什么还要他来装(这点 JS 做得好些,可以 build 最终结果,PHP 看起来是让运维去做 build ),这就是一堆问题之一。如果你全包进 docker 那是没问题。
    Mitt
        19
    Mitt  
       2020-10-28 17:32:17 +08:00
    @Seanfuck #18 我觉得这不是运维的问题,这是你的问题。。。事实上编译环境是开发提供的,运维只是执行编译命令而已,放到以前 PHP 等这些环境也是要运维去装的,composer 就是为了减少问题才存在的,现在 docker 更是全套自己包了,运维干的事情已经很少了,要改变下思维了
    Seanfuck
        20
    Seanfuck  
       2020-10-28 21:00:30 +08:00 via iPhone
    @Mitt 如果执行“开发给的”命令可靠怎么会存在题主的问题?运维安装环境是装运行环境,不是装代码,如果运维也出现题主的问题,那是不是多了麻烦事?再比如你的代码是给客户用的,客户连运维也没有,是不是每次都得找你?再比如客户的服务器是虚拟空间没有命令权限,装不了那只能怪客户了? PHP 用 docker 的比例不高,如果 80%的网站用 php,里面用 docker 的占多少?与时俱进是没错,但要正视存在的问题,抛开传统方式的 PHP 站点,那些改变思维的市场率不知还剩多少?
    Mitt
        21
    Mitt  
       2020-10-28 21:21:13 +08:00
    @Seanfuck #20 所以说这是你的问题,不是技术的问题
    2kCS5c0b0ITXE5k2
        22
    2kCS5c0b0ITXE5k2  
       2020-10-28 21:36:40 +08:00
    @Seanfuck php 不是编译型语言 为什么包要编译成二进制. 你用包都不看源码和实现的吗
    2kCS5c0b0ITXE5k2
        23
    2kCS5c0b0ITXE5k2  
       2020-10-28 21:41:43 +08:00
    @Seanfuck tp6.0 引用了 7 个包。 如果不用 composer 还要处理版本问题。
    Seanfuck
        24
    Seanfuck  
       2020-10-28 22:05:57 +08:00 via iPhone
    @emeab 那用低版本好了
    Seanfuck
        25
    Seanfuck  
       2020-10-28 22:07:05 +08:00 via iPhone
    @emeab 不是这个意思……
    Seanfuck
        26
    Seanfuck  
       2020-10-28 22:08:14 +08:00 via iPhone
    @Mitt 那行,我就不再回复你了。
    dvaknheo
        27
    dvaknheo  
       2020-10-29 10:21:07 +08:00
    @Mitt 线上 install 是错误的用法。发布的时候直接复制做好的包就够了。
    composer 的离线功能做得不够好。 没有完全离线的命令.
    甚至有人都不知道可以使用本地第三方作为包。
    dvaknheo
        28
    dvaknheo  
       2020-10-29 10:27:25 +08:00
    php5 时代的框架,没有一个不被魔改的
    composer 结束了系统库被魔改这一种烂现象。
    dvaknheo
        29
    dvaknheo  
       2020-10-29 10:30:20 +08:00
    @emeab 才 7 个包的框架能实现什么功能,laravel 用 101 第三方个包,带动了产业大发展 (手动狗头)
    RickyC
        30
    RickyC  
       2020-10-29 13:00:40 +08:00
    https://blog.class4ever.com/2712.html

    这是一个修改 composer 对应 php 版本的方法, 在宝塔面板环境实操过

    可以参考
    edk24
        31
    edk24  
    OP
       2020-10-29 14:41:14 +08:00   1
    感谢大家的回复,现在问题是总结出来了,无法下载是因为我用了最新的 composer2,tp 的包还没有兼容这个新版本改动; 切换回旧版本就可以了。

    关于用 composer 的问题, 我个人是觉得很好用, 很方便, 要用什么东西直接用, 不需要这里引入一个文件哪里映入问题, 服务器上下载包用镜像就可以了。 这次是出问题在 composer 新版特性上;

    优点是专注敲业务, 不需要管很多东西的实现,只需要引用就可以了,并且 git 是自动忽略依赖文件的,所以 git 仓库里只有业务代码, 没有多余的乱七八糟的文件。

    这个是我个人的想法,
    @Seanfuck
    @skymei
    @agdhole
    @Mitt
    @hbolive
    @JaguarJack
    @ben1024
    @hsk9044
    @emeab
    @dvaknheo
    @RickyC
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     975 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:57 PVG 06:57 LAX 15:57 JFK 18:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86