PHP Composer Open_Basedir限制,如何设置家庭路径



我已经在Windows Vista 64机器上安装了PHP和作曲家。我有一段时间的魔鬼让作曲家接受指令使用默认c: users \ appdata roaming composer以外的其他指定目录。

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

{
    "config": {
        "COMPOSER_HOME": "c:inetpubwwwrootPHPcomposer",
        "COMPOSER_CACHE_DIR": "c:inetpubwwwrootPHPcomposer"
    }    
}

这完全被忽略了。甚至添加了CACHE-DIR。

我尝试更改composer.json viz:

{
    "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>AppDataRoamingComposer

我也做了一个iisreset,以防万一iis正在缓存。

所以,关于我出错的任何线索。我知道我可以改变php.ini,但是对我来说,违反了PHP提供的安全性。我宁愿告诉作曲家行为并做我告诉它的事情。


这是我使用的命令行,其结果是,无论config.phar或composer.phar中的"配置"部分中的任何设置,都会发生相同的错误。php.ini具有open_basedir =" c: inetpub wwwroot":

C:inetpubwwwrootPHPcomposer>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:inetpubwwwroot)

 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]

您需要创建一个目录C: pathto composer并下载 composer.phar 从这里

然后在运行PHP之前设置Composer_home和Composer_cache_dir,在批处理文件中:

composer.bat

@ECHO off
SET cwd=%cd%
PUSHD "c:pathTophp-5.4.28"
SET COMPOSER_HOME=c:pathTocomposer
SET COMPOSER_CACHE_DIR=c:pathTocomposer
"c:pathTophp-5.4.28php.exe" -c "c:pathTophpIniDir" -ddisable_functions="" -ddisable_classes="" -n "c:pathTocomposercomposer.phar" --working-dir="%cwd%" %* 
POPD

相关内容

  • 没有找到相关文章

最新更新