#php #azure #azure-devops #composer-php #azure-pipelines
#php #azure #azure-devops #композитор-php #azure-конвейеры
Вопрос:
Я пытаюсь развернуть свое приложение PHP (CakePHP) через Azure DevOps и установить зависимости Composer на этапе сборки конвейера, используя размещенный в Windows агент.
Установка composer завершается неудачно, поскольку обычные расширения PHP (а именно intl и fileinfo) недоступны для исполняемого файла PHP, запущенного в сборке. После развертывания веб-приложение в Azure имеет эти расширения. Расширение composer
веб-приложения установлено в реальной службе приложений в Azure, и в composer.phar
корне репозитория есть файл.
Шаг, который я пытаюсь выполнить, просто php composer.phar install --no-scripts --no-interaction --optimize-autoloader
.
Конвейер завершается с этой ошибкой, но я понятия не имею, как получить доступ к файлу .ini или предоставить какие-либо параметры.
To enable extensions, verify that they are enabled in your .ini files:
- C:toolsphpphp.ini
Можно установить PHP_INI_SCAN_DIR, но этот «шаблон php» из DevOps стирает все добавленные свойства конфигурации при новом развертывании. Это также кажется совершенно другим PHP, чем то, что на самом деле работает служба приложений. Я могу создать новый шаблон для параметров конфигурации, но проблема с расширением PHP, похоже, все еще существует на этапе сборки.
Если кто-нибудь знает, как просто установить зависимости composer и включить их в созданный артефакт сборки (zip-файл), я был бы очень признателен. Спасибо!
Комментарии:
1. Вы можете попробовать изменить
C:toolsphpphp.ini
, чтобы включить расширения. например, запустите эту команду в задаче scrpt конвейера:echo "extension=intl" >> C:toolsphpphp.ini
Ответ №1:
Как указано в комментарии Леви Лу-MSFT, я смог изменить конфигурацию PHP, добавив новую задачу сборки с помощью задачи командной строки и введя:
echo extension=intl >> C:toolsphpphp.ini
echo extension=fileinfo >> C:toolsphpphp.ini
Добавление кавычек вызвало проблему, но, похоже, без этого не работает.