PHP Script cPanel автоматично добавяне на субдомейн API

Ticketa

Registered
Привет
Дали има как да се направи АПИ което да ми създава субдомейн за cpanel ?

Целта ми е да не ползвам root акаунт , а АПИ което е ограничено и да ползва само и единствено достъп за добавяне / изтриване на субдомейн
 
cPanel си имат API. Тоест API-то им в новите версии е заменено с UAPI но може да се ползва.
 
Реших да опитам чрез htacess

Обаче всеки субдомейн , който отварям ми дава грешка

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.


Субдомейните се отварят(съхраняват) от папка:
/home/user/web/www/USERNAME

/home/user/.htaccess
Код:
DirectoryIndex index.php
Options +FollowSymLinks
Options -Indexes
Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule (.*) https://%1/$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_URI} !=/server-info
RewriteRule ^.*$ index.php [L,QSA]


В папката /web/index.php
Имам пренасочване към субдомейн
Код:
if ( SITE_URL != reset_url($_SERVER['HTTP_HOST']) ) {
		header( "Location: https://" . SITE_URL . $_SERVER['REQUEST_URI'], true, 301 );
		exit;
	}
	
	// прехвърляне сайта
	if ( ! empty($_SERVER['REQUEST_URI']) && ($redirect = json_get("seo.redirect")) ) {
		$request_uri = urldecode( trim($_SERVER['REQUEST_URI'], '/') );
		foreach ( $redirect as $key => $val ) {
			if ( $val[0] == $request_uri ) {
				header( "Location: /" . $val[1], true, 301 );
				exit;
			}
		}
		unset( $redirect, $request_uri );
	}
	
	// основни модули
	require WEB_DIR . '/engine/engine.php';

Всеки субдомейн си има и . htaccess
/Home/user/web/www/user/.htacess
Код:
Options +FollowSymLinks
Options -Indexes
Options -MultiViews

RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule (.*) http://%1/$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ index.php [L,QSA]

index.php
Код:
<?php

define ( 'ROOT_DIR', '../../..' );
define ( 'SITE_DIR', __DIR__ );

include_once ROOT_DIR . '/web/index.php';

?>

Всичко това си работеше коректно докато не направих главния домейн да е добавен чрез Add-on към друг cpanel потребител (ограничих cpanel users поради лимитите които наложиха)

Сега към момента домейна майка site.com работи, но неговите дъщерни НЕ demo.site.com, bla.site.com
 
Интересно , че когато добавя wilcard



*.site.com - субдомейните не работят

Но ако добавя директно някой от субдомейните

demo.site.com - конкретния домейн работи
 
Грешката, която е записана в error_log файла е следната:
AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
 
Създадох чрез API2 добавяне на субдомейни и реших нещата.

Въпроса е че АПИ се логва чрез парола и потребител - това ме притеснява

Как мога да го направя да работи чрез ТОКЕН с ограничени права?

https://github.com/CpanelInc/xmlapi-php - ползвам това
 
Ticketa каза:
Създадох чрез API2 добавяне на субдомейни и реших нещата.

Въпроса е че АПИ се логва чрез парола и потребител - това ме притеснява

Как мога да го направя да работи чрез ТОКЕН с ограничени права?

https://github.com/CpanelInc/xmlapi-php - ползвам това

https://docs.cpanel.net/cpanel/security/manage-api-tokens-in-cpanel/

И ако е само за създаване на поддомейни, можеш да си ползваш директно техните библиотеки.

https://documentation.cpanel.net/display/DD/Guide+to+the+LiveAPI+System+-+PHP+Class
https://documentation.cpanel.net/display/DD/cPanel+API+2+Functions+-+SubDomain%3A%3Aaddsubdomain

Код:
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
  
// Create a subdomain.
$addsubdomain = $cpanel->api2(
    'SubDomain', 'addsubdomain',
        array(
        'domain'                => 'subdomain',
        'rootdomain'            => 'example.com',
        'dir'                   => '/public_html/directory_name',
        'disallowdot'           => '1',
    )
);
 

Горе