【问题标题】:Can't get composer work on wampserver 2.5: host not known无法在 wampserver 2.5 上进行作曲家工作:主机未知
【发布时间】:2014-10-10 02:40:12
【问题描述】:

我使用 php 5.5.12 在 windows 7 64bit 上全新安装了 wampserver 2.5 64bit。 之后,我将 php 路径附加到窗口的 PATH 环境变量中。

然后我使用官方网站上的安装程序安装了composer。

当我尝试运行任何命令时,我得到一个主机错误,例如:

composer create-project --prefer-dist -s dev SOMEPACKAGE

[作曲家\下载器\TransportException] 无法下载“https://packagist.org/packages.json”文件:php_network_getaddresses:getaddrinfo 失败:主机 sconosciuto。 无法打开流:php_network_getaddresses:getaddrinfo 失败:主机 sconosciuto。

作曲家诊断

检查平台设置:失败 加载了 xdebug 扩展,这会稍微减慢 Composer。 建议在使用 Composer 时禁用它,但不应导致超出速度的问题。 检查 git 设置:好的 检查 http 连接:失败 [Composer\Downloader\TransportException] 无法下载“https://packagist.org/packages.json”文件:php_network_getaddresses:getaddrinfo 失败:主机 sconosciuto。 无法打开流:php_network_getaddresses:getaddrinfo 失败:主机 sconosciuto。 检查磁盘可用空间:OK

主机 sconosciuto 的意思是“主机未知” 有人知道我怎样才能得到作曲家的作品吗? 我不在代理后面,我的主机文件只有一条记录: 127.0.0.1 本地主机

谢谢

【问题讨论】:

    标签: php composer-php wampserver host


    【解决方案1】:

    在PHP CLI(命令行界面)使用的php.ini中,您好像没有激活opensssl.dllphp_curl

    在 Wampserver 中有 2 个 php.ini 文件,一个由 Apche 使用,一个由 PHP 从命令行运行时使用。

    检查 \wamp\bin\php\php5.5.12\php.ini 并确保您需要与 Composer 一起使用的所有扩展都已激活,php_openssl 肯定是其中之一 php_curl 是另一个。

    同样对于 WAMPServer,将带有 PHP 可执行文件的文件夹放在 Windows PATH 环境变量中是不好的做法,因为使用 WAMPServer,您可以轻松切换 PHP 版本。

    我使用这个批处理文件

    文件名 = phppath.cmd

    echo off
    if %1.==. GOTO DEFAULT
    ECHO ----------Setting up PHP%1---------------------------------
    PATH=%PATH%;d:\wamp\bin\php\php%1
    php -v
    GOTO COMPOSER
    
    :DEFAULT
    echo Taking the default version php5.5.12
    echo ----------DEFAULT----------------------------------------------
    PATH=%PATH%;d:\wamp\bin\php\php5.5.12
    php -v
    
    :COMPOSER
    echo Make Composer work
    PATH=%PATH%;D:\wamp\composer
    echo ---------------------------------------------------------------
    

    不要将 php 添加到 Windows PATH 中,而是将此文件放在路径上已经存在的文件夹中,C:\windows 如果您自己的路径中没有任何文件。

    要放置默认的 PHP 版本的路径,只需像这样调用它:-

    >phppath
    

    要添加特定的 PHP 版本(假设您在 WAMPServer 中安装了多个版本,请调用它:-

    >phppath 5.5.14
    

    附加信息

    更新:在 cli 中我什至无法连接到本地主机中的数据库

    那么您的 2 个 ini 文件不一样,或者您正在从其他地方加载一个。

    从命令窗口执行此操作

    php --ini
    

    应该是这样的

    Configuration File (php.ini) Path: C:\Windows
    Loaded Configuration File:         C:\wamp\bin\php\php5.5.12\php.ini
    Scan for additional .ini files in: (none)
    Additional .ini files parsed:      (none)
    

    因此,请检查C:\windows 文件夹或列表中可能出现的任何其他位置中没有胭脂 php.ini。 php.ini 应该只在C:\wamp\bin\php\php5.5.12\php.ini

    【讨论】:

    • php_openssl 和 php_curl 都已激活。一件奇怪的事情是 php_network_getaddresses: getaddrinfo 问题只发生在 cli 上,但是 php.ini 在 cli 和 apache 中都是一样的。(感谢 phppath.cmd 的建议)
    • 我假设您在执行 composer 命令时实际上已连接到互联网?
    • 是的,但问题在于每个主机名。例如,如果我运行以下命令,我会得到同样的错误:> php -r "echo file_get_contents('http://www.google.com');" | php
    • 你的`php.ini'中有allow_url_fopen = On吗?
    • 我已经看到了一些解决方案,这表明如果您的 IPADDRESS 在黑名单中,这可能会发生。您的路由器是在静态 ip 上还是在重新启动路由器时获得另一个 ip?如果它是动态的,请尝试重新启动路由器,并检查它是否获得了另一个地址。
    猜你喜欢
    • 2019-11-28
    • 2011-11-21
    • 2017-01-06
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2014-07-04
    相关资源
    最近更新 更多