[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lon-capa-cvs
Subject:    [LON-CAPA-cvs] cvs: doc(version_2_11_X) /install/linux install.pl
From:       raeburn via LON-CAPA-cvs <lon-capa-cvs () mail ! lon-capa ! org>
Date:       2020-11-11 21:06:14
Message-ID: cvsraeburn1605128774 () cvsserver
[Download RAW message or body]

This is a MIME encoded message


raeburn		Wed Nov 11 21:06:14 2020 EDT

  Modified files:              (Branch: version_2_11_X)
    /doc/install/linux	install.pl 
  Log:
  - For 2.11
    Backport 1.68 
  
  
["raeburn-20201111210614.txt" (text/plain)]

Index: doc/install/linux/install.pl
diff -u doc/install/linux/install.pl:1.45.2.8 doc/install/linux/install.pl:1.45.2.9
--- doc/install/linux/install.pl:1.45.2.8	Wed Jul  8 17:40:18 2020
+++ doc/install/linux/install.pl	Wed Nov 11 21:06:14 2020
@@ -75,7 +75,7 @@
           &mt('Stopping execution.')."\n";
     exit;
 } else {
-    print LOG '$Id: install.pl,v 1.45.2.8 2020/07/08 17:40:18 raeburn Exp $'."\n";
+    print LOG '$Id: install.pl,v 1.45.2.9 2020/11/11 21:06:14 raeburn Exp $'."\n";
 }
 
 #
@@ -455,8 +455,9 @@
     unless ($localecmd eq '') {
         return ($distro,$gotprereqs,$localecmd);
     }
