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

问题解决

相关推荐
xinhuanjieyi5 小时前
Deprecated: Directive ‘track_errors‘ is deprecated in Unknown on line 0
php
棒棒的唐7 小时前
Composer国内镜像配置全指南:加速依赖下载
php·composer
神净讨魔7657 小时前
【php】老旧PHP项目(PHP 5.6)本地环境搭建与踩坑记录
php
在角落发呆8 小时前
DTU 数据转发服务器:工业物联网的隐形桥梁
开发语言·php
古城小栈10 小时前
宝塔面板部署 ThinkPHP6 后端
php
幽络源小助理12 小时前
MacCMSPro版视频影视系统源码_全开源高可用视频平台解决方案
前端·php·php源码
TO_WebNow1 天前
使用thinkPHP8.x 访问接口提示跨域
前端·php
JSON_L1 天前
PHP使用Intervention Image图像处理
图像处理·php·intervention
treesforest1 天前
IP数据库下载完全指南:免费与商业IP定位库对比
网络·数据库·php