Как добавить строку “AddType application/x-httpd-php .html” в файл /etc/apache2/apache2.conf через команду, а не вручную?

Вопрос или проблема

Я хочу развернуть свой PHP веб-сайт в виртуальной машине Ubuntu в Azure. Я загружаю zip-файл веб-сайта из Azure Blob Storage и копирую его в /var/www/html/ с помощью следующей команды.

wget https://acmesanappstor0.blob.core.windows.net/appmigration/Online_Shopping.tar.gz
tar -xzvf Online_Shopping.tar.gz
sudo mkdir /var/www/html/Online_Shopping
sudo cp -r ~/Online_Shopping/* /var/www/html/Online_Shopping

Теперь мне нужно добавить строку “AddType application/x-httpd-php .html” в конец файла sudo nano /etc/apache2/apache2.conf автоматически через командную строку. Я помещаю все команды в один скрипт, и этот скрипт используется для автоматического развертывания моего веб-сайта.
Я написал следующий файл скрипта для развертывания своего веб-сайта.

#!/bin/bash
apt-get -y update

# настройка тихой установки MySQL
dbpass=$1

export DEBIAN_FRONTEND=noninteractive
echo mysql-server-5.6 mysql-server/root_password password $dbpass | debconf-set-selections
echo mysql-server-5.6 mysql-server/root_password_again password $dbpass | debconf-set-selections

# установка стека LAMP
apt-get -y install apache2 mysql-server php5 php5-mysql  

wget https://acmesanappstor0.blob.core.windows.net/appmigration/Online_Shopping.tar.gz
tar -xzvf Online_Shopping.tar.gz
sudo mkdir /var/www/html/Online_Shopping
sudo cp -r ~/Online_Shopping/* /var/www/html/Online_Shopping
sudo nano /etc/apache2/apache2.conf
****AddType application/x-httpd-php .html***
sudo /etc/init.d/apache2 restart

Пожалуйста, помогите мне, как я могу добавить строку в автоматизированный процесс.

Как я вижу из этого скрипта, вы передаете пароль вместе со скриптом, как если бы скрипт назывался script.sh, и вы запускаете его как

 sudo -i
./script.sh yourmysqlpassword #предполагая, что скрипт находится в текущем каталоге

Я отредактировал это под ваши нужды, просто добавление строки сделает свое дело

#!/bin/bash
apt-get -y update

# настройка тихой установки MySQL
dbpass=$1

export DEBIAN_FRONTEND=noninteractive
echo mysql-server-5.6 mysql-server/root_password password $dbpass | debconf-set-selections
echo mysql-server-5.6 mysql-server/root_password_again password $dbpass | debconf-set-selections

# установка стека LAMP
apt-get -y install apache2 mysql-server php5 php5-mysql  

wget https://acmesanappstor0.blob.core.windows.net/appmigration/Online_Shopping.tar.gz
tar -xzvf Online_Shopping.tar.gz
sudo mkdir /var/www/html/Online_Shopping
sudo cp -r ~/Online_Shopping/* /var/www/html/Online_Shopping
sudo nano /etc/apache2/apache2.conf
###AddType application/x-httpd-php .html###
echo "AddType application/x-httpd-php.html" >> /etc/apache2/apache2.conf
sudo /etc/init.d/apache2 restart

Запустите скрипт от имени root, чтобы echo не жаловался

Ответ или решение

Для автоматизации процесса добавления строки AddType application/x-httpd-php .html в файл /etc/apache2/apache2.conf в вашем скрипте, можно использовать команду echo вместе с перенаправлением. Вот как скорректировать ваш скрипт для достижения этого:

Пример исправленного скрипта

#!/bin/bash

# Обновление списка пакетов
apt-get -y update

# Скрытая установка MySQL
dbpass=$1

export DEBIAN_FRONTEND=noninteractive
echo mysql-server-5.6 mysql-server/root_password password $dbpass | debconf-set-selections
echo mysql-server-5.6 mysql-server/root_password_again password $dbpass | debconf-set-selections

# Установка LAMP-стека
apt-get -y install apache2 mysql-server php5 php5-mysql  

# Загрузка и распаковка сайта
wget https://acmesanappstor0.blob.core.windows.net/appmigration/Online_Shopping.tar.gz
tar -xzvf Online_Shopping.tar.gz
sudo mkdir /var/www/html/Online_Shopping
sudo cp -r ~/Online_Shopping/* /var/www/html/Online_Shopping

# Добавление строки в конфигурацию Apache
echo "AddType application/x-httpd-php .html" | sudo tee -a /etc/apache2/apache2.conf

# Перезапуск службы Apache для применения изменений
sudo /etc/init.d/apache2 restart

Пояснение к изменениям

  1. Добавление строки в файл:

    • Вместо использования sudo nano /etc/apache2/apache2.conf для ручного редактирования файла, мы используем команду echo с перенаправлением | sudo tee -a. Это позволяет автоматически добавить нужную строку в конец файла.
  2. Использование -a с tee:

    • Ключ -a определяет режим добавления, что позволяет добавлять данные в конец файла вместо его перезаписи.
  3. Запуск скрипта:

    • Убедитесь, что скрипт запускается с правами суперпользователя, чтобы команды sudo работали корректно. Запускайте скрипт так:
      sudo ./script.sh ваш_пароль_mysql

Примечание

Этот подход позволяет значительно упростить процесс автоматизации развертывания сайта, исключив необходимость ручного редактирования конфигурационных файлов. Обязательно проверьте, что у вас есть права доступа для изменения конфигурации Apache и запуска службы.

Следуя данным рекомендациям, вы сможете эффективно и быстро развернуть ваш PHP сайт на Ubuntu Virtual Machine в Azure с минимальными усилиями и высокой автоматизацией.

Оцените материал
Добавить комментарий

Капча загружается...