Вопрос или проблема
Я хочу развернуть свой 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
Пояснение к изменениям
-
Добавление строки в файл:
- Вместо использования
sudo nano /etc/apache2/apache2.conf
для ручного редактирования файла, мы используем командуecho
с перенаправлением| sudo tee -a
. Это позволяет автоматически добавить нужную строку в конец файла.
- Вместо использования
-
Использование
-a
сtee
:- Ключ
-a
определяет режим добавления, что позволяет добавлять данные в конец файла вместо его перезаписи.
- Ключ
-
Запуск скрипта:
- Убедитесь, что скрипт запускается с правами суперпользователя, чтобы команды
sudo
работали корректно. Запускайте скрипт так:sudo ./script.sh ваш_пароль_mysql
- Убедитесь, что скрипт запускается с правами суперпользователя, чтобы команды
Примечание
Этот подход позволяет значительно упростить процесс автоматизации развертывания сайта, исключив необходимость ручного редактирования конфигурационных файлов. Обязательно проверьте, что у вас есть права доступа для изменения конфигурации Apache и запуска службы.
Следуя данным рекомендациям, вы сможете эффективно и быстро развернуть ваш PHP сайт на Ubuntu Virtual Machine в Azure с минимальными усилиями и высокой автоматизацией.