Current File : //etc/zpanel/panel/modules/wordpress_installation/code/InstallWordPress.php |
<?php
class InstallWordPress
{
public function __construct()
{
}
public function genHashpasswd($length)
{
require_once("wordpress_class/wp-passw-hash.php");
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?";
$password = substr( str_shuffle( $chars ), 0, $length );
$this->pass_wo_hash = $password;
$wp_hash = new PasswordHash(8, TRUE);
$password = $wp_hash->HashPassword($password);
return $password;
}
public function genpasswd($length)
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$password = substr( str_shuffle( $chars ), 0, $length );
return $password;
}
public function fromPostValues($over_write, $domain_name, $email_id, $folder_name, $admin_username, $admin_password)
{
// over write existing
if($over_write == 1)
{
$post = array('softsubmit' => '1',
'softdomain' => $domain_name, // Must be a valid Domain
'softdirectory' => '', // Keep empty to install in Web Root
'admin_username' => $admin_username,
'admin_pass' => $admin_password,
'admin_email' => $email_id,
'language' => 'en',
'site_name' => 'WordPress Site',
'site_desc' => 'My Blog',
'dbprefix' => 'wpb_',
'overwrite_existing' => '1'
);
}
// don't over write
else if($over_write == 2)
{
$post = array('softsubmit' => '1',
'softdomain' => $domain_name, // Must be a valid Domain
'softdirectory' => $folder_name, // Keep empty to install in Web Root
'admin_username' => $admin_username,
'admin_pass' => $admin_password,
'admin_email' => $email_id,
'language' => 'en',
'site_name' => 'WordPress Site',
'site_desc' => 'My Blog',
'dbprefix' => 'wpb_'
);
}
// No index file so install in root directory
else if($over_write == 3)
{
$post = array('softsubmit' => '1',
'softdomain' => $domain_name, // Must be a valid Domain
'softdirectory' => '', // Keep empty to install in Web Root
'admin_username' => $admin_username,
'admin_pass' => $admin_password,
'admin_email' => $email_id,
'language' => 'en',
'site_name' => 'WordPress Site',
'site_desc' => 'My Blog',
'dbprefix' => 'wpb_'
);
}
return json_encode($post);
}
public function InstallWordPress($domain_name, $email_id, $over_write, $admin_username, $admin_password, $folder_name)
{
global $controller;
$wp_oneclick_install = 'modules/' . $controller->GetControllerRequest('URL', 'module') . '/code/WP_OneClick_Install.php' ;
$MysqlConnectivity = 'modules/' . $controller->GetControllerRequest('URL', 'module') . '/code/MysqlConnectivity.php' ;
require_once($wp_oneclick_install);
require_once($MysqlConnectivity);
$post_array = self::fromPostValues($over_write, $domain_name, $email_id, $folder_name, $admin_username, $admin_password);
$get_post_array=array();
$get_post_array=json_decode($post_array);
$Mysql_Obj=new MysqlConnectivity();
$WP_Obj=new WP_OneClick_Install();
$chkdb_flag=1;
$db_name="";
$chkuser_flag=1;
$mysql_user="";
$mysql_password=self::genpasswd(10);
/* ///////////////////////// Create Database Start ////////////////////////////// */
while($chkdb_flag == 1)
{
$db_name= strtolower(self::genpasswd(6));
if($Mysql_Obj->checkDbExist($db_name)==DATABASE_DOESNOT_EXIST)
{
$get_mysql_database_output=$Mysql_Obj->createDatabase($domain_name, $db_name);
$chkdb_flag =0;
$db_explode=explode(":",$get_mysql_database_output);
// print_r($db_explode);
$db_name= $db_explode[count( $db_explode)-1];
}
}
/* ///////////////////////// Create Database End ////////////////////////////// */
/* ///////////////////////// Create Mysql User Start ////////////////////////////// */
while($chkuser_flag == 1)
{
$mysql_user= strtolower(self::genpasswd(5));
if($Mysql_Obj->checkUserExist($mysql_user)== USER_DOESNOT_EXIST)
{
$get_mysql_user_output=$Mysql_Obj->createUserForNewVersion($domain_name, $mysql_user, $mysql_password, $db_name);
$chkuser_flag =0;
$db_explode=explode(":",$get_mysql_user_output);
// print_r($db_explode);
$mysql_user= $db_explode[count($db_explode)-1];
}
}
// print_r($get_post_array);
/* ///////////////////////// Create Mysql User End ////////////////////////////// */
if($get_post_array->softdirectory == '')
{
$directory = ctrl_hrpanel::getFullPathOfDomain($domain_name);
$cmd="download_unzip_wp";
$sock_res= self::socket_connect($directory, $cmd);
}
else
{
$directory=rtrim(ctrl_hrpanel::getFullPathOfDomain($domain_name).$get_post_array->softdirectory,"/")."/";
$cmd="download_unzip_wp";
$cmd="new_download_unzip_wp";
$sock_res= self::socket_connect($directory, $cmd);
}
$user_host="localhost";
$wp_config_output=$WP_Obj->WP_Configuaration($domain_name,$get_post_array->dbprefix,$db_name,$mysql_user,$mysql_password,$user_host,$get_post_array->softdirectory);
$return_val= $WP_Obj->WP_Installation($domain_name,$get_post_array->admin_username,$get_post_array->admin_email,$get_post_array->admin_pass,$get_post_array->site_name,$get_post_array->softdirectory);
if($return_val == true)
return true;
else
return false;
}
static function socket_connect($directory, $cmd)
{
$service_port = 4444 ;
$address = gethostbyname('localhost');
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false)
{
return "";
}
$result = socket_connect($socket, $address, $service_port);
if ($result === false)
{
return "";
}
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 2000, "usec" =>0));
$in="command "."WordPress_Installation ".$directory." ".$cmd;
$out = '';
if(@socket_write($socket, $in, strlen($in)))
{
sleep(1);
$s_data = socket_read($socket,1024);
socket_close($socket);
return $s_data;
}
else
{
return "";
}
}
}
?>