Windows Vista 64 マシンに php と composer をインストールしました。デフォルトの C:\Users\\AppData\Roaming\Composer 以外の指定されたディレクトリを使用するディレクティブを Composer が受け入れるようにするには、非常に苦労しています。
私は config.json ファイルを設定しようとしました:
{
"config": {
"COMPOSER_HOME": "c:\inetpub\wwwroot\PHPcomposer\",
"COMPOSER_CACHE_DIR": "c:\inetpub\wwwroot\PHPcomposer\"
}
}
そしてこれは完全に無視されました。楽しみのために 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>\AppData\Roaming\Composer
iis が何かをキャッシュしていた場合に備えて、iisreset も実行しました。
だから、私がどこで間違っているのかについての手がかり。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]