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

2022-08-30 16:13:47

最近我了解了Laravel 4.2。然后我切换到Laravel 5。一直以来,我一直在使用 composer 添加另一个依赖项和东西,我完全没有遇到任何问题。

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

但从星期五开始,我什么也做不了。每次我尝试创建新项目,更新依赖项或执行任何操作时,都会有很长的等待(几乎就像冻结一样),然后出现错误。它们通常与 有关 或 有问题。HTTP request failedpackagist.org

在工作中,我没有任何问题。我的朋友也没有。它在我的PC上工作,突然停止了。请帮忙。

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]

我的作曲家是最新的:

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

C:\xampp\htdocs\dir_name>

那就是: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]

在家里,我在路由器后面,但没有我所知道的代理。我不知道发生了什么变化。截至 - 即使有全新的清洁从,更新也不会正常启动。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

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"
        ]
    }
}

答案 1

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

composer create-project laravel/laravel --prefer-dist

就像你的日志提到的那样,你无法打开路由依赖项,因为给定的json文件不存在,并且你得到一个404错误。所以我认为你的任何依赖关系都是不正确的。

路由 JSON

我完全没有问题,可以克隆具有所有依赖项的新项目。它运作良好。您是否可能为某些函数添加了一些第三方依赖项,并且项目具有错误或不再存在的依赖项?composer.json

我应该尝试的是首先清理所有缓存。

composer clear-cache

为了确保一切正常,您可以运行诊断程序。

composer diagnose

接下来,尝试检查所有依赖项。这是一个新鲜的.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
}

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

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

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

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

<?php
echo file_get_contents("https://packagist.org/packages.json");

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

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

最后一个是将opensl更新到最新版本,或者如果您没有最新版本,则更新XAMPP。


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


答案 2

我以前在代理中遇到过这种情况。请检查您的 env vars 是否为 false,HTTP_PROXY和HTTPS_PROXY未设置为它们无法连接的内容。HTTP_PROXY_REQUEST_FULLURI


推荐