在国内安装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',
    ],

问题解决

相关推荐
Nayxxu1 天前
Claude API 生产稳定性设计:超时、降级、备用模型和告警怎么做
开发语言·php
狗凯之家源码网1 天前
三角洲行动护航系统源码部署与运营指南
开源·php
huipeng9262 天前
企业级微服务开发实战(三):公共模块设计与统一规范封装
java·spring boot·spring cloud·微服务·架构·系统架构·php
say_fall2 天前
模拟量输入输出技术超详细知识点总结
linux·开发语言·嵌入式硬件·学习·php
禅思院2 天前
大列表性能优化 · 工程实战·四
开发语言·前端·性能优化·前端框架·php·异步加载
佛山个人技术开发2 天前
个人建站接单|汽车汽配行业宽屏自适应官网模板 工厂企业定制建站源码
前端·css·前端框架·html·汽车·php
雪度娃娃2 天前
ASIO异步通信——多线程模型
开发语言·网络·c++·php
阿洛学长3 天前
最新PHPStudy安装教程(小皮V8.1)
php
68岁扶墙肾透3 天前
Edu实战-某高校信息系统代码审计
安全·web安全·网络安全·php
QQ_5110082853 天前
uniapp微信小程序网上饰品商城售卖系统php python物流
微信小程序·uni-app·php