Home Affiliates Marketing Domains Marketing Webhost Services Contact Us

whmcs 搬家 教程 迁移 教程

 一、备份
备份数据库、网站程序。
注意数据库和网站程序的版本号必须是对应的,不然会出现如下错误:
Down for Maintenance (Err 2)


二、恢复
在新的主机中导入数据库备份,解压网站程序备份。


三、修改
1、修改数据库配置文件:文件在根目录下configuration.php,将数据库信息修改为新的。数据库修改错误会导致程序报错,类似于Database Errors。
2、修改储存管理配置:这个需要在数据库中修改,数据表为tblstorageconfigurations。
不修改储存管理配置有的地方会出现下面的错误:
League\Flysystem\Exception: Impossible to create the root directory
3、修改程序网址:可以使用新网址打开后台管理进行修改。
中文:设置→常规设置
Setup --> General Settings

aws-panel in ubuntu 8h16g --部署

 add-apt-repository ppa:longsleep/golang-backports

  210  apt update

  211  apt upgrade

  213  apt install build-essential

  214  mv /home/ubuntu/AWS-Panel-Enhancement-master.zip ./

  215  mv /home/ubuntu/AWS-Panel-linux-amd64.zip ./

  218  apt install zip unzip

curl -sL https://deb.nodesource.com/setup_16.x -o /tmp/nodesource_setup.sh

bash /tmp/nodesource_setup.sh

apt-get install -y nodejs

  219  unzip AWS-Panel-Enhancement-master.zip

  221  cd AWS-Panel-Enhancement-master/

  225  apt install golang-go

  230  npm install --global yarn

go mod download

go mod vendor

bash ./build.sh

cd ..

cd Aws-Panel


我这里先用screen部署 今明天给您写成一个服务

screen -R aws

./Aws-Panel


小孙:

修改代码后。每次都要重新编译一次? 


:


:

但是环境是配好了


:

只需要bash ./build.sh


:

然后从新打开一次


:

就好了

小孙:
编译好了的东西 要怎么转移到普通机器上去运行

:
直接把root/Aws-panel这个文件夹

小孙:
复制到另外地方就行?

:
upload it to new  server and run :
./Aws-Panel

------------------------------------

新建 
screen -S newwork
进入 
screen -R newwork
列出所有
screen -ls
删除
 screen -S newwork -X quit


Whmcs 如何设置客户CAN NOT 申请取消 请求取消 product

 whmcs 里面注意:客户申请了取消此服务 这个客户又不想取消了,怎么设定啊

山西网友:后台找到这个客户, 在产品里 下方有一个到期删除 吧。。 好像是这


江苏网友:其实这个可以关闭,然后客户想取消的时候,发TK,然后后台取消,别让客户乱点,特别是一些人,特别喜欢试。。

台湾网友:

求教,这个已经申请的怎么关闭啊


湖北网友:到期之后自动终止 勾去掉 原因删空


试试


Here is correct  file for :   主目录  \  httpdocs    \ whmcs   \     templates\

\ six/    clientareacancelrequest.tpl


{if $invalid}


    {include file="$template/includes/alert.tpl" type="error" msg=$LANG.clientareacancelinvalid textcenter=true}

    <p class="text-center">

        <a href="clientarea.php?action=productdetails&amp;id={$id}" class="btn btn-primary">{$LANG.clientareabacklink}</a>

    </p>


{elseif $requested}


    {include file="$template/includes/alert.tpl" type="success" msg=$LANG.clientareacancelconfirmation textcenter=true}


    <p class="text-center">

        <a href="clientarea.php?action=productdetails&amp;id={$id}" class="btn btn-primary">{$LANG.clientareabacklink}</a>

    </p>


{else}


    {if $error}

        {include file="$template/includes/alert.tpl" type="error" errorshtml="<li>{$LANG.clientareacancelreasonrequired}</li>"}

    {/if}


    {include file="$template/includes/alert.tpl" type="info" textcenter=true msg="{$LANG.clientareacancelproduct}: <strong>{$groupname} - {$productname}</strong>{if $domain} ({$domain}){/if}"}


    <form method="post" action="{$smarty.server.PHP_SELF}?action=cancel&amp;id={$id}" class="form-stacked">

        <input type="hidden" name="sub" value="submit" />


        <fieldset>

            <div class="form-group" style="display:none;">

                <label for="cancellationreason">{$LANG.clientareacancelreason}</label>

                <textarea name="cancellationreason" id="cancellationreason" class="form-control" rows="6" class="fullwidth"></textarea>

            </div>


            {if $domainid}

            <div class="panel panel-warning">

                <div class="panel-heading">

                    <h3 class="panel-title">{$LANG.cancelrequestdomain}</h3>

                </div>

                <div class="panel-body">

                    <p>{$LANG.cancelrequestdomaindesc|sprintf2:$domainnextduedate:$domainprice:$domainregperiod}</p>

                    <div class="col-sm-12 text-center">

                        <label class="checkbox">

                            <input type="checkbox" name="canceldomain" id="canceldomain" /> {$LANG.cancelrequestdomainconfirm}

                        </label>

                    </div>

                </div>

            </div>

            {/if}


            <div class="form-group" style="display:none;">

                <div class="form-inline text-center">

                    <label class="control-label" for="type">{$LANG.clientareacancellationtype}</label>

                    <select name="type" id="type" class="form-control">

                        <option value="Immediate">{$LANG.clientareacancellationimmediate}</option>

                        <option value="End of Billing Period">{$LANG.clientareacancellationendofbillingperiod}</option>

                    </select>

                </div>

            </div>

            <div class="form-group" style="display:none;">

                <div class="form-inline text-center">

                    <input type="submit" value="{$LANG.clientareacancelrequestbutton}" class="btn btn-danger" />

                    <a href="clientarea.php?action=productdetails&id={$id}" class="btn btn-default">{$LANG.cancel}</a>

                </div>

            </div>


        </fieldset>


    </form>


{/if}






Whmcs:设置购买VPS时,取消NS填写和自动生成hostname

 修改这些只需要将购物车模板的configureproduct.tpl(文件位于templates/orderforms/stardand_cart)文件修改即可,具体修改步骤如下:

找到相应的NS填写的div块,然后增加样式


style="display:none;"

并将以下类似代码中的value值修改。


<input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="ns1.qsvm.com" placeholder="ns1">

<input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="ns2.qsvm.com" placeholder="ns2">

关于自动生成hostname:


只需将底下这段代码,增加到这个文件的底部即可:


<script>

$("#inputHostname").val("vm"+((new Date()).getMonth()+1).toString()+(new Date()).getDate()+parseInt(Math.random()*(999+1),10)+".qsvm.com");

</script>

另外如果你不想让用户修改hostname,你可以将底下的这个类似代码修改为我这样子:


 <input type="text" name="hostname" autocomplete="false" readonly="readonly" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.qsvm.com">

转自

here is the correct 购物车模板的configureproduct.tpl 文件:

{include file="orderforms/standard_cart/common.tpl"}


<script>

var _localLang = {

    'addToCart': '{$LANG.orderForm.addToCart|escape}',

    'addedToCartRemove': '{$LANG.orderForm.addedToCartRemove|escape}'

}

</script>


<div id="order-standard_cart">


    <div class="row">


        <div class="pull-md-right col-md-9">


            <div class="header-lined">

                <h1>{$LANG.orderconfigure}</h1>

            </div>


        </div>


        <div class="col-md-3 pull-md-left sidebar hidden-xs hidden-sm">


            {include file="orderforms/standard_cart/sidebar-categories.tpl"}


        </div>


        <div class="col-md-9 pull-md-right">


            {include file="orderforms/standard_cart/sidebar-categories-collapsed.tpl"}


            <form id="frmConfigureProduct">

                <input type="hidden" name="configure" value="true" />

                <input type="hidden" name="i" value="{$i}" />


                <div class="row">

                    <div class="col-md-8">


                        <p>{$LANG.orderForm.configureDesiredOptions}</p>


                        <div class="product-info">

                            <p class="product-title">{$productinfo.name}</p>

                            <p>{$productinfo.description}</p>

                        </div>


                        <div class="alert alert-danger hidden" role="alert" id="containerProductValidationErrors">

                            <p>{$LANG.orderForm.correctErrors}:</p>

                            <ul id="containerProductValidationErrorsList"></ul>

                        </div>


                        {if $pricing.type eq "recurring"}

                            <div class="field-container">

                                <div class="form-group">

                                    <label for="inputBillingcycle">{$LANG.cartchoosecycle}</label>

                                    <select name="billingcycle" id="inputBillingcycle" class="form-control select-inline" onchange="{if $configurableoptions}updateConfigurableOptions({$i}, this.value);{else}recalctotals();{/if}">

                                        {if $pricing.monthly}

                                            <option value="monthly"{if $billingcycle eq "monthly"} selected{/if}>

                                                {$pricing.monthly}

                                            </option>

                                        {/if}

                                        {if $pricing.quarterly}

                                            <option value="quarterly"{if $billingcycle eq "quarterly"} selected{/if}>

                                                {$pricing.quarterly}

                                            </option>

                                        {/if}

                                        {if $pricing.semiannually}

                                            <option value="semiannually"{if $billingcycle eq "semiannually"} selected{/if}>

                                                {$pricing.semiannually}

                                            </option>

                                        {/if}

                                        {if $pricing.annually}

                                            <option value="annually"{if $billingcycle eq "annually"} selected{/if}>

                                                {$pricing.annually}

                                            </option>

                                        {/if}

                                        {if $pricing.biennially}

                                            <option value="biennially"{if $billingcycle eq "biennially"} selected{/if}>

                                                {$pricing.biennially}

                                            </option>

                                        {/if}

                                        {if $pricing.triennially}

                                            <option value="triennially"{if $billingcycle eq "triennially"} selected{/if}>

                                                {$pricing.triennially}

                                            </option>

                                        {/if}

                                    </select>

                                </div>

                            </div>

                        {/if}


                        {if count($metrics) > 0}

                            <div class="sub-heading">

                                <span>{$LANG.metrics.title}</span>

                            </div>


                            <p>{$LANG.metrics.explanation}</p>


                            <ul>

                                {foreach $metrics as $metric}

                                    <li>

                                        {$metric.displayName}

                                        -

                                        {if count($metric.pricing) > 1}

                                            {$LANG.metrics.startingFrom} {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}

                                            <button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#modalMetricPricing-{$metric.systemName}">

                                                {$LANG.metrics.viewPricing}

                                            </button>

                                        {elseif count($metric.pricing) == 1}

                                            {$metric.lowestPrice} / {if $metric.unitName}{$metric.unitName}{else}{$LANG.metrics.unit}{/if}

                                            {if $metric.includedQuantity > 0} ({$metric.includedQuantity} {$LANG.metrics.includedNotCounted}){/if}

                                        {/if}

                                        {include file="$template/usagebillingpricing.tpl"}

                                    </li>

                                {/foreach}

                            </ul>


                            <br>

                        {/if}


                        {if $productinfo.type eq "server"}

                            <div class="sub-heading">

                                <span>{$LANG.cartconfigserver}</span>

                            </div>


                            <div class="field-container">


                                <div class="row">

                                    <div class="col-sm-6">

                                        <div class="form-group">

                                            <label for="inputHostname">{$LANG.serverhostname}</label>

                                            <input type="text" name="hostname" class="form-control" id="inputHostname" value="{$server.hostname}" placeholder="servername.yourdomain.com">

                                        </div>

                                    </div>

                                    <div class="col-sm-6">

                                        <div class="form-group" style="display:none;">

                                            <label for="inputRootpw">{$LANG.serverrootpw}</label>

                                            <input type="password" name="rootpw" class="form-control" id="inputRootpw" value="123456">

                                        </div>

                                    </div>

                                </div>


                                <div class="row">

                                    <div class="col-sm-6">

                                        <div class="form-group" style="display:none;">

                                            <label for="inputNs1prefix">{$LANG.serverns1prefix}</label>

                                            <input type="text" name="ns1prefix" class="form-control" id="inputNs1prefix" value="ns1" placeholder="ns1">

                                        </div>

                                    </div>

                                    <div class="col-sm-6">

                                        <div class="form-group" style="display:none;">

                                            <label for="inputNs2prefix">{$LANG.serverns2prefix}</label>

                                            <input type="text" name="ns2prefix" class="form-control" id="inputNs2prefix" value="ns2" placeholder="ns2">

                                        </div>

                                    </div>

                                </div>


                            </div>

                        {/if}


                        {if $configurableoptions}

                            <div class="sub-heading">

                                <span>{$LANG.orderconfigpackage}</span>

                            </div>

                            <div class="product-configurable-options" id="productConfigurableOptions">

                                <div class="row">

                                    {foreach $configurableoptions as $num => $configoption}

                                        {if $configoption.optiontype eq 1}

                                            <div class="col-sm-6">

                                                <div class="form-group">

                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>

                                                    <select name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" class="form-control">

                                                        {foreach key=num2 item=options from=$configoption.options}

                                                            <option value="{$options.id}"{if $configoption.selectedvalue eq $options.id} selected="selected"{/if}>

                                                                {$options.name}

                                                            </option>

                                                        {/foreach}

                                                    </select>

                                                </div>

                                            </div>

                                        {elseif $configoption.optiontype eq 2}

                                            <div class="col-sm-6">

                                                <div class="form-group">

                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>

                                                    {foreach key=num2 item=options from=$configoption.options}

                                                        <br />

                                                        <label>

                                                            <input type="radio" name="configoption[{$configoption.id}]" value="{$options.id}"{if $configoption.selectedvalue eq $options.id} checked="checked"{/if} />

                                                            {if $options.name}

                                                                {$options.name}

                                                            {else}

                                                                {$LANG.enable}

                                                            {/if}

                                                        </label>

                                                    {/foreach}

                                                </div>

                                            </div>

                                        {elseif $configoption.optiontype eq 3}

                                            <div class="col-sm-6">

                                                <div class="form-group">

                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>

                                                    <br />

                                                    <label>

                                                        <input type="checkbox" name="configoption[{$configoption.id}]" id="inputConfigOption{$configoption.id}" value="1"{if $configoption.selectedqty} checked{/if} />

                                                        {if $configoption.options.0.name}

                                                            {$configoption.options.0.name}

                                                        {else}

                                                            {$LANG.enable}

                                                        {/if}

                                                    </label>

                                                </div>

                                            </div>

                                        {elseif $configoption.optiontype eq 4}

                                            <div class="col-sm-12">

                                                <div class="form-group">

                                                    <label for="inputConfigOption{$configoption.id}">{$configoption.optionname}</label>

                                                    {if $configoption.qtymaximum}

                                                        {if !$rangesliderincluded}

                                                            <script type="text/javascript" src="{$BASE_PATH_JS}/ion.rangeSlider.min.js"></script>

                                                            <link href="{$BASE_PATH_CSS}/ion.rangeSlider.css" rel="stylesheet">

                                                            <link href="{$BASE_PATH_CSS}/ion.rangeSlider.skinModern.css" rel="stylesheet">

                                                            {assign var='rangesliderincluded' value=true}

                                                        {/if}

                                                        <input type="text" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" class="form-control" />

                                                        <script>

                                                            var sliderTimeoutId = null;

                                                            var sliderRangeDifference = {$configoption.qtymaximum} - {$configoption.qtyminimum};

                                                            // The largest size that looks nice on most screens.

                                                            var sliderStepThreshold = 25;

                                                            // Check if there are too many to display individually.

                                                            var setLargerMarkers = sliderRangeDifference > sliderStepThreshold;


                                                            jQuery("#inputConfigOption{$configoption.id}").ionRangeSlider({

                                                                min: {$configoption.qtyminimum},

                                                                max: {$configoption.qtymaximum},

                                                                grid: true,

                                                                grid_snap: setLargerMarkers ? false : true,

                                                                onChange: function() {

                                                                    if (sliderTimeoutId) {

                                                                        clearTimeout(sliderTimeoutId);

                                                                    }


                                                                    sliderTimeoutId = setTimeout(function() {

                                                                        sliderTimeoutId = null;

                                                                        recalctotals();

                                                                    }, 250);

                                                                }

                                                            });

                                                        </script>

                                                    {else}

                                                        <div>

                                                            <input type="number" name="configoption[{$configoption.id}]" value="{if $configoption.selectedqty}{$configoption.selectedqty}{else}{$configoption.qtyminimum}{/if}" id="inputConfigOption{$configoption.id}" min="{$configoption.qtyminimum}" onchange="recalctotals()" onkeyup="recalctotals()" class="form-control form-control-qty" />

                                                            <span class="form-control-static form-control-static-inline">

                                                                x {$configoption.options.0.name}

                                                            </span>

                                                        </div>

                                                    {/if}

                                                </div>

                                            </div>

                                        {/if}

                                        {if $num % 2 != 0}

                                            </div>

                                            <div class="row">

                                        {/if}

                                    {/foreach}

                                </div>

                            </div>


                        {/if}


                        {if $customfields}


                            <div class="sub-heading">

                                <span>{$LANG.orderadditionalrequiredinfo}</span>

                            </div>


                            <div class="field-container">

                                {foreach $customfields as $customfield}

                                    <div class="form-group">

                                        <label for="customfield{$customfield.id}">{$customfield.name}</label>

                                        {$customfield.input}

                                        {if $customfield.description}

                                            <span class="field-help-text">

                                                {$customfield.description}

                                            </span>

                                        {/if}

                                    </div>

                                {/foreach}

                            </div>


                        {/if}


                        {if $addons || count($addonsPromoOutput) > 0}


                            <div class="sub-heading">

                                <span>{$LANG.cartavailableaddons}</span>

                            </div>


                            {foreach $addonsPromoOutput as $output}

                                <div>

                                    {$output}

                                </div>

                            {/foreach}


                            <div class="row addon-products">

                                {foreach $addons as $addon}

                                    <div class="col-sm-{if count($addons) > 1}6{else}12{/if}">

                                        <div class="panel panel-default panel-addon{if $addon.status} panel-addon-selected{/if}">

                                            <div class="panel-body">

                                                <label>

                                                    <input type="checkbox" name="addons[{$addon.id}]"{if $addon.status} checked{/if} />

                                                    {$addon.name}

                                                </label><br />

                                                {$addon.description}

                                            </div>

                                            <div class="panel-price">

                                                {$addon.pricing}

                                            </div>

                                            <div class="panel-add">

                                                <i class="fas fa-plus"></i>

                                                {$LANG.addtocart}

                                            </div>

                                        </div>

                                    </div>

                                {/foreach}

                            </div>


                        {/if}


                        <div class="alert alert-warning info-text-sm">

                            <i class="fas fa-question-circle"></i>

                            {$LANG.orderForm.haveQuestionsContact} <a href="contact.php" target="_blank" class="alert-link">{$LANG.orderForm.haveQuestionsClickHere}</a>

                        </div>


                    </div>

                    <div class="col-md-4" id="scrollingPanelContainer">


                        <div id="orderSummary">

                            <div class="order-summary">

                                <div class="loader" id="orderSummaryLoader">

                                    <i class="fas fa-fw fa-sync fa-spin"></i>

                                </div>

                                <h2>{$LANG.ordersummary}</h2>

                                <div class="summary-container" id="producttotal"></div>

                            </div>

                            <div class="text-center">

                                <button type="submit" id="btnCompleteProductConfig" class="btn btn-primary btn-lg">

                                    {$LANG.continue}

                                    <i class="fas fa-arrow-circle-right"></i>

                                </button>

                            </div>

                        </div>


                    </div>


                </div>


            </form>

        </div>

    </div>

</div>


<script>recalctotals();</script>

<script>

$("#inputHostname").val("vps"+((new Date()).getMonth()+1).toString()+(new Date()).getDate()+"-"+parseInt(Math.random()*(999+1),10)+".whmcs.auto");

</script>


Pulover’s Macro Creator

 Quick Tutorial


The simplest way to get started with Pulover’s Macro Creator is using the recorder. Follow these steps record a macro:


    Start Pulover’s Macro Creator.

    Click on the Record button on the toolbar or press Ctrl+R.

    Press the record hotkey (default is F9).

    Make mouse and keyboard actions.

    Press the record hotkey again to stop.

    Press the playback hotkey (default is F3) to reproduce your actions.

https://www.macrocreator.com/help/

You can change record and playback options clicking the arrows beside those buttons in the toolbar, or going to Settings.


Although the recorder is a good choice for quick tasks, Pulover’s Macro Creator can do many other things if you take the time to learn its commands. You can add loops, conditions, create variables and arrays, send text on a background window, search for an image or pixel and much more.

Download Pulover’s Macro Creator


    Download installer from GitHub – Easy installation with shortcuts and file association.

    Download source code – The source code of the current version.

    View source on GitHub

    Other versions and releases on GitHub

Game-download-Age2-HD-帝国时代2-高清版-下载

《帝国时代2》简体中文免安装版


游戏介绍

《帝国时代2:征服者》(Age of Empires II:The Age of Kings)是获得高度评价的即时战略游戏帝国时代(Age of Empires)的续作,也是当前大红大紫的神话时代(Age of Mythology)的前作。这款由微软的Ensemble Studios出品的文明型战略游戏,涵盖了从罗马帝国衰落到中世纪的大部分战争史实,共有13个文明供玩家选择,其亮丽的游戏界面,方便的控制操作,以及高智能的AI,使其获得USA TODAY评出的2000年最佳年度游戏。

一年以后,官方资料片《帝国时代二:征服者》的推出,不仅增加了新的5个文明,而且在地图类型和游戏平衡性得到更大的加强,使得帝国时代2成为一个整体架构相当杰出的游戏。可以毫不夸张的说,《帝国时代2》已经达到了2D即时战略游戏的巅峰,至该游戏以后,战略游戏完全进入了3D时代。

游戏简介

由ES工作组开发的《帝国时代2:征服者》,于2000年秋季正式发行,加强版中增加了不少新的兵种,五个新的文明:玛雅、阿兹特克、高丽、匈奴和西班牙,拥有新的农田队列功能。城镇中心将耗费一定数量的石料,哨所耗费的石料将减少、视野将更开阔。

新的内容

靶场

指环是在城堡时代出现的科技,能够增加弓箭手的攻击速度和命中率。这使得一些具备优秀弓箭手的文明变得更为强大。

帕提亚战术

能够在帝王时代进一步提升骑兵射手的战斗力,它能够同时增加骑兵射手的普通防御力和防弓箭护甲,减轻敌人近战兵种和特殊弓箭类兵种对骑兵射手所造成的伤害。

马厩

血统在封建时代出现,能够令所有骑兵单位,包括骑兵射手、骑士、骆驼骑士、轻骑兵、强力轻骑兵和波斯战象的生命值提升20点。研究的费用是150食物和100黄金。

修道院

医药学增加驻扎单位回复生命值的速度,这就是说驻扎在城镇中心或城堡中的部队将得到更快地治疗效果。这一科技在城堡时代出现。

异教同样在城堡时代出现,并对所有的单位起作用。如果任何单位将被敌人的僧侣招降,他们会选择死亡而不是加入敌军。这将是非常昂贵的科技。

神权允许一组僧侣同时招降一名单独的敌人,在招降成功时只消耗一名僧侣的法力。这一科技在帝王时代出现。

市场

沙漠商队增加贸易马车的移动速度,在研究了绘图法之后出现的科技,每个文明都将拥有这一科技。

城堡

独特科技耗费较高,同时带来相当效果的科技,在下面的文明介绍中有较详细的介绍。


Warning:The Links have been Blocked by China Internet
https://drive.google.com/drive/folders/1Un0F2Vc7kFL0_ycKmOlPoYiJhVpXNWKY?usp=sharing

Music-经典老歌1688首

Warning:The Links have been Blocked by China Internet

Game-download-饥荒(Don't Starve)》集成巨人国+海难DLC



















Warning:The Links have been Blocked by China Internet