Проблемы динамического создания поддоменов в php

Здравствуйте, я создаю поддоменов в php с помощью следующего кода.

function subd($host,$port,$ownername,$passw,$request) {


  $sock = fsockopen('localhost',2082);

  if(!$sock) {

    print('Socket error');

    exit();

  }

  $authstr = "$ownername:$passw";

  $pass = base64_encode($authstr);

  $in = "GET $request\r\n";

  $in .= "HTTP/1.0\r\n";

  $in .= "Host:$host\r\n";

  $in .= "Authorization: Basic $pass\r\n";

  $in .= "\r\n";


  fputs($sock, $in);

  while (!feof($sock)) {

    $result .= fgets ($sock,128);

  }

  fclose( $sock );


  return $result;

}

$domain="memories.mydomain.com";

        $subd="abcdef";

        $request ="frontend/x3/subdomain/doadddomain.html?domain=$subd&rootdomain=$domain&dir=public_html/$subd&go=Create";

        $host="ftp.mydomain.com";

        $port="2083";

        $ownername="ownername";

        $passw="my_PASSWORD";

        $result=subd($host,$port,$ownername,$passw,$request);

        $show = strip_tags($result);


    $d="http://$subdomainname.$domain";


          echo '<META HTTP-EQUIV="Refresh" Content="0; URL='.$d.'">';

Я вижу, что мой поддомен cpanel создает, но я хочу перенаправить на мои sob-домены, когда создание завершено, но вместо поддомена я перенаправляю на страницу ошибки, которая находится по http://abcdef.memories.mydomain.com/cgi-sys/defaultwebpage.cgi. В чем проблема. Почему я перенаправляю на неподдерживаемую ссылку? Спасибо

2 ответа

Вау, вы пишете автоматизированный интерфейс для автоматизированного интерфейса. Почему бы вам просто не создать поддомен непосредственно в скрипте php и не возиться с cpanel?

Вы уверены, что это должно быть сделано как запрос GET? Делать вещи на сервере через GET, которые имеют последствия, НИКОГДА не является хорошей идеей: http://thedailywtf.com/Articles/The_Spider_of_Doom.aspx

  1. Не используйте свой собственный http-клиент. Используйте curl (хорошо) или что-то вроде file_get_contents (не так хорошо)
  2. Проверьте, хочет ли CPanel сделать это как POST.
  3. Вы передаете порт #2083, но затем полностью его игнорируете и используете в коде жестко закодированный порт #2082.
  4. Ваш запрос URL не имеет ведущих /, что делает его недействительным запросом. Вы можете использовать такие пути на странице HTML, потому что браузер переписывает href="" добавьте адрес страницы, на которой находится ссылка - но вы не используете браузер. Вы катите свою собственную версию.
Другие вопросы по тегам