WordPress DemoSite

Тестовый сайт для экспериментов и демонстраций возможностей

Bash-скрипт для установки LEMP на домашний Ubuntu

Вот пример bash-скрипта, который автоматизирует установку и настройку LEMP-стека (Linux, Nginx, MySQL, PHP) на домашней машине с Ubuntu. Скрипт выполняет все необходимые шаги, включая установку, настройку и проверку работы компонентов.


LEMP Installer Script

#!/bin/bash

# Функция для вывода сообщений с цветом
print_message() {
    echo -e "\e[1;32m$1\e[0m"
}

# Проверка, запущен ли скрипт от root
if [ "$EUID" -ne 0 ]; then
    echo "Пожалуйста, запустите скрипт от имени root."
    exit 1
fi

# 1. Обновление системы
print_message "=== Обновление системы ==="
apt update
apt upgrade -y

# 2. Установка Nginx
print_message "=== Установка Nginx ==="
apt install nginx -y
systemctl start nginx
systemctl enable nginx

# Проверка статуса Nginx
if systemctl is-active --quiet nginx; then
    print_message "Nginx успешно установлен и запущен."
else
    print_message "Ошибка: Nginx не запущен."
    exit 1
fi

# 3. Установка MySQL
print_message "=== Установка MySQL ==="
apt install mysql-server -y
systemctl start mysql
systemctl enable mysql

# Настройка безопасности MySQL
print_message "=== Настройка безопасности MySQL ==="
mysql_secure_installation <<EOF
n
y
y
y
y
y
EOF

# Проверка статуса MySQL
if systemctl is-active --quiet mysql; then
    print_message "MySQL успешно установлен и запущен."
else
    print_message "Ошибка: MySQL не запущен."
    exit 1
fi

# 4. Установка PHP
print_message "=== Установка PHP ==="
apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

# Проверка версии PHP
php -v

# 5. Настройка Nginx для работы с PHP
print_message "=== Настройка Nginx для работы с PHP ==="
cat > /etc/nginx/sites-available/default <<EOF
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name _;

    location / {
        try_files \$uri \$uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
EOF

# Перезапуск Nginx
systemctl restart nginx

# 6. Проверка работы PHP
print_message "=== Проверка работы PHP ==="
cat > /var/www/html/info.php <<EOF
<?php
phpinfo();
?>
EOF

# Проверка доступа к PHP
if curl -s http://localhost/info.php | grep -q "phpinfo"; then
    print_message "PHP работает корректно."
else
    print_message "Ошибка: PHP не работает."
    exit 1
fi

# 7. Настройка прав доступа
print_message "=== Настройка прав доступа ==="
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

# 8. Установка phpMyAdmin (опционально)
read -p "Хотите установить phpMyAdmin? (y/n): " INSTALL_PHPMYADMIN
if [ "$INSTALL_PHPMYADMIN" = "y" ]; then
    print_message "=== Установка phpMyAdmin ==="
    apt install phpmyadmin -y

    # Создание символической ссылки
    ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

    # Перезапуск Nginx
    systemctl restart nginx

    print_message "phpMyAdmin установлен. Доступен по адресу: http://localhost/phpmyadmin"
fi

# 9. Установка Certbot для HTTPS (опционально)
read -p "Хотите настроить HTTPS с помощью Certbot? (y/n): " INSTALL_CERTBOT
if [ "$INSTALL_CERTBOT" = "y" ]; then
    print_message "=== Установка Certbot ==="
    apt install certbot python3-certbot-nginx -y

    # Получение SSL-сертификата
    certbot --nginx

    print_message "HTTPS настроен с помощью Certbot."
fi

# 10. Завершение
print_message "=== Установка LEMP завершена ==="
echo "Nginx: http://localhost"
echo "PHP: http://localhost/info.php"
if [ "$INSTALL_PHPMYADMIN" = "y" ]; then
    echo "phpMyAdmin: http://localhost/phpmyadmin"
fi
if [ "$INSTALL_CERTBOT" = "y" ]; then
    echo "HTTPS: https://localhost"
fi

Как использовать скрипт

  1. Сохраните скрипт в файл, например, lemp_installer.sh.
  2. Сделайте файл исполняемым:
   chmod +x lemp_installer.sh
  1. Запустите скрипт от имени root:
   sudo ./lemp_installer.sh

Что делает скрипт

  1. Обновляет систему.
  2. Устанавливает и настраивает Nginx.
  3. Устанавливает и настраивает MySQL.
  4. Устанавливает PHP и настраивает его для работы с Nginx.
  5. Проверяет работу PHP.
  6. Настраивает права доступа к веб-каталогу.
  7. Опционально устанавливает phpMyAdmin для управления MySQL.
  8. Опционально настраивает HTTPS с помощью Certbot.
  9. Выводит информацию о завершении установки.

Примечания

  rm /var/www/html/info.php

Теперь у вас есть автоматизированный скрипт для установки LEMP-стека на Ubuntu!

Полный стэк: .NET | AMQP | Android | api | Bash | Bootstrap | C++ | cms | Composer | css | Data | Elasticsearch | ESP32 | Git | GraphQL | Gulp | JavaScript | JetStream | Joomla | js | Kotlin | Laravel | LEMP | Linux | LMS | Markdown | MODX | Moodle | MySQL | NATS | Nginx | Node.js | OpenCart | Parsedown | PHP | Python | RabbitMQ | SCSS | SEO | Simpla | SOAP | SQL | startup | Swift | Symfony | Tailwind | Translation | Twig | Ubuntu | Unit | web3 | Webasyst | Webpack | WebSocket | WordPress | XML | Бизнес | блокчейн | ИИ | интернет-магазин | ЛК | Руководство | ТЗ | фреймворк | Яндекс.Трекер