Net-FullAuto
view release on metacpan or search on metacpan
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
#cleanup;
my $do=1;
if ($do==1) {
unless ($^O eq 'cygwin') {
} else {
# https://www.digitalocean.com/community/questions/how-to-change-port-80-into-8080-on-my-wordpress
# https://opensource.com/article/18/9/linux-iptables-firewalld
# https://www.digitalocean.com/community/tutorials/iptables-essentials-common-firewall-rules-and-commands - for JavaPipe
my $cygcheck=`/bin/cygcheck -c` || die $!;
my $uname=`/bin/uname` || die $!;
my $uname_all=`/bin/uname -a` || die $!;
$uname_all.=$uname;
my %need_packages=();
my $srvout='';
($srvout,$stderr)=$handle->cmd("cygrunsrv -L",'__display__');
if ($srvout=~/exim/) {
($stdout,$stderr)=$handle->cmd("cygrunsrv --stop exim",'__display__');
($stdout,$stderr)=$handle->cmd("cygrunsrv -R exim");
}
if ($srvout=~/nginx_first_time/) {
($stdout,$stderr)=$handle->cmd(
"cygrunsrv --stop nginx_first_time",'__display__');
($stdout,$stderr)=$handle->cmd("cygrunsrv -R nginx_first_time");
($stdout,$stderr)=$handle->cmd(
"rm -rvf /opt/source/nginx*",
'__display__');
}
if ($srvout=~/memcached/) {
($stdout,$stderr)=$handle->cmd("cygrunsrv --stop memcached",
'__display__');
($stdout,$stderr)=$handle->cmd("cygrunsrv -R memcached");
($stdout,$stderr)=$handle->cmd(
"/opt/source/memcached*",
'__display__');
}
if ($uname_all=~/x86_64/) {
foreach my $package ('libxml2','libxml2-devel','libtool',
'autoconf','autobuild','automake','pkg-config',
'libuuid-devel','wget','git','httpd',
'httpd-mod_ssl','httpd-tools','exim','zip') {
unless (-1<index $cygcheck, "$package ") {
$need_packages{$package}='';
}
}
} else {
foreach my $package ('libxml2','libxml2-devel','libtool',
'autoconf','autobuild','automake','pkg-config',
'libuuid-devel','wget','git','httpd','httpd-mod_ssl',
'httpd-tools','exim','zip') {
unless (-1<index $cygcheck, "$package ") {
$need_packages{$package}='';
}
}
}
# http://www.fjakkarin.com/2015/11/cygwin-cygserver-and-apache-httpd/
($stdout,$stderr)=$handle->cmd($sudo.
"wget --random-wait --progress=dot ".
"https://github.com/transcode-open/apt-cyg/archive/master.zip",
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chown -v $username:$username master.zip','__display__')
if $^O ne 'cygwin';
($stdout,$stderr)=$handle->cmd("unzip -o master.zip",'__display__');
($stdout,$stderr)=$handle->cmd("rm -rvf master.zip",'__display__');
($stdout,$stderr)=$handle->cmd("mv apt-cyg-master/apt-cyg /usr/bin");
($stdout,$stderr)=$handle->cmd("chmod -v 755 /usr/bin/apt-cyg",
'__display__');
($stdout,$stderr)=$handle->cmd("rm -rvf apt-cyg-master",'__display__');
my $packs='';$|=1;
foreach my $pack (sort keys %need_packages) {
($stdout,$stderr)=$handle->cmd("apt-cyg install $pack",
'__display__');
}
if ($^O eq 'cygwin') {
($stdout,$stderr)=$handle->cwd('~');
# http://blogostuffivelearnt.blogspot.com/2012/07/
# smtp-mail-server-with-windows.html
($stdout,$stderr)=$handle->cmd(
"chmod -v 755 /usr/bin/exim*",'__display__');
$handle->print('/bin/exim-config');
$prompt=$handle->prompt();
while (1) {
my $output.=fetch($handle);
last if $output=~/$prompt/;
print $output;
if (-1<index $output,'local postmaster') {
$handle->print();
$output='';
next;
} elsif (-1<index $output,'Is it') {
$handle->print('yes');
$output='';
next;
} elsif (-1<index $output,'change that setting') {
$handle->print('no');
$output='';
next;
} elsif (-1<index $output,'standard values') {
$handle->print('yes');
$output='';
next;
} elsif (-1<index $output,'be links to') {
$handle->print('yes');
$output='';
next;
} elsif (-1<index $output,'some CPAN') {
$handle->print('no');
$output='';
next;
} elsif (-1<index $output,'install the exim') {
$handle->print('yes');
$output='';
next;
} elsif (-1<index $output,'in minutes') {
$handle->print();
$output='';
next;
} elsif (-1<index $output,'CYGWIN for the daemon') {
$handle->print('default');
$output='';
next;
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
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('bzip2');
($stdout,$stderr)=$handle->cmd($sudo.
'make -f Makefile-libbz2_so','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'cp -v libbz2.so* /usr/local/lib','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
$build_php=1;
} else {
print "bzip2 is up to date.\n";
}
($stdout,$stderr)=$handle->cwd('/opt/source');
# https://bipulkkuri.medium.com/install-latest-gcc-on-centos-linux-release-7-6-a704a11d943d
($stdout,$stderr)=$handle->cmd($sudo.
'wget -qO- http://mirrors.concertpass.com/gcc/releases/');
$stdout=~s/^.*href=["]([^"]+?)["].*$/$1/s;
chop $stdout;
$stdout=~s/gcc-//;
my $verss=$stdout;
($stdout,$stderr)=$handle->cmd($sudo.'gcc --version');
$stdout=~s/^.*?GCC[)]\s+?([^\s]+)\s+Copyright.*$/$1/s;
if ($stdout ne $verss) {
($stdout,$stderr)=$handle->cwd('/opt/source');
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone --recursive '.
'https://gitlab.freedesktop.org/pkg-config/pkg-config.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('pkg-config');
($stdout,$stderr)=$handle->cmd($sudo.
'./autogen.sh --with-internal-glib','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"chown -v $username:$username autoconf-latest.tar.gz",'__display__')
if $^O ne 'cygwin';
($stdout,$stderr)=$handle->cmd($sudo.'tar zxvf autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.'rm -rvf autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cwd("autoconf-*");
($stdout,$stderr)=$handle->cmd($sudo.'./configure','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'make','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'make install','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget -qO- https://git.savannah.gnu.org/cgit/automake.git');
$stdout=~s#^.*?Download.*?href.*?href=['](.*?snapshot.*?)['].*$#$1#s;
my $atarfile=$stdout;
$atarfile=~s/^.*\/(.*)$/$1/;
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'https://git.savannah.gnu.org'.$stdout,
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"tar xvf $atarfile",'__display__');
$atarfile=~s/.tar.gz$//;
($stdout,$stderr)=$handle->cwd($atarfile);
($stdout,$stderr)=$handle->cmd($sudo.
'./bootstrap','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'./configure','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
"http://mirrors.concertpass.com/gcc/releases/gcc-$verss/gcc-$verss.tar.xz",
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"tar xvf gcc-$verss.tar.xz",'__display__');
($stdout,$stderr)=$handle->cwd("gcc-$verss");
($stdout,$stderr)=$handle->cmd($sudo.
'mkdir -vp build','__display__');
($stdout,$stderr)=$handle->cwd('build');
($stdout,$stderr)=$handle->cmd($sudo.
'../configure --enable-languages=c,c++ --disable-multilib',
'3600','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make bootstrap','3600','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','3600','__display__');
($stdout,$stderr)=$handle->cwd('..');
($stdout,$stderr)=$handle->cmd($sudo.
'rm -rfv build','__display__');
}
($stdout,$stderr)=$handle->cwd('/opt/source');
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone --recursive https://github.com/madler/zlib.git',
'__display__');
if (++$gittry>5) {
print "\n\n FATAL ERROR: $stderr\n\n";
cleanup();
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
"strings /usr/local/lib/libxml2.so | grep v$sslr");
unless ($stdout) {
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone https://gitlab.gnome.org/GNOME/libxml2.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('libxml2');
($stdout,$stderr)=$handle->cmd($sudo.
'git pull','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"git checkout v$sslv",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'"ACLOCAL_PATH=/usr/share/aclocal" '.
'./autogen.sh','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'cp -v libxml-2.0.pc /usr/lib64/pkgconfig','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'ldconfig');
$build_php=1;
} else {
print "libxml2 is up to date.\n";
}
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'https://www.sqlite.org/src/tarball/sqlite.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'tar zxvf sqlite.tar.gz','__display__');
($stdout,$stderr)=$handle->cwd('sqlite');
($stdout,$stderr)=$handle->cmd($sudo.
'CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA=1" '.
'./configure','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make','3600','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'cp -v sqlite3.pc /usr/lib64/pkgconfig','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'ldconfig');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"chown -v $username:$username autoconf-latest.tar.gz",'__display__')
if $^O ne 'cygwin';
($stdout,$stderr)=$handle->cmd($sudo.'tar zxvf autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.'rm -rvf autoconf-latest.tar.gz',
'__display__');
($stdout,$stderr)=$handle->cwd("autoconf-*");
($stdout,$stderr)=$handle->cmd($sudo.'./configure','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'make','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'make install','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
'wget -qO- https://en.wikipedia.org/wiki/OpenSSL');
$stdout=~s/^.*?Stable release.*?-data["][>](.*?) *[(].*$/$1/s;
$sslv=$stdout;
($stdout,$stderr)=$handle->cmd($sudo.
'ls -1 | grep openssl');
my $ssldir=0;
$ssldir=1 if $stdout=~/^\s*openssl\s*$/s;
($stdout,$stderr)=$handle->cmd($sudo.
'strings /usr/local/lib64/libssl.so | grep OpenSSL');
my $ssllib=$stdout;
if ($ssllib!~/$sslv/s || !$ssldir) {
if ($ssldir) {
($stdout,$stderr)=$handle->cmd($sudo.
'rm -rvf openssl-old','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'mv -v openssl openssl-old','__display__');
}
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone --recursive https://github.com/openssl/openssl.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('openssl');
# https://www.thegeekstuff.com/2015/02/rpm-build-package-example/
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'https://git.sailfishos.org/mer-core/'.
'openssl/raw/master/rpm/openssl.spec',
'__display__');
my $sslr=$sslv;
($stdout,$stderr)=$handle->cmd($sudo.
'git pull','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"git checkout openssl-$sslv",'__display__');
if ($ssllib!~/$sslv/s) {
($stdout,$stderr)=$handle->cmd($sudo.
'./config -Wl,-rpath=/usr/local/lib64','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'make install','__display__');
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
print "libgmp is up to date.\n";
}
my $done=0;my $gittry=0;
while ($done==0) {
($stdout,$stderr)=$handle->cmd($sudo.
'git clone --recursive https://git.lysator.liu.se/nettle/nettle.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('nettle');
($stdout,$stderr)=$handle->cmd($sudo.
'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.
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
($stdout,$stderr)=$handle->cmd($sudo.
'git clone https://github.com/MariaDB/server.git '.
'mariadb','__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('mariadb');
($stdout,$stderr)=$handle->cmd($sudo.
'yum-complete-transaction',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'yum-builddep -y mariadb-server',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'git clean -xffd && git submodule '.
'foreach --recursive git clean -xffd',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'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
lib/Net/FullAuto/ISets/Local/WordPress_is.pm view on Meta::CPAN
# 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__');
($stdout,$stderr)=$handle->cwd('/var/www/html/wordpress');
($stdout,$stderr)=$handle->cmd($sudo.
"chmod -v 644 wp-config.php",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"mkdir -vp wp-content/uploads/themes",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
"mkdir -vp wp-content/uploads/plugins",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chown -Rv www-data:www-data /var/www/html',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'wget --random-wait --progress=dot '.
'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/'.
'wp-cli.phar','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'chmod -v +x wp-cli.phar','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'mv -v wp-cli.phar /usr/local/bin/wp','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
$sudo='sudo -u www-data ';
($stdout,$stderr)=$handle->cmd($sudo.
'/usr/local/bin/wp core install '.
"--title=$domain_url ".
"--url=https://www.$domain_url ".
"--admin_user=$adu ".
"--admin_email=$email_address ".
"--admin_password=$service_and_cert_password ".
'--allow-root --path=/var/www/html/wordpress',
'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'/usr/local/bin/wp plugin install really-simple-ssl '.
'--path=/var/www/html/wordpress','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'/usr/local/bin/wp plugin activate really-simple-ssl '.
'--path=/var/www/html/wordpress','__display__');
($stdout,$stderr)=$handle->cmd($sudo.'ldconfig');
($stdout,$stderr)=$handle->cmd($sudo.'ldconfig /usr/local/lib64');
$do=0;
if ($do==1) {
# https://www.hugeserver.com/kb/install-secure-elasticsearch-kibana-centos-7/
# https://www.cloudways.com/blog/elasticsearch-on-wordpress/
($stdout,$stderr)=$handle->cmd($sudo.
'yum -y install java-1.8.0-openjdk.x86_64','__display__');
($stdout,$stderr)=$handle->cwd('/opt/source');
($stdout,$stderr)=$handle->cmd($sudo.
"wget --random-wait --progress=dot ".
"https://artifacts.elastic.co/downloads/".
"elasticsearch/elasticsearch-5.0.0.rpm",'__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'rpm --install elasticsearch-*rpm','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'systemctl daemon-reload','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'systemctl enable elasticsearch','__display__');
($stdout,$stderr)=$handle->cmd($sudo.
'systemctl start elasticsearch','__display__');
my $ep='%NL%/** ElasticPress */%NL%'.
"define( %SQ%EP_HOST%SQ%, %SQ%http://127.0.0.1:9200%SQ% );";
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'/DB_COLLATE/a$ep\' /var/www/html/wordpress/wp-config.php");
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \"s/%SQ%/\'/g\" ".
'/var/www/html/wordpress/wp-config.php');
($stdout,$stderr)=$handle->cmd($sudo.
"sed -i \'s/%NL%/\'\"`echo \\\\\\n`/g\" ".
'/var/www/html/wordpress/wp-config.php');
}
( run in 0.761 second using v1.01-cache-2.11-cpan-71847e10f99 )