我已经在 Windows Vista 64 机器上安装了 php 和 composer。我有一段时间让 Composer 接受指令以使用默认 C:\Users\\AppData\Roaming\Composer 以外的指定目录。
我尝试设置一个 config.json 文件,即:
{
"config": {
"COMPOSER_HOME": "c:\inetpub\wwwroot\PHPcomposer\",
"COMPOSER_CACHE_DIR": "c:\inetpub\wwwroot\PHPcomposer\"
}
}
这被完全忽略了。甚至为了好玩而添加了缓存目录。
我尝试改变 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]