#!/usr/bin/env bash Nginx_Dependent() { if [ "$PM" = "yum" ]; then rpm -e httpd httpd-tools --nodeps yum -y remove httpd* for packages in make gcc gcc-c++ gcc-g77 wget crontabs zlib zlib-devel openssl openssl-devel perl patch bzip2; do yum -y install $packages; done elif [ "$PM" = "apt" ]; then export DEBIAN_FRONTEND=noninteractive apt-get update -y dpkg -P apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2.2-common for removepackages in apache2 apache2-doc apache2-utils apache2.2-common apache2.2-bin apache2-mpm-prefork apache2-doc apache2-mpm-worker; do apt-get purge -y $removepackages; done for packages in debian-keyring debian-archive-keyring build-essential gcc g++ make autoconf automake wget cron openssl libssl-dev zlib1g zlib1g-dev bzip2; do apt-get --no-install-recommends install -y $packages; done fi } Install_Only_Nginx() { clear echo "+-----------------------------------------------------------------------+" echo "| Install Nginx for LNMP, Written by Licess |" echo "+-----------------------------------------------------------------------+" echo "| A tool to only install Nginx. |" echo "+-----------------------------------------------------------------------+" echo "| For more information please visit https://lnmp.org |" echo "+-----------------------------------------------------------------------+" Press_Install Echo_Blue "Install dependent packages..." cd ${cur_dir}/src Get_Dist_Version Nginx_Dependent cd ${cur_dir}/src Download_Files ${Download_Mirror}/web/pcre/${Pcre_Ver}.tar.bz2 ${Pcre_Ver}.tar.bz2 Install_Pcre if [ `grep -L '/usr/local/lib' '/etc/ld.so.conf'` ]; then echo "/usr/local/lib" >> /etc/ld.so.conf fi ldconfig Download_Files ${Download_Mirror}/web/nginx/${Nginx_Ver}.tar.gz ${Nginx_Ver}.tar.gz Install_Nginx StartUp nginx rm -rf ${cur_dir}/src/${Nginx_Ver} [[ -d "${cur_dir}/src/${Openssl_Ver}" ]] && rm -rf ${cur_dir}/src/${Openssl_Ver} [[ -d "${cur_dir}/src/${Openssl_New_Ver}" ]] && rm -rf ${cur_dir}/src/${Openssl_New_Ver} StartOrStop start nginx Add_Iptables_Rules \cp ${cur_dir}/conf/index.html ${Default_Website_Dir}/index.html \cp ${cur_dir}/conf/lnmp /bin/lnmp Check_Nginx_Files } DB_Dependent() { if [ "$PM" = "yum" ]; then yum -y remove mysql-server mysql mysql-libs mariadb-server mariadb mariadb-libs rpm -qa|grep mysql if [ $? -ne 0 ]; then rpm -e mysql mysql-libs --nodeps rpm -e mariadb mariadb-libs --nodeps fi for packages in make cmake gcc gcc-c++ gcc-g77 flex bison wget zlib zlib-devel openssl openssl-devel ncurses ncurses-devel libaio-devel rpcgen libtirpc-devel patch cyrus-sasl-devel pkg-config; do yum -y install $packages; done if [ "${DISTRO}" = "CentOS" ] && echo "${CentOS_Version}" | grep -Eqi "^8"; then Check_PowerTools dnf --enablerepo=${repo_id} install rpcgen -y fi if echo "${CentOS_Version}" | grep -Eqi "^8" && cat /etc/centos-release | grep -Eqi "CentOS Stream"; then dnf install gcc-toolset-10 -y fi elif [ "$PM" = "apt" ]; then export DEBIAN_FRONTEND=noninteractive apt-get update -y for removepackages in mysql-client mysql-server mysql-common mysql-server-core-5.5 mysql-client-5.5 mariadb-client mariadb-server mariadb-common; do apt-get purge -y $removepackages; done dpkg -l |grep mysql dpkg -P mysql-server mysql-common libmysqlclient15off libmysqlclient15-dev dpkg -P mariadb-client mariadb-server mariadb-common for packages in debian-keyring debian-archive-keyring build-essential gcc g++ make cmake autoconf automake wget openssl libssl-dev zlib1g zlib1g-dev libncurses5 libncurses5-dev bison libaio-dev libtirpc-dev libsasl2-dev pkg-config; do apt-get --no-install-recommends install -y $packages; done fi } Install_Database() { echo "============================check files==================================" cd ${cur_dir}/src if [[ "${DBSelect}" =~ ^[12345]$ ]]; then Download_Files ${Download_Mirror}/datebase/mysql/${Mysql_Ver}.tar.gz ${Mysql_Ver}.tar.gz elif [[ "${DBSelect}" =~ ^[6789]|10$ ]]; then Download_Files ${Download_Mirror}/datebase/mariadb/${Mariadb_Ver}.tar.gz ${Mariadb_Ver}.tar.gz fi echo "============================check files==================================" Echo_Blue "Install dependent packages..." Get_Dist_Version DB_Dependent if [ "${DBSelect}" = "1" ]; then Install_MySQL_51 elif [ "${DBSelect}" = "2" ]; then Install_MySQL_55 elif [ "${DBSelect}" = "3" ]; then Install_MySQL_56 elif [ "${DBSelect}" = "4" ]; then Install_MySQL_57 elif [ "${DBSelect}" = "5" ]; then Install_MySQL_80 elif [ "${DBSelect}" = "6" ]; then Install_MariaDB_5 elif [ "${DBSelect}" = "7" ]; then Install_MariaDB_10 elif [ "${DBSelect}" = "8" ]; then Install_MariaDB_101 elif [ "${DBSelect}" = "9" ]; then Install_MariaDB_102 elif [ "${DBSelect}" = "10" ]; then Install_MariaDB_103 fi TempMycnf_Clean if [[ "${DBSelect}" =~ ^[6789]|10$ ]]; then StartUp mariadb StartOrStop start mariadb elif [[ "${DBSelect}" =~ ^[12345]$ ]]; then StartUp mysql StartOrStop start mysql fi Clean_DB_Src_Dir Check_DB_Files if [[ "${isDB}" = "ok" ]]; then if [[ "${DBSelect}" =~ ^[12345]$ ]]; then Echo_Green "MySQL root password: ${DB_Root_Password}" Echo_Green "Install ${Mysql_Ver} completed! enjoy it." elif [[ "${DBSelect}" =~ ^[6789]|10$ ]]; then Echo_Green "MariaDB root password: ${DB_Root_Password}" Echo_Green "Install ${Mariadb_Ver} completed! enjoy it." fi fi } Install_Only_Database() { clear echo "+-----------------------------------------------------------------------+" echo "| Install MySQL/MariaDB database for LNMP, Written by Licess |" echo "+-----------------------------------------------------------------------+" echo "| A tool to install MySQL/MariaDB for LNMP |" echo "+-----------------------------------------------------------------------+" echo "| For more information please visit https://lnmp.org |" echo "+-----------------------------------------------------------------------+" Get_Dist_Name Check_DB if [ "${DB_Name}" != "None" ]; then echo "You have install ${DB_Name}!" exit 1 fi Database_Selection if [ "${DBSelect}" = "0" ]; then echo "DO NOT Install MySQL or MariaDB." exit 1 fi Echo_Red "The script will REMOVE MySQL/MariaDB installed via yum or apt-get and it's databases!!!" Press_Install Install_Database 2>&1 | tee /root/install_database.log }