-    my ($mysqlon,$mysqlsetup,$mysqlrestart,$dbh,$has_pass,$has_lcdb,%recommended,
-        $downloadstatus,$filetouse,$production,$testing,$apachefw,$tostop,$uses_systemctl);
 +    my ($mysqlon,$mysqlsetup,$mysqlrestart,$dbh,$has_pass,$mysql_unix_socket,$has_lcdb,
 +        %recommended,$downloadstatus,$filetouse,$production,$testing,$apachefw,
+        $tostop,$uses_systemctl);
     my $wwwuid = &uid_of_www();
     my $wwwgid = getgrnam('www');
     if (($wwwuid eq '') || ($wwwgid eq '')) {
@@ -468,7 +469,7 @@
     $mysqlon = &check_mysql_running($distro);
     if ($mysqlon) {
         my $mysql_has_wwwuser = &check_mysql_wwwuser();
-        ($mysqlsetup,$has_pass,$dbh,$mysql_has_wwwuser) = 
+        ($mysqlsetup,$has_pass,$dbh,$mysql_has_wwwuser,$mysql_unix_socket) = 
             &check_mysql_setup($instdir,$dsn,$distro,$mysql_has_wwwuser);
         if ($mysqlsetup eq 'needsrestart') {
             $mysqlrestart = '';
@@ -500,8 +501,9 @@
     ($recommended{'download'},$downloadstatus,$filetouse,$production,$testing) 
         = &need_download();
     return ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow,
-            $mysqlrestart,\%recommended,$dbh,$has_pass,$has_lcdb,$downloadstatus,
-            $filetouse,$production,$testing,$apachefw,$uses_systemctl);
+            $mysqlrestart,\%recommended,$dbh,$has_pass,$mysql_unix_socket,
+            $has_lcdb,$downloadstatus,$filetouse,$production,$testing,$apachefw,
+            $uses_systemctl);
 }
 
 sub check_mysql_running {
@@ -1153,8 +1155,31 @@
 
 sub check_mysql_setup {
     my ($instdir,$dsn,$distro,$mysql_has_wwwuser) = @_;
-    my ($mysqlsetup,$has_pass);
+    my ($mysqlsetup,$has_pass,$mysql_unix_socket);
     my $dbh = DBI->connect($dsn,'root','',{'PrintError'=>0});
+    my ($mysqlversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
+    if (($mysqlname =~ /^MariaDB/i) && ($mysqlversion >= 10.4)) {
+        if ($dbh) {
+            my $sth = $dbh->prepare("SELECT Priv FROM mysql.global_priv WHERE (User \
= 'root' AND Host ='localhost')"); +            $sth->execute();
+            while (my $priv = $sth->fetchrow_array) {
+                if ($priv =~ /unix_socket/) {        
+                    $mysql_unix_socket = 1;
+                    last;
+                }
+            }
+            $sth->finish();
+            if ($mysql_unix_socket) {
+                print_and_log(&mt('MariaDB using unix_socket for root access from \
localhost.')."\n"); +                $mysqlsetup = 'rootok';
+                $mysql_unix_socket = 1;
+                unless ($mysql_has_wwwuser) {
+                    $mysql_has_wwwuser = &check_mysql_wwwuser();
+                }
+                return \
($mysqlsetup,$has_pass,$dbh,$mysql_has_wwwuser,$mysql_unix_socket); +            }
+        }
+    }
     if ($dbh) {
         $mysqlsetup = 'noroot'; 
     } elsif ($DBI::err =~ /1045/) {
@@ -1477,8 +1502,8 @@
 
 my $dsn = "DBI:mysql:database=mysql";
 my ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow,$mysqlrestart,
-    $recommended,$dbh,$has_pass,$has_lcdb,$downloadstatus,$filetouse,$production,
-    $testing,$apachefw,$uses_systemctl) = &check_required($instdir,$dsn);
+    $recommended,$dbh,$has_pass,$mysql_unix_socket,$has_lcdb,$downloadstatus,
+    $filetouse,$production,$testing,$apachefw,$uses_systemctl) = \
&check_required($instdir,$dsn);  if ($distro eq '') {
     print "\n".&mt('Linux distribution could not be verified as a supported \
distribution.')."\n".  &mt('The following are supported: [_1].',
@@ -1521,9 +1546,9 @@
                     exit;
                 } else {
                     \
                ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow,
-                     \
                $mysqlrestart,$recommended,$dbh,$has_pass,$has_lcdb,$downloadstatus,
-                     $filetouse,$production,$testing,$apachefw,$uses_systemctl) = 
-                     &check_required($instdir,$dsn);
+                     $mysqlrestart,$recommended,$dbh,$has_pass,$mysql_unix_socket,
+                     \
$has_lcdb,$downloadstatus,$filetouse,$production,$testing,$apachefw, +                \
$uses_systemctl) = &check_required($instdir,$dsn);  }
             } else {
                 print &mt('Failed to run command to install \
LONCAPA-prerequisites')."\n"; @@ -1620,7 +1645,8 @@
 
 if ($callsub{'mysql'}) {
     if ($dbh) {
-        &setup_mysql($callsub{'mysqlperms'},$distro,$dbh,$has_pass,$has_lcdb);
+        &setup_mysql($callsub{'mysqlperms'},$dbh,$has_pass,
+                     $mysql_unix_socket,$has_lcdb);
     } else {
         print &mt('Unable to configure MySQL because access is denied.')."\n";
     }
@@ -1628,7 +1654,7 @@
     &print_and_log(&mt('Skipping configuration of MySQL.')."\n");
     if ($callsub{'mysqlperms'}) {
         if ($dbh) {
-            &setup_mysql_permissions($dbh,$has_pass);
+            &setup_mysql_permissions($dbh,$has_pass,$mysql_unix_socket);
         } else {
             print &mt('Unable to configure MySQL because access is denied.')."\n";  
         }
@@ -2012,7 +2038,7 @@
 }
 
 sub setup_mysql {
-    my ($setup_mysql_permissions,$distro,$dbh,$has_pass,$has_lcdb) = @_;
+    my ($setup_mysql_permissions,$dbh,$has_pass,$mysql_unix_socket,$has_lcdb) = @_;
     my @mysql_lc_commands;
     unless ($has_lcdb) {
         push(@mysql_lc_commands,"CREATE DATABASE loncapa");
@@ -2022,7 +2048,7 @@
 CREATE TABLE IF NOT EXISTS metadata (title TEXT, author TEXT, subject TEXT, url \
TEXT, keywords TEXT, version TEXT, notes TEXT, abstract TEXT, mime TEXT, language \
TEXT, creationdate DATETIME, lastrevisiondate DATETIME, owner TEXT, copyright TEXT, \
domain TEXT, dependencies TEXT, modifyinguser TEXT, authorspace TEXT, \
lowestgradelevel TEXT, highestgradelevel TEXT, standards TEXT, count INT, course INT, \
course_list TEXT, goto INT, goto_list TEXT, comefrom INT, comefrom_list TEXT, \
sequsage INT, sequsage_list TEXT, stdno INT, stdno_list TEXT, avetries FLOAT, \
avetries_list TEXT, difficulty FLOAT, difficulty_list TEXT, disc FLOAT, disc_list \
TEXT, clear FLOAT, technical FLOAT, correct FLOAT, helpful FLOAT, depth FLOAT, \
hostname TEXT, FULLTEXT idx_title (title), FULLTEXT idx_author (author), FULLTEXT \
idx_subject (subject), FULLTEXT idx_url (url), FULLTEXT idx_keywords (keywords), \
FULLTEXT idx_version (version), FULLTEXT idx_notes (notes), FULLTEXT idx_abstract \
(abstract), FULLTEXT idx_mime (mi  me), FULLTEXT idx_language (language), FULLTEXT \
idx_owner (owner), FULLTEXT idx_copyright (copyright)) ENGINE=MYISAM  });
     if ($setup_mysql_permissions) {
-        &setup_mysql_permissions($dbh,$has_pass,@mysql_lc_commands);
+        &setup_mysql_permissions($dbh,$has_pass,$mysql_unix_socket,@mysql_lc_commands);
  } else {
         print_and_log(&mt('Skipping MySQL permissions setup.')."\n");
         if ($dbh) {
@@ -2039,12 +2065,14 @@
 }
 
 sub setup_mysql_permissions {
-    my ($dbh,$has_pass,@mysql_lc_commands) = @_;
+    my ($dbh,$has_pass,$mysql_unix_socket,@mysql_lc_commands) = @_;
     my ($mysqlversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
-    my ($usesauth,$is_mariadb,$hasauthcol,@mysql_commands);
+    my ($usescreate,$usesauth,$is_mariadb,$hasauthcol,@mysql_commands);
     if ($mysqlname =~ /^MariaDB/i) {
         $is_mariadb = 1;
-        if ($mysqlversion >= 10.2) {
+        if ($mysqlversion >= 10.4) {
+            $usescreate = 1;
+        } elsif ($mysqlversion >= 10.2) {
             $usesauth = 1;
         } elsif ($mysqlversion >= 5.5) {
             $hasauthcol = 1;
@@ -2056,7 +2084,9 @@
             $hasauthcol = 1;
         }
     }
-    if ($usesauth) {
+    if ($usescreate) {
+        @mysql_commands = ("CREATE USER 'www'\@'localhost' IDENTIFIED BY \
'localhostkey'"); +    } elsif ($usesauth) {
         @mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, \
x509_subject, authentication_string) VALUES('localhost','www','','','','')");  if \
                ($is_mariadb) {
             push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED BY \
'localhostkey'"); @@ -2076,7 +2106,7 @@
 INSERT db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,D \
rop_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Create_tmp_table_priv,Lock_tables_priv) \
VALUES('localhost','loncapa','www','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y')");
  }
     push(@mysql_commands,"DELETE FROM user WHERE host<>'localhost'");
-    if ($has_pass) {
+    if (($has_pass) || ($mysql_unix_socket)) {
         if ($dbh) {
             push(@mysql_commands,"FLUSH PRIVILEGES");
             if (@mysql_commands) {



_______________________________________________
LON-CAPA-cvs mailing list
LON-CAPA-cvs@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic