SCRIPT CÀI ĐẶT LAMP TỰ ĐỘNG

0
2541

CẤU HÌNH

# Software version:
# 1. OS: CentOS 7.4.1708 (Core) 64bit.
# 2. Apache: Apache/2.4.6 (CentOS)
# 3. MariaDB: 10.2.13-MariaDB
# 4. PHP 7: PHP 7.2.3 (cli)

SCRIPT

#!/bin/bash
#--------------------------------------------------
# Software version:
# 1. OS: CentOS 7.4.1708 (Core) 64bit.
# 2. Apache: Apache/2.4.6 (CentOS)
# 3. MariaDB: 10.2.13-MariaDB
# 4. PHP 7: PHP 7.2.3 (cli)
#--------------------------------------------------
# List function:
# 1. f_check_root: check to make sure script can be run by user root
# 2. f_disable_selinux: check selinux status, disable it if it's enforcing
# 3. f_update_os: update all the packages
# 4. f_install_lamp: funtion to install LAMP stack
# 5. f_open_port: config firewalld to open port 80, 443
# 6. f_sub_main: function use to call the main part of installation
# 7. f_main: the main function, add your functions to this place


# Function check user root
f_check_root () {
    if (( $EUID == 0 )); then
        # If user is root, continue to function f_sub_main
        f_sub_main
    else
        # If user not is root, print message and exit script
        echo "Please run this script by user root !"
        exit
    fi
}

# Function to disable SELinux
f_disable_selinux () {
    SE=`cat /etc/selinux/config | grep ^SELINUX= | awk -F'=' '{print $2}'`
    echo "Checking SELinux status ..."
    echo ""
    sleep 1

    if [[ "$SE" == "enforcing" ]]; then
        sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config
        echo "Disable SElinux and reboot after 5s. Press Ctrl+C to stop script."
        echo "After system reboot, please run script again."
        echo ""
        sleep 5
        reboot
    fi
}

# Function update os
f_update_os () {
    echo "Starting update os ..."
    sleep 1

    yum update
    yum upgrade -y

    echo ""
    sleep 1
}

# Function install LAMP stack
f_install_lamp () {
    ########## INSTALL APACHE ##########
    echo "Installing apache ..."
    sleep 1

    yum install httpd -y

    # This part is optimize for server 2GB RAM
    cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original
    sed -i '/<IfModule prefork.c/,/<\/IfModule/{//!d}' /etc/httpd/conf/httpd.conf
    sed -i '/<IfModule prefork.c/a\ StartServers              4\n MinSpareServers           20\n MaxSpareServers           40\n MaxClients         200\n MaxRequestsPerChild    4500' /etc/httpd/conf/httpd.conf

    # Enable and start httpd service
    systemctl enable httpd.service
    systemctl restart httpd.service

    ########## INSTALL MARIADB ##########
    echo "Add MariaDB to repositories ..."
    sleep 1

    # Add MariaDB repository
    cat > /etc/yum.repos.d/MariaDB.repo <<"EOF"
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

    # Update new package
    echo "Update package for MariaDB ..."
    sleep 1
    yum update -y

    # Start install MariaDB
    echo "Installing MariaDB server ..."
    sleep 1
    yum install MariaDB-server MariaDB-client -y

    # Enable and start mysql service
    systemctl enable mariadb
    systemctl start mariadb
    echo ""
    sleep 1

    ########## INSTALL PHP7 ##########
    yum install epel-release -y
    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
    yum install yum-utils -y
    yum-config-manager --enable remi-php72
    yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo php-pear -y

    # Config to fix error Apache not load PHP file
    chown -R apache:apache /var/www
    sed -i '/<Directory \/>/,/<\/Directory/{//!d}' /etc/httpd/conf/httpd.conf
    sed -i '/<Directory \/>/a\    Options Indexes FollowSymLinks\n    AllowOverride All\n    Require all granted' /etc/httpd/conf/httpd.conf

    # Restart Apache
    systemctl restart httpd
}

# Function enable port 80,433 in IPtables
f_open_port () {
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=https
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --permanent --add-port=443/tcp
    firewall-cmd --reload
}

# The sub main function, use to call neccessary functions of installation
f_sub_main () {
    f_disable_selinux
    f_update_os
    f_install_lamp
    f_open_port

    echo "<?php phpinfo(); ?>" > /var/www/html/info.php
    echo ""
    echo ""
    echo "Please run command to secure MariaDB: mysql_secure_installation"
    echo "You can access http://YOUR-SERVER-IP/info.php to see more informations about PHP"
    sleep 1
}

# The main function
f_main () {
    f_check_root
}
f_main

exit

 

DOWNLOAD

Download Here

 

 

 

 

Leave a Reply

avatar
  Subscribe  
Notify of