В этой статье мы узнаем, как настроить экземпляр AWS EC2 для подготовки к развертыванию вашего проекта Laravel.

Предпосылки

  • Аккаунт AWS
  • Экземпляр AWE EC2 (Elastic Cloud Computing) Linux (Ubuntu)
  • Ваш проект Laravel

Процесс развертывания

Войдите в свой инстанс EC2, используя ssh как root.

Обновите свои библиотеки

$apt update

Веб-сервер Apache

Чтобы установить apache в ubuntu, запустите:

$apt install apache2

Теперь, когда мы успешно установили Apache, мы можем изменить его содержимое в /var/www/html.

Тест веб-сервера Apache

Скопируйте свой общедоступный IP-адрес и получите доступ к нему через ваш любимый веб-браузер:

Установите PHP и сопутствующие пакеты

$apt-get install php -y
$apt-get install php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-intl php7.4-mysql php7.4-xml php7.4-zip -y

Протестируйте php, распечатав его версию:

$php -v

Результат должен быть примерно таким:

Установить Композитор

$php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$php composer-setup.php
$php -r "unlink('composer-setup.php');"
$mv composer.phar /usr/local/bin/composer

Установить нпм

$apt install npm

Установить и настроить сервер Mysql

$apt-get install mysql-server

Далее определим новый пароль для пользователя «root»:

$mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_password';

Чтобы войти в mysql

$mysql -p

И введите свой пароль.

Создание базы данных

mysql> CREATE DATABASE db_name;
mysql> SHOW DATABASES;

Конфигурация проекта

Используя git, клонируйте свой репозиторий в /var/www/html/app.

Если какая-либо из следующих операций не имеет разрешений для запуска, обновите разрешения папки:

$chmod 777 -R app

Установите зависимости проекта:

$npm i
$composer u

Из вашей локальной среды скопируйте файл .env в папку на сервере. И настройте информацию о базе данных следующим образом:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=root
DB_PASSWORD=my_new_password

Перезапустите Апач:

$service apache2 restart

И получить доступ к вашему приложению из веб-браузера.

Ошибка, которую вы можете получить

Маршруты API: 404 не найдено

В файле /etc/apache2/apache2.conf добавьте следующий код:

<Directory /var/www/html/app/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

В файле /etc/apache2/sites-enabled/000-default.conf измените корневой путь документа на путь вашего проекта:

DocumentRoot /var/www/html/app/public

И включите режим перезаписи apache2:

sudo a2enmod rewrite

Перезапустите apache, чтобы применить изменения:

sudo service apache2 restart

Теперь вы можете получить доступ к своему приложению Laravel в корне общедоступного IP-адреса, предоставленного AWS EC2.

Я надеюсь, что это может быть полезно. Наслаждаться!

Дополнительные материалы на plainenglish.io