Net-FullAuto
view release on metacpan or search on metacpan
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
'python --version','__display__');
}
}
$do=1;
if ($do==1) { # INSTALL LATEST VERSION OF NGINX
# https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx
# -dont-trust-the-tutorials-check-your-configuration/
# https://www.digitalocean.com/community/tutorials/
# understanding-and-implementing-fastcgi-proxying-in-nginx
# http://dev.soup.io/post/1622791/I-managed-to-get-nginx-running-on
# http://search.cpan.org/dist/Catalyst-Manual-5.9002/lib/Catalyst/
# Manual/Deployment/nginx/FastCGI.pod
# https://serverfault.com/questions/171047/why-is-php-request-array-empty
# https://codex.wordpress.org/Nginx
# https://www.sitepoint.com/setting-up-php-behind-nginx-with-fastcgi/
# http://codingsteps.com/install-php-fpm-nginx-mysql-on-ec2-with-amazon-linux-ami/
# http://code.tutsplus.com/tutorials/revisiting-open-source-social-networking-installing-gnu-social--cms-22456
# https://wiki.loadaverage.org/clipbucket/installation_guides/install_like_loadaverage
# https://karp.id.au/social/index.html
# http://jeffreifman.com/how-to-install-your-own-private-e-mail-server-in-the-amazon-cloud-aws/
# https://www.wpwhitesecurity.com/creating-mysql-wordpress-database/
($stdout,$stderr)=$handle->cwd("/opt/source");
($stdout,$stderr)=$handle->cmd($sudo.
'rm -rvf /opt/source/nginx*','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'rm -rvf /etc/nginx','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"wget -qO- https://nginx.org/en/download.html");
$stdout=~s/^.*Mainline.*?\/download\/(.*?)\.tar\.gz.*$/$1/s;
my $nginx=$stdout;
($stdout,$stderr)=$handle->cmd($sudo."wget --random-wait --progress=dot ".
"http://nginx.org/download/$nginx.tar.gz",300,'__display__');
($stdout,$stderr)=$handle->cmd($sudo."tar xvf $nginx.tar.gz",'__display__');
($stdout,$stderr)=$handle->cwd($nginx);
($stdout,$stderr)=$handle->cmd($sudo."mkdir -vp objs/lib",'__display__');
($stdout,$stderr)=$handle->cwd("objs/lib");
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone https://github.com/PhilipHazel/pcre2.git',
'__display__');
if (++$gittry>5) {
print "\n\n FATAL ERROR: $stderr\n\n";
cleanup();
}
my $gittest='Connection reset by peer|'.
'Could not read from remote repository';
$done=1 if $stderr!~/$gittest/s;
last if $done;
sleep 30;
}
($stdout,$stderr)=$handle->cwd("pcre2");
($stdout,$stderr)=$handle->cmd($sudo.
'./autogen.sh','__display__');
($stdout,$stderr)=$handle->cwd("/opt/source");
# https://www.liberiangeek.net/2015/10/
# how-to-install-self-signed-certificates-on-nginx-webserver/
# https://www.hrupin.com/2017/07/how-to-automatically-restart-nginx
($stdout,$stderr)=$handle->cwd("/opt/source/$nginx");
#
# echo-ing/streaming files over ssh can be tricky. Use echo -e
# and replace these characters with thier HEX
# equivalents (use an external editor for quick
# search and replace - and paste back results.
# use copy/paste or cat file and copy/paste results.):
#
# ! - \\x21 ` - \\x60 * - \\x2A
# " - \\x22 \ - \\x5C
# $ - \\x24 % - \\x25
#
my $inet_d_script=<<'END';
#\\x21/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# pidfile: /var/run/nginx.pid
# user: nginx
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ \\x22\\x24NETWORKING\\x22 = \\x22no\\x22 ] && exit 0
nginx=\\x22/usr/sbin/nginx\\x22
prog=\\x24(basename \\x24nginx)
NGINX_CONF_FILE=\\x22/etc/nginx/nginx.conf\\x22
lockfile=/var/run/nginx.lock
start() {
[ -x \\x24nginx ] || exit 5
[ -f \\x24NGINX_CONF_FILE ] || exit 6
echo -n \\x24\\x22Starting \\x24prog: \\x22
daemon \\x24nginx -c \\x24NGINX_CONF_FILE
retval=\\x24?
echo
[ \\x24retval -eq 0 ] && touch \\x24lockfile
return \\x24retval
}
stop() {
echo -n \\x24\\x22Stopping \\x24prog: \\x22
killproc \\x24prog -QUIT
retval=\\x24?
echo
[ \\x24retval -eq 0 ] && rm -f \\x24lockfile
return \\x24retval
}
restart() {
configtest || return \\x24?
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
$handle->cmd_raw($sudo.$ad);
$ad='%NL% location ~ .php$ {'.
'%NL% root /var/www/html/wordpress;'.
'%NL% fastcgi_pass unix:/run/php-fpm/www.sock;'.
'%NL% fastcgi_index index.php;'.
'%NL% fastcgi_param SCRIPT_FILENAME '.
'$document_root$fastcgi_script_name;'.
'%NL% include fastcgi_params;'.
'%NL% }'.
'%NL%'.
'%NL% location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {'.
'%NL% deny all;'.
'%NL% }'.
'%NL%'.
'%NL% location ~ ^/(bin|SQL|config|temp|logs)/ {'.
'%NL% deny all;'.
'%NL% }'.
'%NL%'.
'%NL% location ~ /\\. {'.
'%NL% deny all;'.
'%NL% access_log off;'.
'%NL% log_not_found off;'.
'%NL% }%NL%';
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'/404/a$ad\' $nginx_path/nginx/nginx.conf");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'s/%NL%/\'\"`echo \\\\\\n`/g\" ".
"$nginx_path/nginx/nginx.conf");
foreach my $port (443,444,445,443) {
$avail_port=
`true &>/dev/null </dev/tcp/127.0.0.1/$port && echo open || echo closed`;
my $status=$avail_port;
$avail_port=$port;
chomp($status);
last if $status eq 'closed';
}
$ad='client_max_body_size 10M;';
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'/octet-stream/i$ad\' $nginx_path/nginx/nginx.conf");
my $ngx="$nginx_path/nginx/nginx.conf";
$handle->cmd_raw($sudo.
"sed -i 's/\\(^client_max_body_size 10M;$\\\)/ \\1/' $ngx");
#($stdout,$stderr)=$handle->cmd($sudo.
# "sed -i \'s/^ listen 80/ listen ".
# "\*:$avail_port ssl http2 default_server/\' ".
# $nginx_path."/nginx/nginx.conf");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i 's/SCRIPT_NAME/PATH_INFO/' ".
$nginx_path."/local/nginx/fastcgi_params");
$ad='# Catalyst requires setting PATH_INFO (instead of SCRIPT_NAME)'.
' to \$fastcgi_script_name';
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'/PATH_INFO/i$ad\' $nginx_path/nginx/fastcgi_params");
$ad='fastcgi_param SCRIPT_NAME /;';
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'/PATH_INFO/a$ad\' $nginx_path/nginx/fastcgi_params");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'s/%NL%/\'\"`echo \\\\\\n`/g\" ".
"$nginx_path/nginx/fastcgi_params");
#
# echo-ing/streaming files over ssh can be tricky. Use echo -e
# and replace these characters with thier HEX
# equivalents (use an external editor for quick
# search and replace - and paste back results.
# use copy/paste or cat file and copy/paste results.):
#
# ! - \\x21 ` - \\x60 * - \\x2A
# " - \\x22 \ - \\x5C
# $ - \\x24 % - \\x25
#
my $script=<<END;
use Net::FullAuto;
\\x24Net::FullAuto::FA_Core::debug=1;
my \\x24handle=connect_shell();
\\x24handle->print('$nginx_path/nginx/nginx -g \\x22daemon on;\\x22');
\\x24prompt=\\x24handle->prompt();
my \\x24output='';my \\x24password_not_submitted=1;
while (1) {
eval {
local \\x24SIG{ALRM} = sub { die \\x22alarm\\x5Cn\\x22 };# \\x5Cn required
alarm 10;
my \\x24output=fetch(\\x24handle);
last if \\x24output=~/\\x24prompt/;
print \\x24output;
if ((-1<index \\x24output,'Enter PEM pass phrase:') &&
\\x24password_not_submitted) {
\\x24handle->print(\\x24ARGV[0]);
\\x24password_not_submitted=0;
}
};
if (\\x24\@) {
\\x24handle->print();
next;
}
}
exit 0;
END
if ($^O eq 'cygwin') {
($stdout,$stderr)=$handle->cwd("~/WordPress");
my $vimrc=<<END;
set paste
set mouse-=a
END
($stdout,$stderr)=$handle->cmd("echo -e \"$vimrc\" > ~/.vimrc");
($stdout,$stderr)=$handle->cmd("mkdir -vp script",'__display__');
($stdout,$stderr)=$handle->cmd("touch script/start_nginx.pl");
($stdout,$stderr)=$handle->cmd("chmod -v 755 script/start_nginx.pl",
'__display__');
($stdout,$stderr)=$handle->cmd("chmod o+r $nginx_path/nginx/*",
'__display__');
($stdout,$stderr)=$handle->cmd("chmod -v 755 $nginx_path/nginx/nginx.exe",
'__display__');
($stdout,$stderr)=$handle->cmd("echo -e \"$script\" > ".
"script/start_nginx.pl");
($stdout,$stderr)=$handle->cmd("cygrunsrv -I nginx_first_time ".
"-p /bin/perl -a ".
"\'${home_dir}WordPress/script/start_nginx.pl ".
"\"$service_and_cert_password\"'");
($stdout,$stderr)=$handle->cmd("cygrunsrv --start nginx_first_time",
'__display__');
($stdout,$stderr)=$handle->cmd("touch script/first_time_start.flag");
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
'git tag -l');
my %hash=();my $savepiece=0;my $saveline='';
foreach my $line (split /\n/,$stdout) {
my $piece=$line;
$piece=~s/^.*release_(.*)$/$1/;
next if $piece!~/^\d+$/;
next if $piece<$savepiece;
$savepiece=$piece;
$saveline=$line;
}
$saveline='nettle_3.4.1_release_20181204';
($stdout,$stderr)=$handle->cmd($sudo.
"git checkout $saveline",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'./.bootstrap','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'./configure CC=\'gcc -std=gnu99\' '.
'--prefix=/usr '.
'--disable-documentation --with-lib-path=/usr/local/lib64',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget -qO- https://gnutls.org/download.html');
$stdout=~s/^.*Current stable.*?href=["]([^"]+?)["].*$/$1/s;
my $path=$stdout;
($stdout,$stderr)=$handle->cmd($sudo.
"wget -qO- $path");
$stdout=~s/^.*?href=["](gnutls-[^"]+?)["].*$/$1/s;
my $file=$stdout;
$stdout=~s/gnutls-//;
$stdout=~s/.tar.xz$//;
$stdout=~s/\./\[\.\]/g;
($stdout,$stderr)=$handle->cmd($sudo.
"strings /usr/local/lib64/libgnutls.so | grep $stdout");
unless ($stdout) {
($stdout,$stderr)=$handle->cmd($sudo.
"wget --random-wait --progress=dot "."$path/$file",
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"chown -v $username:$username $file",'__display__')
if $^O ne 'cygwin';
($stdout,$stderr)=$handle->cmd($sudo.
"tar xvf $file",'__display__');
#($stdout,$stderr)=$handle->cmd($sudo.
# "rm -rvf $file",'__display__');
$file=~s/.tar.xz//;
($stdout,$stderr)=$handle->cwd($file);
($stdout,$stderr)=$handle->cmd($sudo.
'./configure --with-included-libtasn1 '.
'--with-included-unistring --without-p11-kit',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
} else {
print "libgnutls is up to date.\n";
}
#
# echo-ing/streaming files over ssh can be tricky. Use echo -e
# and replace these characters with thier HEX
# equivalents (use an external editor for quick
# search and replace - and paste back results.
# use copy/paste or cat file and copy/paste results.):
#
# ! - \\x21 ` - \\x60 * - \\x2A
# " - \\x22 \ - \\x5C
# $ - \\x24 % - \\x25
#
my $install_mysql=<<'END';
o o o .oPYo. ooooo .oo o o o o o .oPYo.
8 8b 8 8 8 .P 8 8 8 8 8b 8 8 8
8 8`b 8 `Yooo. 8 .P 8 8 8 8 8`b 8 8
8 8 `b 8 `8 8 oPooo8 8 8 8 8 `b 8 8 oo
8 8 `b8 8 8 .P 8 8 8 8 8 `b8 8 8
8 8 `8 `YooP' 8 .P 8 8oooo 8oooo 8 8 `8 `YooP8
........................................................
:::::::::::::::::::::::::::::::::' ':::::::::::::
(MariaDB Foundation is **NOT** a (`*..,
sponsor of the FullAuto© Project.) \ , `.
\ \
https://mariadb.org/ \ \
/ \.
Powered by ( /\ `*,
___ ___ ______ _____ V _ ~-~
| \ / | _ _ / _____| / __ \ | | \
| |\ \/ /| | | | | | \___ \ | | | | | | `
| | \ / | | | |__| | ___) | | |__| | | |____
|_| \/ |_| \___, | |_____/ \___\ \/ \______|®
____| | \_\
|_____/ DATABASE
END
print $install_mysql;sleep 10;
print "\n\n";
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'ls -1 /opt/source/mariadb');
if ($stdout=~/libmariadb/) {
($stdout,$stderr)=$handle->cmd($sudo.
'mkdir -vp /opt/mariadb','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source/mariadb');
($stdout,$stderr)=$handle->cmd($sudo.
'mv -fv *rpm /opt/mariadb','__display__');
}
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.'which mysql');
my $mysql_status='';my $mysql_version='';
if ($stdout=~/\/mysql/) {
($mysql_version,$stderr)=$handle->cmd($sudo.
'mysql --version','__display__');
$mysql_version=~s/^mysql\s+Ver\s+(.*?)\s+Distrib.*$/$1/;
($mysql_status,$stderr)=$handle->cmd($sudo.
'service mysql status -l','__display__');
}
if ($mysql_version<15.1 || $mysql_status!~/Taking your SQL requests/) {
($stdout,$stderr)=$handle->cmd($sudo.
'systemctl stop mysql','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
'mkdir -v build-mariadb','__display__');
($stdout,$stderr)=$handle->cwd('build-mariadb');
# https://www.linuxfromscratch.org/blfs/view/cvs/server/mariadb.html
($stdout,$stderr)=$handle->cmd($sudo.
'/usr/local/bin/cmake .. -DWITH_SSL=yes '.
'-DSKIP_TESTS=ON '.
'-DMYSQL_DATADIR=/var/lib/mysql '.
'-DCMAKE_INSTALL_PREFIX=/usr/local/mysql '.
'-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock '.
'-DWITH_EXTRA_CHARSETS=complex '.
'-DINSTALL_SYSTEMD_UNITDIR=/etc/systemd/system '.
'-DOPENSSL_INCLUDE_DIR=/usr/local/include/openssl '.
'-DOPENSSL_SSL_LIBRARY=/usr/local/lib64/libssl.so '.
'-DDOWNLOAD_EXTRACT_TIMESTAMP=ON '.
'-DOPENSSL_CRYPTO_LIBRARY='.
'/usr/local/lib64/libcrypto.so',
'3600','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','3600','__display__');
} else {
($stdout,$stderr)=$handle->cmd($sudo.
'mv -fv /opt/mariadb /opt/source/mariadb',
'__display__');
($stdout,$stderr)=$handle->cwd('mariadb');
}
($stdout,$stderr)=$handle->cwd('..');
($stdout,$stderr)=$handle->cmd($sudo.
'systemctl daemon-reload','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'groupadd mysql');
($stdout,$stderr)=$handle->cmd($sudo.
'useradd -r -g mysql mysql');
($stdout,$stderr)=$handle->cmd($sudo.
'mkdir -vp /run/mysqld','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chown -Rv mysql:root /var/run/mysqld',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'yum -y install galera perl-DBI','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'service mysql stop','__display__');
#($stdout,$stderr)=$handle->cmd($sudo.
# 'chmod -v 1777 /tmp','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'rm -rvf /var/lib/mysql','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'mkdir -vp /var/lib/mysql','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chown -v mysql:root /var/lib/mysql','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chmod -v 700 /var/lib/mysql','__display__');
($stdout,$stderr)=$handle->cwd('/usr/local/mysql');
($stdout,$stderr)=$handle->cmd($sudo.
'./scripts/mariadb-install-db --user=mysql '.
'--datadir=/var/lib/mysql','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'ln -s /usr/local/mysql/bin/mariadb /bin/mysql');
($stdout,$stderr)=$handle->cmd($sudo.
'mkdir -vp /etc/mysql/my.cnf.d','__display__');
#
# echo-ing/streaming files over ssh can be tricky. Use echo -e
# and replace these characters with thier HEX
# equivalents (use an external editor for quick
# search and replace - and paste back results.
# use copy/paste or cat file and copy/paste results.):
#
# ! - \\x21 ` - \\x60 * - \\x2A
# " - \\x22 \ - \\x5C
# $ - \\x24 % - \\x25
#
my $my_cnf=<<END;
# Begin /etc/mysql/my.cnf
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /run/mysqld/mysqld.sock
# The MySQL server
[mysqld]
port = 3306
socket = /run/mysqld/mysqld.sock
datadir = /var/lib/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all.
skip-networking
# required unique id between 1 and 2^32 - 1
server-id = 1
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# InnoDB tables are now used by default
innodb_data_home_dir = /var/lib/mysql
innodb_log_group_home_dir = /var/lib/mysql
# All the innodb_xxx values below are the default ones:
innodb_data_file_path = ibdata1:12M:autoextend
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
'/opt/cpanel/ea-php70/root/etc/php-fpm.d/www.conf','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'/etc/init.d/ea-php70-php-fpm start','__display__');
} else {
print "php is up to date.\n";
}
($stdout,$stderr)=$handle->cwd('/opt/source');
my $install_wordpress=<<'END';
o o o .oPYo. ooooo .oo o o o o o .oPYo.
8 8b 8 8 8 .P 8 8 8 8 8b 8 8 8
8 8`b 8 `Yooo. 8 .P 8 8 8 8 8`b 8 8
8 8 `b 8 `8 8 oPooo8 8 8 8 8 `b 8 8 oo
8 8 `b8 8 8 .P 8 8 8 8 8 `b8 8 8
8 8 `8 `YooP' 8 .P 8 8oooo 8oooo 8 8 `8 `YooP8
........................................................
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
___ ___ (\
\ \ \ \ / _ ____
\ \ \ \ / ___ _ __ __| | _ \ _ __ ___ ___ ___
\ \ /\ \ / / _ \| '__/ _` | |_) | '__/ _ \/ __/ __|
\ / \ / | (_) | | | (_| | __/| | | __/\__ \__ \
\/ \/ \___/|_| \__,_|_| |_| \___||___/___/
(WordPress is **NOT** a sponsor of the FullAuto© Project.)
END
($stdout,$stderr)=$handle->cwd('/opt/source');
print $install_wordpress;
sleep 5;
($stdout,$stderr)=$handle->cmd($sudo.
"wget --random-wait --progress=dot ".
"http://wordpress.org/latest.tar.gz",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"tar xzvf latest.tar.gz",'__display__');
($stdout,$stderr)=$handle->cwd('wordpress');
($stdout,$stderr)=$handle->cmd($sudo.
"cp -v wp-config-sample.php wp-config.php",
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \"/get this/adefine('WP_MAX_MEMORY_LIMIT','256M');\" ".
'wp-config.php');
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \"/get this/adefine('WP_MEMORY_LIMIT','64M');\" ".
'wp-config.php');
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i '/AUTH/,+6d' wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
"curl -s https://api.wordpress.org/secret-key/1.1/salt/",
'__display__');
my $strs=$stdout;
#
# echo-ing/streaming files over ssh can be tricky. Use echo -e
# and replace these characters with thier HEX
# equivalents (use an external editor for quick
# search and replace - and paste back results.
# use copy/paste or cat file and copy/paste results.):
#
# ! - \\x21 ` - \\x60 * - \\x2A
# " - \\x22 \ - \\x5C
# $ - \\x24 % - \\x25
#
# https://www.lisenet.com/2014/ - bash approach to conversion
$strs=~s/[\\]/\\\\x5c/sg;
$strs=~s/\$/\\\\x24/sg;
$strs=~s/["]/\\\\x22/sg;
$strs=~s/[!]/\\x21/sg;
$strs=~s/[`]/\\\\x60/sg;
$strs=~s/[%]/\\\\x25/sg;
$strs=~s/[*]/\\\\x2A/sg;
($stdout,$stderr)=$handle->cmd($sudo.
'cat /opt/source/wordpress/wp-config.php');
$stdout=~s/[\\]/\\\\x5c/sg;
$stdout=~s/\$/\\\\x24/sg;
$stdout=~s/["]/\\\\x22/sg;
$stdout=~s/[!]/\\\\x21/sg;
$stdout=~s/[`]/\\\\x60/sg;
$stdout=~s/[%]/\\\\x25/sg;
$stdout=~s/[*]/\\\\x2A/sg;
my $wcn='';my $n=0;
foreach my $line (split /\n/,$stdout) {
$line=~s/\r$//;
if ($line=~/NONCE/) {
$wcn.=$strs;
} else {
$wcn.=$line."\n";
}
}
($stdout,$stderr)=$handle->cmd(
"echo -e \"$wcn\" > /tmp/wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
'mv -fv /tmp/wp-config.php '.
'/opt/source/wordpress/wp-config.php',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i 's/database_name_here/wordpress/' wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i 's/username_here/wordpressuser/' wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i 's#localhost#localhost:".
"/var/run/mysqld/mysqld.sock#' wp-config.php");
my $esc_pass=$service_and_cert_password;
$esc_pass=~s/[&]/\\&/g;
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i 's/password_here/".
$esc_pass."/' wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
"mkdir -vp /var/www/html/wordpress",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"rsync -avP /opt/source/wordpress/ ".
"/var/www/html/wordpress",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chown -Rv www-data:www-data /var/www','__display__');
( run in 0.470 second using v1.01-cache-2.11-cpan-140bd7fdf52 )