با تغییر سیاست لایسنسدهی سیپنل و افزایش بیرویه و ددمنشانه قیمت لایسنس، احتمالا شما هم جزو اون دسته از افردای باشید که بخواید کنترلپنل سرورهای لینوکسیتون رو به مناسبترین و مقرونبهصرفهترین پلن که از نظر محققان دایرکت ادمین هست تغییر بدید.
خب، طبیعتا اگر شما سرورهای زیادی داشته باشید، به جای نصب و کانفیگ دایرکتادمین برای تک تک سرورها، روی یک سرور دایرکت ادمین رو نصب میکنید و پس از اعمال کانفیگهای لازم از سرور مذکور ایمیج گرفته و روی باقی سرورها از همون تمپلیت برای نصب استفاده میکنید.
یکی از اشکالاتی که در این خصوص ممکنه ایجاد بشه این هست که ممکنه مشکل ناهماهنگ بودن ورژن لایسنس دایرکت ادمین و نسخه سرور ایجاد بشه. برای من مشکل ایجاد شده اینطور بود که لایسنس دایرکت ادمین هماهنگ با centos 6 روی سروری با نسخه 7 از سیستم عامل centos نصب شده بود، و برای اجرای آپدیتهای کاستوم بیلد هشدار زیر دریافت میشد:
Your license OS (CentOS 6) does not match the OS installed (CentOS 7).
این هشدار ممکنه در ظاهر باعث بروز اشکالی نشه، اما در عمل اشکالات جدی ایجاد میکنه، فرضا اگر شما بخواید طبق دستورالعمل زیر دیتابیستون رو آپدیت کنید:
https://help.directadmin.com/item.php?id=240
با خطایی مطابق زیر مواجه خواهید شد:
MariaDB 10.4 does not support CentOS6.
حتی اگر به نسخهای از mariadb آپگرید کنید که روی centos 6 هم قابل پشتیبانی باشه، در نهایت خطاهای زیر مانع از تکمیل پروسه آپگرید خواهند شد:
Your license OS (CentOS 6) does not match the OS installed (CentOS 7). ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-client.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-devel.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-server.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-shared.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-common.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-compat.rpm Found /usr/local/directadmin/custombuild/mysql/MariaDB-10.3.17-centos6-x86_64-backup.rpm Installing dependencies... Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.crazyfrogs.org * extras: mirror.checkdomain.de * updates: mirror.alpix.eu Package boost-program-options-1.53.0-27.el7.x86_64 already installed and latest version Package perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 already installed and latest version Package 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 already installed and latest version Package perl-DBI-1.627-4.el7.x86_64 already installed and latest version Package lsof-4.87-6.el7.x86_64 already installed and latest version Package 2:nmap-6.40-16.el7.x86_64 already installed and latest version No package compat-readline5 available. Nothing to do Installing libjemalloc... Found /usr/local/directadmin/custombuild/mysql/jemalloc-3.6.0-1.el6.x86_64.rpm Found /usr/local/directadmin/custombuild/mysql/jemalloc-devel-3.6.0-1.el6.x86_64.rpm warning: /usr/local/directadmin/custombuild/mysql/jemalloc-3.6.0-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY Preparing... ################################# [100%] Updating / installing... 1:jemalloc-3.6.0-1.el6 ################################# [ 50%] 2:jemalloc-devel-3.6.0-1.el6 ################################# [100%] Installing galera... Found /usr/local/directadmin/custombuild/mysql/galera-25.3.26-1.rhel6.el6.x86_64.rpm warning: /usr/local/directadmin/custombuild/mysql/galera-25.3.26-1.rhel6.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY Preparing... ################################# [100%] Updating / installing... 1:galera-25.3.26-1.rhel6.el6 ################################# [100%] Stopping mysqld ... Updating MariaDB 10.3.17 to 10.3.17 warning: MariaDB-10.3.17-centos6-x86_64-client.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY Preparing... ################################# [100%] Updating / installing... 1:MariaDB-compat-10.3.17-1.el6 ################################# [ 14%] 2:MariaDB-common-10.3.17-1.el6 ################################# [ 29%] 3:MariaDB-client-10.3.17-1.el6 ################################# [ 43%] 4:MariaDB-server-10.3.17-1.el6 ################################# [ 57%] Failed to resolve typeattributeset statement at /etc/selinux/targeted/tmp/modules/400/mariadb/cil:1 /usr/sbin/semodule: Failed! 5:MariaDB-devel-10.3.17-1.el6 ################################# [ 71%] 6:MariaDB-shared-10.3.17-1.el6 ################################# [ 86%] 7:MariaDB-backup-10.3.17-1.el6 ################################# [100%] Failed to execute operation: Invalid argument Removed symlink /etc/systemd/system/multi-user.target.wants/mysqld.service. Removed symlink /etc/systemd/system/mariadb.service. Removed symlink /etc/systemd/system/mysql.service. mv: cannot stat ‘/etc/systemd/system/mysql.service’: No such file or directory Created symlink from /etc/systemd/system/mysql.service to /etc/systemd/system/mysqld.service. Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /etc/systemd/system/mysqld.service. Ensuring local-infile is disabled for security reasons in MySQL configuration file... Job for mysqld.service failed because a timeout was exceeded. See "systemctl status mysqld.service" and "journalctl -xe" for details. Giving mysqld a few seconds to start up... Version check failed. Got the following error when calling the 'mysql' command line client ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) FATAL ERROR: Upgrade failed /usr/bin/mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect cp: ‘/usr/lib/libmysqlclient.so’ and ‘/usr/lib/mysql/libmysqlclient.so’ are the same file Restarting MySQL. Job for mysqld.service failed because a timeout was exceeded. See "systemctl status mysqld.service" and "journalctl -xe" for details. Installation completed.
در این حالت دیتابیس سرور شما کلا به مشکل میخوره و نه نسخه قدیمی و نه جدید، هیچکدوم قابلیت انتفاع نخواهند داشت.
و اما چه باید کرد؟ وقتی که حتی در صورتی که روی پنل لایسنسینگ دایرکت ادمین هم سیستم عامل سرور رو به centos 7 تغییر بدید، باز هم این مشکل رفع نمیشه!
در حال حاضر خروجی دستور زیر روی سرور شما:
/usr/local/directadmin/directadmin o
باید شبیه به اُنچه که در زیر ملاحظه میکنید باشه:
Compiled on 'CentOS 6.0 64-Bit' Compile time: Jul 12 2019 at 09:37:56 Timestamp: '1562943748' Compiled with IPv6
طبیعتا وقتی ما centos 7 استفاده میکنیم دریافت این خروجی نه تنها منطقی نیست، بلکه جزو گناهان کبیره به حساب میاد.
خب، برای رفع مشکل اسکریپتی تهیه شده که مطابق دستورات زیر اون رو نصب و اجرا میکنیم:
wget https://raw.githubusercontent.com/poralix/directadmin-utils/master/core/updateda.sh -O updateda.sh chmod 755 updateda.sh ./updateda.sh stable
بعد از اجرای این اسکریپت، مجددا دستور زیر رو اجرا کنید:
/usr/local/directadmin/directadmin o
خروجی باید شبیه به اُنچه که در زیر نمایان هست باشه:
Compiled on 'CentOS 7.0 64-Bit' Compile time: Jul 12 2019 at 09:37:52 Timestamp: '1562945823' Compiled with IPv6
اگر باز هم مشکل رفع نشد دیگه آخرین سنگر ریبیلد سرور با centos 7 تازه و نصب و کانفیگ دایرکت ادمین با لایسنس صحیح از ابتدا هست.
نکته کنکوری: هر اسکریپتی رو روی سرورتون اجرا نکنید، حتما قبلش کامل اسکریپت رو بخونید و مطمئن بشید امنیت سرور به خطر نمیافته. این اسکریپت هم قبل از اجرا شدن خونده شده و صحتش مورد تاییده.
و تمام