Я пытаюсь установить 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
нет правильного разрешения на установку композитора и создание каталогов, поэтому я попытался установить композитор после предыдущих команд, но все еще там же проблема.
Не могли бы вы рассказать мне, что-то не так с моей командой или в чем проблема?
заранее спасибо
Вы не можете предоставить su
пароль таким образом. На самом деле я не думаю, что есть способ вообще (есть способ для sudo
)
Но повышение до корня - очень плохая идея, если только по соображениям безопасности. Вместо этого вы должны предоставить разрешения на запись apache
для /myfolder/
.
shell_exec
для установки Composer, вы, вероятно, делаете это неправильно. Почему вы должны иметь Composer на этом сервере? Можете ли вы также установить Git и SVN на эту машину (Composer будет использовать их не так уж редко)? Чего вы пытаетесь достичь вообще? Если вам интересно, как установить зависимости вашего программного обеспечения, ответ: локально на вашем собственном компьютере, который выполняет загрузку на сервер, непосредственно перед загрузкой. Это означает, что вам не нужен Composer на сервере, и вы заметите, что Github не работает, прежде чем вы отключите свой веб-сайт.