Як розгорнути Laravel 8 в Hostinger?

Розгортання Laravel 8 у спільному та хмарному хостингу Hostinger

Оновлено протягом останнього тижня

Хоча Laravel можна встановити автоматично, Вам може знадобитися версія, якої немає у списку. Зверніть увагу, що завжди рекомендується встановлювати поточну стабільну версію, щоб уникнути будь-яких загроз безпеці або помилок.

Якщо Ви все ж таки обрали Laravel 8, цю версію потрібно встановлювати вручну.

Крок 1 – Підготовка

Спершу потрібно активувати свій хостинг-акаунт і додати домен, на якому Ви хочете встановити Laravel.

Крок 2 – Завантажте та перемістіть файли

Завантажте файли Вашого сайту Laravel у папку файлів сайту – на 1 рівень вище public_html. Якщо Ваш проєкт називається laravel, структура файлів виглядатиме так:

The File Manager showing the structure of a laravel project

Після цього відкрийте папку laravel/public/ і перемістіть всі файли з неї у public_html:

The Move files window indicating to move to public_html

Після переміщення структура файлів public_html має виглядати так:

The File Manager showing the Laravel files on public_html folder

Крок 3 – Відредагуйте файли index.php та .htaccess

Відкрийте файл index.php у файловому менеджері та замініть його вміст на вказаний нижче. Це допоможе Laravel зрозуміти нову структуру файлів:

<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/
require __DIR__.'/../laravel/vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);

Після цього відкрийте файл .htaccess і додайте наступне правило, щоб Laravel правильно завантажував контент:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Якщо Ваш сайт використовує бази даних/моделі, то на цьому етапі Ви побачите помилку підключення до бази даних Laravel. Ми виправимо її, виконавши наступний крок.

Крок 4 – Оновіть інформацію в базі даних

Якщо у Вашій програмі працюють моделі, потрібно перенести таблиці в базу даних. У вас є два варіанти.

MySQL

Щоб використовувати MySQL, почніть зі створення нової бази даних. Потім відкрийте файл .env і оновіть інформацію про базу даних. Він має виглядати так:

The File Manager showing a .env file with data to connect a MySQL database

SQLITE

Якщо Ви хочете використовувати SQLITE, відкрийте файловий менеджер, перейдіть до laravel/database/ і створіть файл database.sqlite. Потім відкрийте файл laravel/.env і оновіть інформацію про Вашу базу даних. Просто скопіюйте шлях до кореневого каталогу та змініть public_html на laravel/database/database.sqlite:

Перенесення таблиць

Після створення бази даних потрібно під'єднатися до свого облікового запису через SSH. Перейдіть до каталогу laravel і введіть таку команду, щоб перенести всі файли в базу даних:

php artisan migrate

Ось і все, тепер Ваш сайт на Laravel 8 має працювати 😊

ПРИМІТКА

/usr/bin/php /home/u12345678/domains/domain.tld/public_html/artisan schedule:run

Замініть u12345678 та domain.tld на свої дані.

Додаткові ресурси

Ви отримали відповідь на своє запитання?