如何使用drupal使用命令行命令

时间:2012-06-09 19:02:14

标签: php drupal terminal vlc

我有一个云服务器,我正在运行drupal 7。 出于某种原因,我必须在服务器端使用VLC播放器进行实时视频录制。 我可以这样运行命令行命令。 但我想知道我是否可以在drupal中为客户提供一个网页 客户端可以添加实时视频URL,并在单击时提交命令行命令 在服务器终端运行......类似的东西 请告诉我是否可能 任何潜在客户/链接都将受到高度赞赏 提前致谢

2 个答案:

答案 0 :(得分:1)

Drupal部分实际上是最简单的部分。您需要create a custom module来实施hook_menu()以提供包含表单的页面(使用Form API构建)

function MODULE_menu() {
  return array(
    'encode_video' => array(
      'page callback' => 'drupal_get_form',
      'page arguments' => array('MODULE_encode_video_form'),
      'access arguments' => 'encode video'
    )
  );
}

function MODULE_encode_video_form($form, &$form_state) {
  $form = array(
    'video_url' => array(
      '#type' => 'textfield', 
      '#title' => t('Video URL'), 
      '#size' => 80, 
      '#required' => TRUE,
    ),
    'submit' =>  array(
      '#type' => 'submit',
      '#value' => t('Encode'),
    ),
  );
  return $form;
}

function MODULE_encode_video_form_validate($form, &$form_state) {
  // Validate and sanitize $form_state['values']['video_url'] here...
}

function MODULE_encode_video_form_submit($form, $form_state) {
  $url = $form_state['values']['video_url'];
  // Start video encoding here...
}

编码视频是最难的部分。必须仔细编写用于直接从PHP开始视频编码过程的任何方法。例如,它必须处理进程管理,以避免过多的编码服务器过度充电。它还必须确保在后台正确启动进程以避免阻止PHP进程(以避免超时)。一个可能更好的解决方案是使用某种后台进程管理器将编码排入队列。 Gearman可能是一个简单而干净的解决方案。它还允许您以更适合长时间运行视频编码的分离语言编写视频编码过程。目前正在开发中Gearman integration module来帮助它在Drupal中的使用,但这不是必需的。

答案 1 :(得分:0)

execshell_exec将帮助您入门。

http://php.net/manual/en/function.exec.php

它们允许您从命令行执行任何linux命令。

要小心!!!确保您没有从字符串动态创建命令。这可以让你达到最大值。