在国内安装yii2新项目由于网络超时安装失败的解决办法

在国内安装yii2新项目由于网络超时安装失败的解决办法

安装命令如下:

bash 复制代码
composer create-project --prefer-dist yiisoft/yii2-app-basic basic

错误信息如下

bash 复制代码
PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port).
PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port).
Composer is operating slower than normal because you have Xdebug enabled. See https://getcomposer.org/xdebug
Creating a "yiisoft/yii2-app-basic" project at "./basic"
Installing yiisoft/yii2-app-basic (2.0.51)
  - Downloading yiisoft/yii2-app-basic (2.0.51)
  - Installing yiisoft/yii2-app-basic (2.0.51): Extracting archive
Created project in C:\Users\xxxxxx\basic
Loading composer repositories with package information
A connection timeout was encountered. If you intend to run Composer without connecting to the internet, run the command again prefixed with COMPOSER_DISABLE_NETWORK=1 to make Composer run in offline mode.

In CurlDownloader.php line 401:

  curl error 28 while downloading https://cdn.asset-packagist.org/p/provider-latest/4ce2ba113a0543e1004801046ff7797f6
  07bdd162226d4a7ca5cfeca6045ff2e.json: Connection timed out after 10003 milliseconds


create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--no-audit] [--audit-format AUDIT-FORMAT] [--no-security-blocking] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [<package> [<directory> [<version>]]]

这时候已生成成了basic文件夹和composer.json文件,但是没有composer.lock文件。

进入basic文件夹,再次执行

bash 复制代码
composer install

长时间等待后还是同样的报错

解决办法

打开composer.json文件

将文件末尾

bash 复制代码
"repositories": [
        {
            "type": "composer",
            "url": "https://asset-packagist.org"
        }

改成

bash 复制代码
"repositories": [{
        "name": "packagist",
        "type": "composer",
        "url": "https://repo.packagist.org"
    }]

或直接改国内的腾讯镜像源

bash 复制代码
"repositories": [{
        "name": "packagist",
        "type": "composer",
        "url": "https://mirrors.cloud.tencent.com/composer/"
    }]

再次执行

bash 复制代码
composer install

如果报如下错误

bash 复制代码
Problem 1

Root composer.json requires yiisoft/yii2 ~2.0.45 -> satisfiable by yiisoft/yii2[2.0.55].
yiisoft/yii2 2.0.55 requires bower-asset/jquery 3.7.@stable | 3.6.@stable | 3.5.@stable | 3.4.@stable | 3.3.@stable | 3.2.@stable | 3.1.@stable | 2.2.@stable | 2.1.@stable | 1.11.@stable | 1.12.*@stable -> could not be found in any version, but the following packages provide it:
yidas/yii2-bower-asset Bower Assets for Yii 2 app provided via Composer repository
craftcms/cms Craft CMS
yidas/yii2-composer-bower-skip A Composer package that allows you to install or update Yii2 without Bower-Asset
demokn/yii2-composer-asset
...

下列方法任选一个

方法1. 在composer.json中添加jQuery bower-asset 包依赖,只需要在原有的require基础上加上yidas/yii2-bower-asset即可

bash 复制代码
// composer.json
"require": {
    "yidas/yii2-bower-asset": "*"
}

然后执行

bash 复制代码
composer install

方法2.直接运行:

bash 复制代码
composer require yidas/yii2-bower-asset

再执行

bash 复制代码
composer install
补充,过程序可能会用到github Token,请提前准备好
关于cookieValidationKey
bash 复制代码
yii\web\Request::cookieValidationKey must be configured with a secret key.

请打开config/web.php文件,找到cookieValidationKey并设置secret key,可以用uuid或任意值

php 复制代码
return [
    // 其他配置...
    'components' => [
        'request' => [
            'cookieValidationKey' => '你的秘密密钥',
        ],
        // 其他组件配置...
    ],
];
关于Yii2无法正确定位手动安装的yii2-bower-asset

报错信息如下

html 复制代码
Invalid Argument -- yii\base\InvalidArgumentException
The file or directory to be published does not exist: D:\www\php\xxx\vendor/bower-asset/jquery/dist

打开config/web.php文件,找到

php 复制代码
'aliases' => [
        '@bower' => '@vendor/bower-asset',
        '@npm'   => '@vendor/npm-asset',
    ],

改成

php 复制代码
'aliases' => [
        '@bower' => '@vendor/yidas/yii2-bower-asset/bower',
        '@npm'   => '@vendor/npm-asset',
    ],

问题解决

相关推荐
老秦包你会1 小时前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
迪康coolmu15 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
普通人619 小时前
PHP文件读写完全指南
开发语言·php·1024程序员节
vipxieliang1 天前
ThinkORM 3.0 入门:强类型模型定义与查询构造器
后端·php·thinkphp
vipxieliang1 天前
PHP 密码哈希与 password_hash 最佳实践
后端·php
云和数据.ChenGuang1 天前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
大白玉米2 天前
MoxPlayer 弹幕播放器源码智能解析线路管理系统自研内核
php
测试界的小码农3 天前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
叼烟扛炮3 天前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮3 天前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php