Paket bilgilerinin yer alacağı bir metin dosyası (.txt) ile işe başlayacağız.
Bir metin belgesi açın ve aşağıdaki kodları içerisine yapıştırın, adını ekonomik.txt olarak kaydedin.
PHP- Kodu:
<packet version="1.4.2.0">
<domain>
<add>
<gen_setup>
<name>--DOMAIN--</name>
<client_id>--BAYIID--</client_id>
<htype>vrt_hst</htype>
<ip_address>--IP--</ip_address>
<status>0</status>
</gen_setup>
<hosting>
<vrt_hst>
<ftp_login>--FTPUSER--</ftp_login>
<ftp_password>--FTPPASS--</ftp_password>
<ftp_quota>52428800</ftp_quota>
<ssl>false</ssl>
<php>true</php>
<cgi>true</cgi>
<mod_perl>true</mod_perl>
<asp>true</asp>
<asp_dot_net>true</asp_dot_net>
<webstat>webalizer</webstat>
<errdocs>false</errdocs>
<ip_address>--IP--</ip_address>
</vrt_hst>
</hosting>
<limits>
<max_subdom>10</max_subdom>
<disk_space>52428800</disk_space>
<max_traffic>1073741824</max_traffic>
<max_db>1</max_db>
<max_box>5</max_box>
<mbox_quota>10485760</mbox_quota>
<max_mssql_db>0</max_mssql_db>
<mysql_dbase_space>52428800</mysql_dbase_space>
<max_shared_ssl_links>0</max_shared_ssl_links>
<max_maillists>1</max_maillists>
<max_webapps>5</max_webapps>
<max_odbc>3</max_odbc>
</limits>
<prefs>
<www>true</www>
</prefs>
<user>
<enabled>true</enabled>
<password>--CPSIFRE--</password>
<cname>--KONTAKADI--</cname>
<pname>--ADSOYAD--</pname>
<email>--EMAIL--</email>
<multiply_login>false</multiply_login>
<perms>
<manage_quota>true</manage_quota>
<manage_subdomains>true</manage_subdomains>
<manage_anonftp>false</manage_anonftp>
<manage_webapps>true</manage_webapps>
<manage_maillists>true</manage_maillists>
<manage_drweb>true</manage_drweb>
<make_dumps>true</make_dumps>
<manage_crontab>true</manage_crontab>
<manage_dns>true</manage_dns>
<manage_phosting>true</manage_phosting>
</perms>
</user>
</add>
</domain>
</packet>
Farkındaysanız txt olarak kaydettiğimiz dosya aslında bir xml dosyasıdır.
Biz txt olarak kaydettik çünkü konudan fazla sapmadan amaca ulaşmak istiyorum.
Bu text dosyasında anlatmak istediğim bazı kilit noktalar olacak, öncelikle trafik, disk alanı, mail kotaları gibi alanların boyut türü byte cinsinden hesaplanmak zorundadır. Bu plesk api nin istedigi bir mecburiyettir.
Yukarıdaki dosyada limitler şu şekildedir,
Disk alanı : 50MB
Trafik : 1GB
Mysql Kotası : 50MB
Posta Kutusu Kotası : 10MB
Fonksiyonlarımızın yer alacağı php dosyası için plesk.php adında bir dosya oluşturup içerisine aşağıdaki kodları yapıştırıp kayıt edelim
PHP- Kodu:
<?
////////////////////////
$cp_bayi_id = 1; // plesk panelde oluşturulmuş reseller id
$cp_ip = '66.199.199.199'; //plesk server ip
$cp_user = 'setup'; //plesk (ADMIN veya RESELLER) kullanıcı adı
$cp_pass = 'plesk'; //plesk şifre
////////////////////////
function pleskwin_host($domain,$user,$pass,$paket) {
global $cp_bayi_id, $cp_ip,$cp_user,$cp_pass;
$ch = curl_init();
define ('HOST', $cp_ip);
define ('PORT', 8443);
define ('PATH', 'enterprise/control/agent.php');
$url = 'https://' . HOST . ':' . PORT . '/' . PATH;
$headers = array(
'HTTP_AUTH_LOGIN: '.$cp_user,
'HTTP_AUTH_PASSWD: '.$cp_pass,
'Content-Type: text/xml');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
########################################
$dosya = fopen("./".$paket.".txt",'r');
$boyut = filesize("./".$paket.".txt");
$content = fread ($dosya, $boyut);
##############################################################
$content = eregi_replace("--DOMAIN--", $domain, $content);
$content = eregi_replace("--BAYIID--", $cp_bayi_id, $content);
$content = eregi_replace("--FTPUSER--", $user, $content);
$content = eregi_replace("--FTPPASS--", $pass, $content);
$content = eregi_replace("--CPSIFRE--", $pass, $content);
$content = eregi_replace("--KONTAKADI--", $adsoyad, $content);
$content = eregi_replace("--ADSOYAD--", $adsoyad, $content);
$content = eregi_replace("--EMAIL--", $email, $content);
$content = eregi_replace("--IP--", $cp_ip, $content);
##############################################################
fclose ($dosya);
########################################
$packet = $content;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $packet);
$retval = curl_exec($ch);
curl_close($ch);
return $retval;
}
?>
paket bilgilerimizin yer aldığı text dosyası ile oluşturduğumuz plesk.php dosyasının aynı klasörde yer aldığına dikkat etmeliyiz.
plesk.php içerisinde sayfanın en üstünde ayarlanması gereken bazı değişkenler mevcut zaten yanlarında açıklamaları yer alıyor ayrıca anlatmaya gerek yok sanırım.
Önemli kısımları bitirdik, şimdi kodlarımızı test edelim.
olustur.php adında bir dosya oluşturalım ve aşağıdaki gibi düzenledikten sonra ekonomik.txt ve plesk.php ile aynı dizine kayıt edelim
PHP- Kodu:
<?php
include('plesk.php');
$domain = 'merhabadunya.com';
$user = 'merhaba';
$pass = 'a1b2c3d4';
$paket = 'ekonomik'; // oluşturduğumuz txt dosyasının adı.
echo pleskwin_host($domain,$user,$pass,$paket);
?>
herşeyi tamamladık tarayıcımızdan olustur.php yi çağırdığımızda sonuç
aşağıdaki gibi olmalıdır
PHP- Kodu:
<?xml version="1.0"?>
<packet version="1.4.2.0"><domain><add><result><status>ok</status><id></id></result></add></domain></packet>
Böylece php ile uzaktan plesk windows sunucularda bir hesap açmış olduk. Örneklere istinaden erişim bilgilerimiz şöyle olacaktır,
Kontrol panel k.adı : merhabadunya.com
Kontrol panel şifre : a1b2c3d4
FTP kullanıcı adı : merhaba
FTP Şifre : a1b2c3d4
basit olarak Plesk kontrol panelinde PHP ile hosting oluşturmayı anlatmak istedim. Bu fonksiyonlar geliştirilebilir ve daha stabil bir hale getirilebilir.