PHP Composer в Jelastic без сложностей

В этой статье мы расскажем, как установить менеджер php-пакетов composer в окружение без использования ssh. Оригинал статьи.

Установка composer

Войдите в панель управления Jelastic и перейдите в раздел конфигурации вашего веб-сервера nginx или apache2

В открывшемся менеджере файлов перейдите в директорию /var/www/webroot/ROOT и откройте окно загрузки файла

Во вкладке url укажите адрес для скачивания composer:
https://getcomposer.org/composer.phar

Создайте в папке /var/www/webroot/ROOT файл composer.php и добавьте в него следующий код:

<?php
$argument = $_GET['arg'];
$command = "php composer.phar";
$pwd = getcwd();
putenv("COMPOSER_HOME=$pwd");
echo '<pre>';
// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
system("{$command} {$argument} 2>&1", $retval);
// Printing additional info
echo "
</pre>
<hr />Return value from \"$command $argument\": $retval<br>
Working dir: $pwd";
?>

Сохраните файл

Создайте в папке /var/www/webroot/ файл .htpasswd

В этом файле хранятся логины и пароли для доступа к composer, в формате user:password. При этом, пароль хранится в зашифрованном виде. Ниже приведен пример для логина/пароля admin/admin

admin:YjeJLJ0SYlBHU

Однако, мы не рекомендуем устанавливать простые пароли. Свой хеш пароля вы можете сгенерировать с помощью онлайн-утилиты

Настройка авторизации для Apache 2

Создайте файл .htaccess в папке /var/www/webroot/ROOT/, если он еще не существует

Добавьте в него следующие строки:

<Location /composer.php>
AuthName "Restricted area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/webroot/.htpasswd
Require valid-user
</Location>

Настройка авторизации для NGINX

Откройте в редакторе файлов nginx.conf и добавьте в него следующие строки:

location = /composer.php {
       root   /var/www/webroot/ROOT;
       auth_basic           "closed site";
       auth_basic_user_file /var/www/webroot/.htpasswd;
       include /etc/nginx/fastcgi_params;  
       fastcgi_pass 127.0.0.1:9000;
       fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
       fastcgi_param DOCUMENT_ROOT $realpath_root;
       fastcgi_param PATH_INFO $fastcgi_script_name;
}

Завершение установки

Перезапустите ваш веб-сервер

Использование

Для выполнения команды composer, необходимо вызвать следующий URL:

http://{env_name}/composer.php?arg={command}

где {env_name} — адрес вашего окружения, {command} — команда composer, должна быть urlencoded

Для  установки composer require monolog/monolog:1.0.* откройте в браузере адрес (заменив composer.mycloud.by на ваше имя окружения)

http://composer.mycloud.by/composer.php?arg=require%20monolog%2Fmonolog%3A1.0.*

После авторизации

Вы увидите результат выполнения команды