devel / php drupal에서 drush 명령 실행


9

누구든지 devel / php에서 drush 명령을 어떻게 실행할 수 있습니까?

devel / php에서 PHP 코드를 실행할 수 있습니다. 그러나 devel / php에서 drush 명령을 어떻게 실행할 수 있는지 모르겠습니다. (우리는 devel 모듈에서 나오는 "devel / php"URL을 알고 있습니다).

cron 목적으로 사용자 정의 drush 명령을 작성했습니다. 명령 줄에서 해당 명령을 실행할 수 있습니다.

> drush my-cmd or drush cc all or drush status , etc ... I can run it through command line.

devel / php에서 실행하기 위해 아래에 언급 된 일부 기능이 필요합니다.

some_function("drush cc all");

답변:


11

누군가 Drupal 사이트 내에서 셸 액세스를 제공하기위한 모듈을 만들려고했지만 완전히 디버깅되지 않았습니다. Drupal Terminal 프로젝트를 참조하십시오 . 아마도 jQuery 터미널에 누군가가 그것을 다시 방문하면이 작업을보다 쉽게 ​​수행 할 수있는 발전이 있었을 것입니다.

PHP 내에서 Drush를 실행하려면 일반적으로보다 낫게 사용하는 drush_invoke_process()것이 좋습니다 exec("drush ...").

$values = drush_invoke_process("@site", "cc", array("all"), array("verbose"));

단 일회성 명령을 실행 중이고 명령 결과에 신경 쓰지 않는다면 exec("drush ...")괜찮습니다.


6

kalidasan이 제안했듯이 exec () 함수를 사용하여 다음과 같은 작업을 수행 할 수 있습니다.

exec("drush fra -y", $output); var_dump($output);

일반적으로 devel은 settings.php가있는 곳에서이 명령을 실행합니다. 사용자 정의 다중 사이트 아키텍처가 있고 다른 경로에서 drush 명령을 실행해야하는 경우 명령을 ";"세미 콜론을 사용하여 올바른 경로에 액세스하고 drush 명령을 실행하십시오.

exec("cd {absolute or relative path to your settings.php site}; drush fra -y;", $output); var_dump($output);

경우에 따라 devel / php에서 drush 명령을 실행하면 drush에서 기능을 실행해야하지만 명령 줄 셸에 액세스 할 수 없거나 실행할 권한이없는 경우에 유용합니다.

참고 : 예를 들어 "drush fra"만 사용했으며 다른 drush 명령과 함께 사용할 수 있습니다.


5

마침내 해결책을 찾았습니다. shell_exec ( "drush status") 가 정상적으로 작동합니다.

여기에 이미지 설명을 입력하십시오


2

Drush는 Drupal 용 명령 줄 셸Unix 스크립팅 인터페이스입니다.

당신은 있어야쉘 액세스 실행 drush의 명령을.


devel / php에서 할 수있는 방법이 있습니다. exec () 사용법을 알고 싶습니다. 비슷한 방법으로 devel / php를 통해 drush 명령을 실행할 수 있습니다. 나는 당신의 대답을 받아 들일 수 없습니다.
kalidasan

.. 그리고 대답은 ......shell_exec()
sobi3ch

@ sobi3ch devel에서 PHP 코드를 사용하여 사이트와 데이터베이스를 백업 할 수 있습니까? 스크립트를 공유하십시오. 이것이 유일하게 사용할 수있는 옵션임을 고려하십시오. backup_migrate 모듈을 설치할 수 없습니다.
Umair
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.