Ограничение php composer open_basedir, как мне установить домашние пути?

Я установил php и composer на машине с Windows Vista 64. У меня дьявольское время заставляет 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 или в разделе "config" в composer.phar. В 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 ответ

Вам нужно создать каталог c:\pathTo\composer и загрузить в него composer.phar отсюда

Затем настройте COMPOSER_HOME и COMPOSER_CACHE_DIR перед запуском php в командном файле:

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
Другие вопросы по тегам