@@ -262,6 +262,36 @@ public function check_prerequisites() {
262262 if ($ msg != '' ) die ($ msg );
263263 }
264264
265+ //** Check MySQL version
266+ public function check_mysql_version () {
267+ global $ conf ;
268+
269+ $ min_mariadb_version = '10.0.5 ' ;
270+ // Set MySQL version to 8.0.4 after CentOS 7 support ended to allow preg_* functions in SQL queries
271+ $ min_mysql_version = '5.5 ' ;
272+
273+ $ rec = $ this ->db ->queryOneRecord ('SELECT VERSION() as mysql_version ' );
274+ if (is_array ($ rec )) {
275+ $ version = $ rec ['mysql_version ' ];
276+ } else {
277+ die ("Unable to get MySQL version \n" );
278+ }
279+
280+ if (strpos ($ version ,'MariaDB ' )) {
281+ // We have MariaDB
282+ $ parts = explode ('- ' ,$ version );
283+ $ version = $ parts [0 ];
284+ swriteln ("MariaDB version " .$ version );
285+ if (version_compare ($ version , $ min_mariadb_version , '< ' )) die ("Minimum required MariaDB version is " .$ min_mariadb_version ."\n" );
286+ } else {
287+ // we have MySQL
288+ swriteln ("MySQL version " .$ version );
289+ if (version_compare ($ version , $ min_mysql_version , '< ' )) die ("Minimum required MySQL version is " .$ min_mysql_version ."\n" );
290+ }
291+
292+
293+ }
294+
265295 public function force_configure_app ($ service , $ enable_force =true ) {
266296 $ force = false ;
267297 if (AUTOINSTALL == true ) return false ;
@@ -812,6 +842,14 @@ public function grant_master_database_rights($verbose = false) {
812842 $ this ->warning ('Unable to set rights of user in master database: ' .$ value ['db ' ]."\n Query: " .$ query ."\n Error: " .$ this ->dbmaster ->errorMessage );
813843 }
814844
845+ $ query = "GRANT SELECT, INSERT ON ?? TO ?@? " ;
846+ if ($ verbose ){
847+ echo $ query ."\n" ;
848+ }
849+ if (!$ this ->dbmaster ->query ($ query , $ value ['db ' ] . '.server_php ' , $ value ['user ' ], $ host )) {
850+ $ this ->warning ('Unable to set rights of user in master database: ' .$ value ['db ' ]."\n Query: " .$ query ."\n Error: " .$ this ->dbmaster ->errorMessage );
851+ }
852+
815853 }
816854
817855 }
@@ -1136,7 +1174,7 @@ public function configure_postfix($options = '') {
11361174
11371175 //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removal after an update
11381176 $ rbl_list = '' ;
1139- if (@isset ($ server_ini_array ['mail ' ]['realtime_blackhole_list ' ]) && $ server_ini_array ['mail ' ]['realtime_blackhole_list ' ] != '' ) {
1177+ if (@isset ($ server_ini_array ['mail ' ]['realtime_blackhole_list ' ]) && $ server_ini_array ['mail ' ]['realtime_blackhole_list ' ] != '' ) {
11401178 $ rbl_hosts = explode (", " , str_replace (" " , "" , $ server_ini_array ['mail ' ]['realtime_blackhole_list ' ]));
11411179 foreach ($ rbl_hosts as $ key => $ value ) {
11421180 $ rbl_list .= ", reject_rbl_client " . $ value ;
@@ -1146,13 +1184,13 @@ public function configure_postfix($options = '') {
11461184
11471185 //* If Postgrey is installed, configure it
11481186 $ greylisting = '' ;
1149- if ($ conf ['postgrey ' ]['installed ' ] == true ) {
1187+ if (isset ( $ conf ['postgrey ' ]['installed ' ]) && ( $ conf [ ' postgrey ' ][ ' installed ' ] == true ) ) {
11501188 $ greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf ' ;
11511189 }
11521190
11531191 $ reject_sender_login_mismatch = '' ;
11541192 $ reject_authenticated_sender_login_mismatch = '' ;
1155- if (isset ($ server_ini_array ['mail ' ]['reject_sender_login_mismatch ' ]) && ($ server_ini_array ['mail ' ]['reject_sender_login_mismatch ' ] == 'y ' )) {
1193+ if (isset ($ server_ini_array ['mail ' ]['reject_sender_login_mismatch ' ]) && ($ server_ini_array ['mail ' ]['reject_sender_login_mismatch ' ] == 'y ' )) {
11561194 $ reject_sender_login_mismatch = ',reject_sender_login_mismatch, ' ;
11571195 $ reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, ' ;
11581196 }
@@ -1162,11 +1200,11 @@ public function configure_postfix($options = '') {
11621200 $ stress_adaptive = (isset ($ server_ini_array ['mail ' ]['stress_adaptive ' ]) && ($ server_ini_array ['mail ' ]['stress_adaptive ' ] == 'y ' )) ? '' : $ stress_adaptive_placeholder ;
11631201
11641202 $ reject_unknown_client_hostname ='' ;
1165- if (isset ($ server_ini_array ['mail ' ]['reject_unknown ' ]) && ($ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client ' || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client_helo ' )) {
1203+ if (isset ($ server_ini_array ['mail ' ]['reject_unknown ' ]) && ($ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client ' || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client_helo ' )) {
11661204 $ reject_unknown_client_hostname =',reject_unknown_client_hostname ' ;
11671205 }
11681206 $ reject_unknown_helo_hostname ='' ;
1169- if ((!isset ($ server_ini_array ['mail ' ]['reject_unknown ' ])) || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'helo ' || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client_helo ' ) {
1207+ if ((!isset ($ server_ini_array ['mail ' ]['reject_unknown ' ])) || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'helo ' || $ server_ini_array ['mail ' ]['reject_unknown ' ] == 'client_helo ' ) {
11701208 $ reject_unknown_helo_hostname =',reject_unknown_helo_hostname ' ;
11711209 }
11721210
0 commit comments