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