Composer update/create-project/install - HTTP请求失败

For*_*ien 25 php composer-php

最近我了解了Laravel 4.2.然后我切换到Laravel 5.我一直使用composer来添加其他依赖项和东西,我完全没有问题.

上周四我使用了一个新项目composer create-project laravel/laravel dir_name --prefer-dist.一切顺利.

但自周五以来,我无能为力.每当我尝试创建新项目,更新依赖项或执行任何操作时,都会等待很长时间(几乎像冻结)然后再出现错误.他们通常是关于HTTP request failed或有问题的packagist.org.

在工作中我没有任何问题.我的朋友也没有.它在我的电脑上工作,突然停了下来.请帮忙.

C:\xampp\htdocs\dir_name>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
The "http://packagist.org/p/symfony/routing$0b411061e305b2d7a108caca01c21b859b6a2be133eff320b93e64d8
c5759e2b.json" file could not be downloaded: failed to open stream: HTTP request failed!
http://packagist.org could not be fully loaded, package information was loaded from the local cache
and may be out of date

[here freezes for good (more than 20 minutes), killed]
Run Code Online (Sandbox Code Playgroud)

我的作曲家是最新的:

C:\xampp\htdocs\dir_name>composer self-update
You are already using composer version 9fb2d4f2d642a0749decb41bc2fe4be2bf8bef7a.

C:\xampp\htdocs\dir_name>
Run Code Online (Sandbox Code Playgroud)

那就是composer update -vvv:

C:\xampp\htdocs\dir_name>composer update -vvv
Reading ./composer.json
Loading config file C:/Users/Forien/AppData/Roaming/Composer/config.json
Loading config file C:/Users/Forien/AppData/Roaming/Composer/auth.json
Loading config file ./composer.json
Executing command (CWD): git describe --exact-match --tags
Executing command (CWD): git branch --no-color --no-abbrev -v
Executing command (CWD): hg branch
Executing command (CWD): svn info --xml
Failed to initialize global composer: Composer could not find the config file: C:/Users/Forien/AppDa
ta/Roaming/Composer/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.
org/ "Getting Started" section
Loading composer repositories with package information
Downloading https://packagist.org/packages.json

[freeze for over 15 minutes here, killed]
Run Code Online (Sandbox Code Playgroud)

在家里,我在路由器后面,但没有我知道的代理.我不知道发生了什么变化.作为composer.json-即使是全新的干净.jsonlaravel/laravel,更新不能正常启动.

任何帮助赞赏.你有任何想法为什么会发生这种情况或如何解决这个问题?

编辑

composer diagnose
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity: FAIL
[Composer\Downloader\TransportException] The "https://packagist.org/packages.json" file could not be
 downloaded: SSL: Handshake timed out
Failed to enable crypto
failed to open stream: operation failed
Checking github.com oauth access: OK
Checking disk free space: OK
Checking composer version: OK
Run Code Online (Sandbox Code Playgroud)

Composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "laravel/framework": "5.0.*"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1",
        "filp/whoops": "^1.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php -r \"copy('.env.example', '.env');\"",
            "php artisan key:generate"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

Ren*_*hle 11

我在这里尝试过,我已经用作曲家克隆了一个新的laravel5项目.

composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)

与您提到的日志一样,您无法打开路由依赖项,因为给定的json文件不存在而您收到404错误.所以我认为你的任何依赖都不正确.

路由JSON

我没有任何问题,可以克隆一个包含所有依赖项的新项目.它运作良好.是否有可能为您的某些功能添加了一些第三方依赖项,composer.json并且该项目的依赖项已经错误或不再存在?

我应该尝试首先清理所有缓存.

composer clear-cache
Run Code Online (Sandbox Code Playgroud)

并确保一切正常,您可以运行诊断.

composer diagnose
Run Code Online (Sandbox Code Playgroud)

接下来尝试检查所有依赖项.这是一个新鲜的composer.json.

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
Run Code Online (Sandbox Code Playgroud)

有时我遇到问题,如果我尝试克隆一些东西需要花费很多时间,直到服务响应,但在你的情况下,它很长很长.

我建议启用openssl扩展.您无法建立SSL连接.

Checking http connectivity: FAIL
[Composer\Downloader\TransportException] The "https://packagist.org/packages.json" file could not be
 downloaded: SSL: Handshake timed out
Run Code Online (Sandbox Code Playgroud)

检查你phpinfo()和你的可以用干净的文件进行另一次检查:

<?php
echo file_get_contents("https://packagist.org/packages.json");
Run Code Online (Sandbox Code Playgroud)

为了避免您的命令行使用另一个php解释器或其他未启用openssl的版本,您可以直接从命令行进行测试.

#php -r 'echo file_get_contents("https://packagist.org/packages.json");'

最后一个是将openssl更新到最新版本,或者如果您没有最新版本,请更新XAMPP.

http://windows.php.net/download/
http://indy.fulgan.com/SSL/