Как развернуть Laravel в Ubuntu с помощью Apache

Laravel — это PHP-фреймворк, похожий на Angular и Symfony, который используется для быстрого и эффективного создания надежных веб-сайтов. В этой статье мы расскажем, как развернуть приложения Laravel на Ubuntu с помощью Apache и MySQL.
Шаг 1. Обновите систему
Сначала обновим список пакетов и все устаревшие пакеты до последней версии.
$ sudo apt update $ sudo apt upgrade -y
Шаг 2. Установите необходимые пакеты
Чтобы Laravel заработал, вам нужно установить основные пакеты, такие как Apache, MySQL, PHP и некоторые необходимые модули PHP.
$ sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-xml php-mbstring php-mcrypt php-curl php-zip
Шаг 3. Настройка MySQL
Теперь, когда мы установили пакеты, давайте настроим MySQL для Laravel. Для этого мы запустим скрипт MySQL, который изменит несколько параметров, связанных с безопасностью.
$ sudo mysql_secure_installation
После выполнения приведенной выше команды вам будет предложено ответить на несколько вопросов. Ответы приведены ниже.
- Хотите настроить компонент VALIDATE PASSWORD? N
- Удалить анонимных пользователей? Y
- Запретить удаленный вход в систему с правами root? Y
- Удалить тестовую базу данных и доступ к ней? Y
- Перезагрузить таблицы привилегий? Y
Пришло время создать базу данных и нового пользователя для Laravel. Для начала войдем в консоль MySQL.
$ sudo mysql -u root
Затем вы можете создать демонстрационную базу данных с именем laravel_app и демонстрационное имя пользователя laravel_user для Laravel. Вы можете изменить название базы данных и имя пользователя по своему усмотрению, но обязательно используйте более надежный пароль.
mysql> CREATE DATABASE laravel_app; mysql> CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'changeme'; mysql> GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> EXIT;
Шаг 4. Установите Composer
Пришло время установить Composer, который позволит нам создать приложение Laravel. Приступим к установке.
$ curl -sS https://getcomposer.org/installer | php
После этого нам нужно переместить файл «composer.phar» в каталог «/bin» и предоставить исполняемому бинарному файлу composer права на запуск.
$ sudo mv composer.phar /usr/local/bin/composer $ sudo chmod +x /usr/local/bin/composer
Шаг 5. Установите Laravel
Наконец, давайте создадим в текущем каталоге проект Laravel под названием «laravel_proj».
$ composer create-project --prefer-dist laravel/laravel laravel_proj
Затем мы переходим в каталог и редактируем файл .env.
$ cd laravel_proj $ vim .env
В файле найдите следующие директивы, раскомментируйте их, убрав префикс #, и убедитесь, что их значения соответствуют указанным, если только вы не назвали базу данных Laravel, имя пользователя и пароль по-другому.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app DB_USERNAME=laravel_user DB_PASSWORD=changeme
Сохраните и закройте файл, а затем выполните следующую команду, которая с помощью миграций из каталога «database/migrations» быстро создаст структуру таблиц для приложения Laravel, включая систему контроля версий для базы данных.
$ php artisan migrate
Шаг 6. Используйте Laravel для локальной разработки
Теперь мы готовы запустить приложение Laravel в нашей локальной системе. Для этого просто выполните следующую команду, чтобы запустить приложение на локальном хосте через порт 80:
$ sudo php artisan serve --host=localhost --port=80
Теперь вы можете открыть браузер и перейти по адресу «http://localhost/«, чтобы получить доступ к приложению.
Шаг 7. Развертывание приложения Laravel
Чтобы успешно развернуть приложение на сервере, вам нужно переместить каталог Laravel (который мы назвали «laravel_proj«) в каталог «/var/www/html«. Хотя это не является обязательным требованием, мы пока используем этот подход, потому что это самый традиционный метод.
$ cd .. $ sudo mv laravel_proj/ /var/www/html/
После этого мы рекурсивно назначаем www-data владельцем каталога и предоставляем необходимые разрешения для каталога storage в приложении Laravel.
$ sudo chgrp -R www-data /var/www/html/laravel_proj/ $ sudo chmod -R 775 /var/www/html/laravel_proj/storage/
Далее мы создадим файл конфигурации Apache для приложения Laravel. Для этого используйте команду для создания файла «laravel.conf«.
$ sudo nano /etc/apache2/sites-available/laravel.conf
Скопируйте и вставьте в файл следующий фрагмент кода:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/laravel_proj/public
<Directory /var/www/html/laravel_proj>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Сохраните и закройте файл, а затем обязательно отключите файл конфигурации Apache по умолчанию.
$ sudo a2dissite 000-default.conf
Затем активируйте конфигурацию, которую мы создали для приложения Laravel.
$ sudo a2ensite laravel.conf
Наконец, включите модуль перезаписи Apache и перезапустите службу Apache, чтобы изменения вступили в силу.
$ sudo a2enmod rewrite $ sudo systemctl restart apache2
Шаг 8. Разрешите работу брандмауэра
UFW (Uncomplicated Firewall) предустановлен в Ubuntu, поэтому, если вы используете его для управления правилами брандмауэра в своей системе, обязательно включите необходимые для работы Apache порты.
$ sudo ufw allow “Apache Full”
Заключение
Вот и всё! Вы можете получить доступ к приложению Laravel по IP-адресу или имени хоста. Если у вас есть вопросы по этой теме, пожалуйста, задавайте их в комментариях.
Редактор: AndreyEx