Установите композитор с помощью функции php shell_exec

1

Я пытаюсь установить composer используя команду PHP shell_exec как описано на официальном сайте композитора.

Мой сервер linux - centOS 6.

shell_exec('curl -sS https://getcomposer.org/installer | php');
/*
 * OR
 */
shell_exec('php -r "readfile(\'https://getcomposer.org/installer\');" | php');

но есть ошибка разрешения:

> Downloading... 

>Could not create file /myfolder/composer.phar
>
> fopen(/myfolder/composer.phar): failed to open stream: Permission denied Download failed:
>
> fopen(/myfolder/composer.phar): failed to open stream: 
>
> Permission denied fwrite() expects parameter 1 to be
> resource, boolean given 

>Downloading... Could not create file to open stream: composer.phar:
>
>etc...

Итак, я попытался изменить пользователя на root с помощью этой команды:

shell_exec('su -root; myPass; whoami');
//And
shell_exec('su - root; myPass; whoami');
//And
shell_exec('su -u root -p myPass; whoami');

И снова whoami возвращаются apache

Кажется, у пользователя apache нет правильного разрешения на установку композитора и создание каталогов, поэтому я попытался установить композитор после предыдущих команд, но все еще там же проблема.

Не могли бы вы рассказать мне, что-то не так с моей командой или в чем проблема?

заранее спасибо

  • 0
    Извините, но я должен спросить: почему вы хотите сделать это вообще? Это то, что у вас нет доступа к целевой машине?
  • 0
    Если вам нужно использовать shell_exec для установки Composer, вы, вероятно, делаете это неправильно. Почему вы должны иметь Composer на этом сервере? Можете ли вы также установить Git и SVN на эту машину (Composer будет использовать их не так уж редко)? Чего вы пытаетесь достичь вообще? Если вам интересно, как установить зависимости вашего программного обеспечения, ответ: локально на вашем собственном компьютере, который выполняет загрузку на сервер, непосредственно перед загрузкой. Это означает, что вам не нужен Composer на сервере, и вы заметите, что Github не работает, прежде чем вы отключите свой веб-сайт.
Теги:
composer-php
shell-exec

1 ответ

0

Вы не можете предоставить su пароль таким образом. На самом деле я не думаю, что есть способ вообще (есть способ для sudo)

Но повышение до корня - очень плохая идея, если только по соображениям безопасности. Вместо этого вы должны предоставить разрешения на запись apache для /myfolder/.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню