Введение: В современном мире веб-разработки и управления серверами, где требуется гибкость и оперативность, ключевую роль играет возможность легко передавать ресурсы, такие как домены и базы данных, между пользователями. В этой статье мы рассмотрим, как использовать Hestia Control Panel для эффективной передачи домена пользователю hestia и переноса базы данных другому пользователю с помощью команды v-change-database-owner.
Основная Часть:
Передача Домена:
Что такое Hestia Control Panel?
Почему важна передача домена?
Шаги для передачи домена пользователю hestia:
Вход в Hestia Control Panel.
Выбор домена для передачи.
Использование команды v-change-domain-owner.
Проверка передачи домена.
Перенос Базы Данных:
Значение баз данных в управлении веб-ресурсами.
Процесс переноса базы данных:
Выбор базы данных для переноса.
Применение команды v-change-database-owner.
Важные аспекты безопасности при переносе.
Подтверждение успешного переноса.
Заключение: Передача домена и перенос базы данных с использованием Hestia Control Panel - это простые и эффективные процедуры, которые значительно облегчают управление веб-ресурсами. Следуя представленным здесь инструкциям, вы сможете быстро и безопасно осуществить необходимые изменения.
В windows 10 уже есть интегрирован ssh.exe(наконец-то!) и winscp можно настроить так что бы putty, как не крути, более тяжелая программа вообще не запускалась
https://www.drupal.org/project/commerce_checkout_order_fields. Just enable it, go to /admin/commerce/config/order-types/default/edit/form-display, scroll down, enable 'Checkout' view, drag/drop fields on the Checkout view, and then go to /admin/commerce/config/checkout-flows/manage/default and add 'Order Fields: Checkout' pane to a step you want. Enjoy
sudo -u www-data php occ files:scan --help
Usage:
files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all]
[user_id1] ... [user_idN]
Arguments:
user_id will rescan all files of the given user(s)
Options:
--path limit rescan to the user/path given
--all will rescan all files of all known users
--quiet suppress any output
--verbose files and directories being processed are shown
additionally during scanning
--unscanned scan only previously unscanned files
Обычно предлагается удалять через find и рабочий вариант, но в моем случаи 1.5млн удаляло часов 10 что недопустимо долго так перебирать пошел другим путем через цыклы и маски
for i in {a..z}
do
rm /var/www/*/data/www/*/system/sessions/sess_$i[a-c]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[d-g]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[h-k]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[l-n]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[p-r]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[s-v]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[w-y]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[y-z]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[0-2]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[3-5]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[6-8]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[8-9]*
rm /var/www/*/data/www/*/system/sessions/sess_$i*
done
for i in {0..9}
do
rm /var/www/*/data/www/*/system/sessions/sess_$i[a-c]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[d-g]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[h-k]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[l-n]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[p-r]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[s-v]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[w-y]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[y-z]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[0-2]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[3-5]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[6-8]*
rm /var/www/*/data/www/*/system/sessions/sess_$i[8-9]*
rm /var/www/*/data/www/*/system/sessions/sess_$i*
done
Или удалить файлы, которые старше семи дней:
for f in /tmp/logs/*.log
do
find $f -mtime +7 -exec rm {} \;
done
1. sudo nano /etc/apt/sources.list
2. добавить строчки если хотите до 5.5
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all
или
deb http://packages.dotdeb.org wheezy-php56 all
deb-src http://packages.dotdeb.org wheezy-php56 all
3. apt-get update
но скорее всего не сможет обновить проблема с ключами бла бла лечиться тдвумя способами
3.1. gpg --keyserver packages.dotdeb.org --recv-key E9C74FEEA2098A6E
gpg -a --export E9C74FEEA2098A6E | sudo apt-key add -
или wget http://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
Два шага, 1 собрать PHP с исходников(другая тема) суть ее в том что бы в отедльных папках были отдельные версии PHP в инете куча статей, может и у меня дойдут руки.
Второй шаг 3 файла создать и перезапустить ispmanager
killall ispmgr
killall ispmgr
По пути /usr/local/ispmgr/etc
создаем файл ispmgr_mod_phpversion.xml с содержимым
<?xmlversion="1.0"encoding="UTF-8"?><mgrdata><handlername="phpversion.pl"type="cgi"><func>phpversion</func><func>phpversion.edit</func><func>phpversion.delete</func><func>userphpversion</func><func>userphpversion.enable</func></handler><metadataname="phpversion"type="list"key="item"><toolbar><toolbtnfunc="phpversion.edit"type="new"img="t-new"name="new"/><toolbtnfunc="phpversion.edit"type="edit"img="t-edit"name="edit"default="yes"/><toolbtnfunc="phpversion.delete"type="group"img="t-delete"name="delete"/></toolbar><coldata><colsort="alpha"sorted="yes"name="item"type="data"/><colsort="alpha"name="path"type="data"/></coldata></metadata><metadataname="phpversion.edit"type="form"><form><fieldname="item"><inputtype="text"name="item"/></field><fieldname="path"><inputtype="text"name="path"/></field></form></metadata><metadataname="userphpversion"type="list"key="item"><toolbar><toolbtnfunc="userphpversion.enable"type="edit"img="t-on"name="enable"default="yes"/></toolbar><coldata><colsort="alpha"sorted="yes"name="item"type="data"/><colname="props"sort="prop"><propname="active"onimg="t-on"defimg="t-off"/></col></coldata></metadata><mainmenulevel="7"><nodename="tool"><nodename="phpversion"/></node></mainmenu><mainmenulevel="5"><nodename="tool"><nodename="userphpversion"/></node></mainmenu><langname="en"><messagesname="desktop"><msgname="menu_phpversion">PHP versions</msg><msgname="menu_userphpversion">PHP version</msg></messages><messagesname="phpversion"><msgname="title">PHP versions</msg><msgname="item">Availible versions</msg><msgname="path">Path to binary</msg><msgname="msg_phpversion_delete">Delete version</msg><msgname="hint_new">Add version</msg><msgname="hint_edit">Edit version</msg><msgname="hint_delete">Delete version</msg></messages><messagesname="phpversion.edit"><msgname="title">Edit version</msg><msgname="title_new">New version</msg><msgname="item">Version value</msg><msgname="path">Path to binary file</msg><msgname="hint_item">Version value</msg><msgname="hint_path">Path to php-cgi (e.g. /usr/bin/php-cgi)</msg></messages><messagesname="userphpversion"><msgname="title">PHP version in use</msg><msgname="item">Availible versions</msg><msgname="hint_enable">Choose version</msg></messages></lang><langname="ru"><messagesname="desktop"><msgname="menu_phpversion">Версии PHP</msg><msgname="menu_userphpversion">Версия PHP</msg></messages><messagesname="phpversion"><msgname="title">Версии PHP</msg><msgname="item">Доступные версии</msg><msgname="msg_phpversion_delete">Удалить версию</msg><msgname="hint_new">Добавить версию</msg><msgname="hint_edit">Править версию</msg><msgname="hint_delete">Удалить версию</msg></messages><messagesname="userphpversion"><msgname="title">Используемая версия PHP</msg><msgname="item">Доступные версии</msg><msgname="hint_enable">Включить версию</msg></messages><messagesname="phpversion.edit"><msgname="title">Править версию</msg><msgname="title_new">Новая версия</msg><msgname="item">Значение версии</msg><msgname="path">Путь до исполняемого файла</msg><msgname="hint_item">Значение версии (5.1.6, 5.2.10) </msg><msgname="hint_path">Путь до бинарника (например, /usr/bin/php-cgi)</msg></messages></lang></mgrdata>
второй файл по пути /usr/local/ispmgr/addon
phpversion.pl
#!/usr/bin/perlBEGIN{push@INC,'/usr/local/ispmgr/lib/perl'}use Mgr;use CGI qw/:standard/;use strict;use warnings;my$Q=new CGI;my$func=$Q->param("func");my$conf='/usr/local/ispmgr/addon/phpversion';print"<doc>";my$user=$ENV{REMOTE_USER};if(!defined$user){print"<error>Authentication failed!</error>";print"</doc>";exit0;}if($funceq'phpversion'){&List;}elsif($funceq"phpversion.delete"){&Delete;}elsif($funceq"phpversion.edit"){if($Q->param("sok")){if($Q->param("elid")){&Set;}else{&New;}print"<ok/>";}else{&Get;}}elsif($funceq'userphpversion'){&UserList;}elsif($funceq'userphpversion.enable'){&UserSet;}print"</doc>";exit0;sub List {if(open( IN,$conf)){while(<IN>){chomp;my@t=split' ',$_;print"<elem><item>".$t[0]."</item><path>".$t[1]."</path></elem>";}close( IN );}}sub UserList {my$wrapper_path="/var/www/$user/data/php-bin/php";if(open( WRAPPER,$wrapper_path)){my$wrapper=<WRAPPER>;chomp$wrapper;if(open( IN,$conf)){while(<IN>){chomp;my@t=split' ',$_;print"<elem><item>".$t[0]."</item>";print"<active />"if($wrappereq"#!".$t[1]);print"</elem>";}close( IN );}close( WRAPPER );}}#sub Get {# my $elid = $Q->param( "elid" );# print "<elid>$elid</elid><item>$elid</item>" if( $elid );#}sub Get {my$elid=$Q->param("elid");my$ok=0;if(open( IN,$conf)){for(<IN>){chomp;my@t=split' ',$_;if($t[0]eq$elid){print'<elid>'.$t[0].'</elid><item>'.$t[0].'</item><path>'.$t[1].'</path>';}$ok=1;}close( IN );}if(!$ok){print"<error>Item not found</error>";}}sub Set {my$elid=$Q->param("elid");my$item=$Q->param("item");my$path=$Q->param("path");my$ok=0;if(open( IN,$conf)){if(open( OUT,">$conf.new")){for(<IN>){chomp;my@t=split' ',$_;if($t[0]eq$elid){print OUT "$item $path\n";$ok=1;}else{print OUT $t[0].' '.$t[1]."\n";}}close( OUT );}close( IN );}if($ok){rename("$conf.new",$conf);print"<ok/>";}else{print"<error>Item hasn`t been updated</error>";}}sub UserSet {my$wrapper_path="/var/www/$user/data/php-bin/php";my$php_ini="/var/www/$user/data/php-bin/php.ini";unless(-e $php_ini){;print"<error>$php_ini not found</error>";return;};my($login,$pass,$uid,$gid)=getpwnam($user)orprint"<error>$user not in passwd file</error>";chown$uid,$gid,$php_iniorprint'<error>you are not a superuser</error>';chmod 0644,$php_iniorprint'<error>you are not a superuser</error>';my$elid=$Q->param("elid");my$item=$Q->param("item");if(open( IN,$conf)){if(open( OUT,">",$wrapper_path)){for(<IN>){chomp;my@t=split' ',$_;if($t[0]eq$elid){print OUT '#!'.$t[1]."\n";}}close( OUT );}close( IN );}my$check_for_timezone=`cat $php_ini | grep date.timezone`;my$is_php_53=`cat $wrapper_path | grep 5.4`;# need for bitrix install, only for 5.4if($is_php_53&&!$check_for_timezone&&open( OUT,">>",$php_ini)){print OUT "date.timezone='Europe/Moscow'\n";close( OUT );}my$check_for_maillog=`cat $php_ini | grep mail.log`;if($is_php_53&&!$check_for_maillog&&open( OUT,">>",$php_ini)){print OUT "mail.log = \"/var/www/$user/data/mail.log\"\n";print OUT "mail.add_x_header = On\n";close( OUT );}print"<ok>restart</ok>";}sub New {my$elid=$Q->param("elid");my$item=$Q->param("item");my$path=$Q->param("path");if(open( ADD,">>$conf")){print ADD "$item $path\n";close( ADD );print"<ok/>";}else{print"<error>Item hasn`t been added</error>";}}sub Delete {my$elid=$Q->param("elid");if(open( IN,"$conf")){if(open( OUT,">$conf.new")){for(<IN>){chomp;my@t=split' ',$_;print OUT $t[0].' '.$t[1]."\n"if($t[0]ne$elid);}close( OUT );}close( IN );}rename("$conf.new","$conf");print"<ok/>";}
#!/usr/bin/perl
BEGIN { push @INC, '/usr/local/ispmgr/lib/perl' }
use Mgr;
use CGI qw/:standard/;
use strict;
use warnings;
my $Q = new CGI;
my $func = $Q->param( "func" );
my $conf = '/usr/local/ispmgr/addon/phpversion';
print "<doc>";
my $user = $ENV{REMOTE_USER};
if (!defined $user) {
print "<error>Authentication failed!</error>";
print "</doc>";
exit 0;
}
if( $func eq 'phpversion' ){
&List;
} elsif( $func eq "phpversion.delete" ){
&Delete;
} elsif( $func eq "phpversion.edit" ){
if( $Q->param( "sok" ) ){
if( $Q->param( "elid" ) ){
&Set;
} else{
&New;
}
print "<ok/>";
} else{
&Get;
}
}
elsif ($func eq 'userphpversion') {
&UserList;
}
elsif ($func eq 'userphpversion.enable') {
&UserSet;
}
print "</doc>";
exit 0;
sub List {
if( open( IN, $conf ) ){
while( <IN> ){
chomp;
my @t = split ' ', $_;
print "<elem><item>" . $t[0] . "</item><path>" . $t[1] ."</path></elem>";
}
close( IN );
}
}
sub UserList {
my $wrapper_path = "/var/www/$user/data/php-bin/php";
if ( open( WRAPPER, $wrapper_path ) ) {
my $wrapper = <WRAPPER>;
chomp $wrapper;
if( open( IN, $conf ) ) {
while( <IN> ){
chomp;
my @t = split ' ', $_;
print "<elem><item>" . $t[0] . "</item>";
print "<active />" if ( $wrapper eq "#!" . $t[1] );
print "</elem>";
}
close( IN );
}
close( WRAPPER );
}
}
#sub Get {
# my $elid = $Q->param( "elid" );
# print "<elid>$elid</elid><item>$elid</item>" if( $elid );
#}
sub Get {
my $elid = $Q->param( "elid" );
my $ok = 0;
if( open( IN, $conf ) ) {
for( <IN> ) {
chomp;
my @t = split ' ', $_;
if( $t[0] eq $elid ) {
print '<elid>' . $t[0] . '</elid><item>' . $t[0] . '</item><path>' . $t[1] .'</path>' ;
}
$ok = 1;
}
close( IN );
}
if( !$ok ) {
print "<error>Item not found</error>";
}
}
sub Set {
my $elid = $Q->param( "elid" );
my $item = $Q->param( "item" );
my $path = $Q->param( "path" );
my $ok = 0;
if( open( IN, $conf ) ){
if( open( OUT, ">$conf.new" ) ){
for( <IN> ){
chomp;
my @t = split ' ', $_;
if( $t[0] eq $elid ){
print OUT "$item $path\n";
$ok = 1;
} else {
print OUT $t[0] . ' ' . $t[1] . "\n";
}
}
close( OUT );
}
close( IN );
}
if( $ok ){
rename( "$conf.new", $conf );
print "<ok/>";
} else {
print "<error>Item hasn`t been updated</error>";
}
}
sub UserSet {
my $wrapper_path = "/var/www/$user/data/php-bin/php";
my $php_ini = "/var/www/$user/data/php-bin/php.ini";
unless ( -e $php_ini ) {;
print "<error>$php_ini not found</error>";
return;
};
my ($login, $pass, $uid, $gid) = getpwnam($user) or print "<error>$user not in passwd file</error>";
chown $uid, $gid, $php_ini or print '<error>you are not a superuser</error>';
chmod 0644, $php_ini or print '<error>you are not a superuser</error>';
my $elid = $Q->param( "elid" );
my $item = $Q->param( "item" );
if( open( IN, $conf ) ){
if( open( OUT, ">", $wrapper_path ) ){
for( <IN> ){
chomp;
my @t = split ' ', $_;
if( $t[0] eq $elid ){
print OUT '#!' . $t[1] . "\n";
}
}
close( OUT );
}
close( IN );
}
my $check_for_timezone = `cat $php_ini | grep date.timezone`;
my $is_php_53 = `cat $wrapper_path | grep 5.4`;
# need for bitrix install, only for 5.4
if ( $is_php_53 && !$check_for_timezone && open( OUT, ">>", $php_ini ) ) {
print OUT "date.timezone='Europe/Moscow'\n";
close( OUT );
}
my $check_for_maillog = `cat $php_ini | grep mail.log`;
if ( $is_php_53 && !$check_for_maillog && open( OUT, ">>", $php_ini ) ) {
print OUT "mail.log = \"/var/www/$user/data/mail.log\"\n";
print OUT "mail.add_x_header = On\n";
close( OUT );
}
print "<ok>restart</ok>";
}
sub New {
my $elid = $Q->param( "elid" );
my $item = $Q->param( "item" );
my $path = $Q->param( "path" );
if( open( ADD, ">>$conf" ) ){
print ADD "$item $path\n";
close( ADD );
print "<ok/>";
} else {
print "<error>Item hasn`t been added</error>";
}
}
sub Delete {
my $elid = $Q->param( "elid" );
if( open( IN, "$conf" ) ){
if( open( OUT, ">$conf.new" ) ){
for( <IN> ){
chomp;
my @t = split ' ', $_;
print OUT $t[0] . ' ' . $t[1] . "\n" if( $t[0] ne $elid );
}
close( OUT );
}
close( IN );
}
rename( "$conf.new", "$conf" );
print "<ok/>";
}
У меня была задача быть сегодня сопереживающим и активным.
Для начала сегодня был день Бади, и естественно думал как угодить бади, и это получилось, вот теперь буду везти ей агруз, алычу, вишню, с собственного сада.
Далее с командой, еще помог с дизайнером, но понял, что инициатива наказуемая, начали вылазить с «мелкими просьбами» на голову, хватило сил и мужества начать говорить что НЕТ, что бы не подводить тех людей на которое было распланированное время, после разговора с бади, поехал ставить коронку, где получил предложения поехать в кино от товарища, предложения принял. После поехал к дизайнеру, она вчера жалувалась о своему несчастью, она попросила меня подвезти, ее на лошадях покататься в понедельник, а за одно и самому прокататься с своей девушкой, на что она конечно же получила положительный ответ.
После поехал к девушки, забрал ее, ухаживал за ней, выполнял всяческие желания и т.д. Короче объявил, ДЕНЬ ТВОИХ желаний. И все послушно выполнял… Это было забавно и весело…
После было кино, по дороге зацепили тему работы, потом сосики и дом…
Сейчас перед сном попытаюсь сложить принтер надеюсь получиться… и не будет лишних запчастей. Вот так я день провел…
Кстати девушка сказала, что был заботливый и нежный. Так что миссия более менее выполненная
Вот совсем не давно меня вовлекли в агенство "Развитие" на прохождения курсов. Сначала в первую ступень, далее решил пойти в ЛП.
Подобного уровня курсов я не знаю, первая ступень еще так себе, круто конечно но все же как то не столько сколько ожидал, было несколько упражнений, которые позволили покопаться в прошлом, войти в себя, но много как то не дало.
И все же я решил пойти дальше, в лидерскую, ЛПрограмму.
Лидерская делиться на уикенды, вот прошел первый уикенд, что же могу сказать, это просто ППЦ!!!! Получил в 5 раз больше чем ожидал, услышал и принял то о себе, что не мог принять уже долгие годы, и считал что это не про меня, хотя говорили часто. Очень негатива много ушло. Научился, смотреть на жизнь по другому, начал появляться опыт НАСТОЯЩЕЙ, командной игры, один из интересных моментов, в первый день каждый выбирает себе "БАДИ", это человек, который найбольше тебя бесит, и с которым в жизни ты просто бы не общался, но с помощью тренинга, учишься и с такими работать...
На мир начинаешь смотреть совсем по другому, как то "по-настоящему" что-ли, с помощью тренировок, вспоминаешь как это ПОНАСТОЯЩЕМУ чувствовать радоваться, более того учать переключаться, и делать выводы.
Но даже после окончание первого уикенда не дают спуску, назначают капитана и начинают контролировать что бы ты выполнял СОБСТВЕННЫЕ обещания. И реально начинаешь работать, и стараться более эффективно и делать больше….
Вот их сайт http://razvitie.od.ua/.