使用 Shell 脚本自动安装 LAMP 堆栈

Automated Installation of LAMP Stack Using Shell Script

如何自动安装 LAMP Stack?因为我们必须一个一个安装几个包,然后配置它们。同样,我们必须单独安装一些 GUI 工具,如 phpMyAdmin 或 MySQL-Workbench 以访问 MySQL 数据库。是否可以使这个完整安装完全自动化?使用 shell 脚本还是其他?

谢谢..

我准备了以下 shell 脚本来使此安装完全自动化。

#!/bin/bash
# ******************************************
# Program: LAMP Stack Installation Script
# Developer: Pratik Patil
# Date: 10-04-2015
# Last Updated: 11-01-2016
# ******************************************

if [ "`lsb_release -is`" == "Ubuntu" ] || [ "`lsb_release -is`" == "Debian" ]
then
    sudo apt-get -y install mysql-server mysql-client mysql-workbench libmysqld-dev;
    sudo apt-get -y install apache2 php5 libapache2-mod-php5 php5-mcrypt phpmyadmin;
    sudo chmod 755 -R /var/www/;
    sudo printf "<?php\nphpinfo();\n?>" > /var/www/html/info.php;
    sudo service apache2 restart;

elif [ "`lsb_release -is`" == "CentOS" ] || [ "`lsb_release -is`" == "RedHat" ]
then
    sudo yum -y install httpd mysql-server mysql-devel php php-mysql php-fpm;
    sudo yum -y install epel-release phpmyadmin rpm-build redhat-rpm-config;
    sudo yum -y install mysql-community-release-el7-5.noarch.rpm proj;
    sudo yum -y install tinyxml libzip mysql-workbench-community;
    sudo chmod 777 -R /var/www/;
    sudo printf "<?php\nphpinfo();\n?>" > /var/www/html/info.php;
    sudo service mysqld restart;
    sudo service httpd restart;
    sudo chkconfig httpd on;
    sudo chkconfig mysqld on;

else
    echo "Unsupported Operating System";
fi

在浏览器中打开以下 URL 以验证 Apache 服务器的安装:

http://localhost

在浏览器中打开以下 URL 以验证 PHP 的安装:

http://localhost/info.php

此过程 distribution/package 取决于经理,但是,是的,这是完全可能的。您甚至可以启用 ssl/https 功能并通过一次按键生成您的服务器密钥、证书和签名请求密钥。您将其分解为任务并为每个任务添加脚本功能。密钥生成需要 ssh-keygen。我有用于 openSuSE 和 Archlinux 的类似脚本的旧版本。如果您遇到困难,我很乐意看一看并分享我多年前采用的方法。

在您上面的脚本中,我会将 /var/www 的权限限制为 0755,无需向这些目录提供 world 写入权限——永远。此外,与用于识别分布的扩展 if .. elif ... elif ... fi 设置不同,case 语句可以帮助您组织得更多:

case "lsb_release" in 

    Ubuntu  )
        ... ;;
    Debian  )
        ... ;;
    Centos  )
        ... ;;
esac