2015-04-16 1 views
1

Как автоматизировать установку стека LAMP? Поскольку мы должны установить несколько пакетов один за другим, а затем настроить их. Опять же, мы должны отдельно установить некоторый инструмент графического интерфейса, например phpMyAdmin или MySQL-Workbench, для доступа к базам данных MySQL. Можно ли полностью автоматизировать эту полную установку? Использование сценария оболочки или что-то еще?Автоматическая установка стека LAMP с использованием сценария оболочки

Спасибо ..

ответ

6

Я подготовил следующий скрипт, чтобы сделать эту установку полностью автоматизирован.

#!/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 
+2

Независимо от проблемы, ** 'CHMOD 777' неправильно и небезопасно **. Вы должны понимать модель разрешений и изменять разрешения на что-то здравомыслящее, как 755. Вы ** не хотите, чтобы ** предоставлять каждому неограниченный доступ на запись к вашим файлам. Это значительно увеличивает поверхность атаки, если кому-то удается проникнуть в вашу коробку. – tripleee

0

Этот процесс распределения/менеджер пакетов зависит, но да, это вполне возможно. Вы даже можете включить функцию ssl/https и сгенерировать ключи сервера, сертификат и ключ запроса подписки с одним нажатием клавиши. Вы разбиваете его на задачи и добавляете возможности скриптов для каждого. Для генерации ключей потребуется ssh-keygen. У меня есть более старые версии подобных скриптов для openSuSE и Archlinux. Если вы застряли, я рад взглянуть и поделиться тем, что я взял много лет назад.

В вашем сценарии выше, я бы ограничил разрешения на /var/www до 0755, не нужно давать world писать в эти справочники - когда-либо. Кроме того, вместо расширенной if .. elif ... elif ... fi установки для определения распределения, случай утверждение может помочь вам организовать немного больше:

case "lsb_release" in 

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