php composer open_basedir限制,如何设置主路径?

时间:2014-01-25 10:34:13

标签: php composer-php open-basedir

我在Windows Vista 64计算机上安装了php和composer。我有一段时间让Dever接受一个指令来使用除默认C:\ Users \\ AppData \ Roaming \ Composer之外的指定目录。

我尝试设置config.json文件,即:

{
    "config": {
        "COMPOSER_HOME": "c:\inetpub\wwwroot\PHPcomposer\",
        "COMPOSER_CACHE_DIR": "c:\inetpub\wwwroot\PHPcomposer\"
    }    
}

这完全被忽略了。甚至添加了cache-dir以获得乐趣。

我尝试改变composer.json即:

{
    "require": {
        "symfony/validator":         "2.1.*",
        "doctrine/dbal":             "2.2.*",
        "monolog/monolog":           "dev-master",
        "jtreminio/test-extensions": "dev-master"
    },
    "minimum-stability": "dev",
    "config": {
        "COMPOSER_HOME": "c:/inetpub/wwwroot/PHPcomposer/",
        "cache-dir": "c:/inetpub/wwwroot/PHPcomposer/",
        "COMPOSER_CACHE_DIR": "c:/inetpub/wwwroot/PHPcomposer/"
    }    
}

并且我仍然在参考

获得一个open_basedir限制效果消息
C:\Users\<user>\AppData\Roaming\Composer

我也做了iisreset,以防iis缓存。

那么,关于我哪里出错的任何线索。我知道我可以改变php.ini,但这对我来说违反了php提供的安全性。我更愿意告诉Composer表现并做我告诉它的事情。


以下是我使用的命令行及其结果,无论config.phar中的任何设置或composer.phar中的“config”部分如何,都会出现相同的错误。 php.ini有open_basedir =“C:\ inetpub \ wwwroot”:

C:\inetpub\wwwroot\PHPcomposer>composer install

[ErrorException]
file_exists(): open_basedir restriction in effect. 
File(C:/Users/Stuart/AppData/Roaming/Composer/.htaccess) is not 
within the allowed path(s): (C:\inetpub\wwwroot)


 install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev]
 [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress]
 [-v|vv|vvv|--verbose] [-o|--optimize-autoloader]

1 个答案:

答案 0 :(得分:0)

您需要创建目录c:\ pathTo \ composer并从here

composer.phar 下载到其中

然后在批处理文件中运行php之前设置COMPOSER_HOME和COMPOSER_CACHE_DIR:

<强> composer.bat

@ECHO off
SET cwd=%cd%
PUSHD "c:\pathTo\php-5.4.28"
SET COMPOSER_HOME=c:\pathTo\composer
SET COMPOSER_CACHE_DIR=c:\pathTo\composer
"c:\pathTo\php-5.4.28\php.exe" -c "c:\pathTo\phpIniDir" -ddisable_functions="" -ddisable_classes="" -n "c:\pathTo\composer\composer.phar" --working-dir="%cwd%" %* 
POPD