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