В этой статье мы расскажем, как установить менеджер 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.*
После авторизации
Вы увидите результат выполнения команды